2 * Copyright 2016 Henri Verbeet for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __WINE_D3DKMTHK_H
20 #define __WINE_D3DKMTHK_H
24 typedef enum _D3DKMT_VIDPNSOURCEOWNER_TYPE
26 D3DKMT_VIDPNSOURCEOWNER_UNOWNED
= 0,
27 D3DKMT_VIDPNSOURCEOWNER_SHARED
= 1,
28 D3DKMT_VIDPNSOURCEOWNER_EXCLUSIVE
= 2,
29 D3DKMT_VIDPNSOURCEOWNER_EXCLUSIVEGDI
= 3,
30 D3DKMT_VIDPNSOURCEOWNER_EMULATED
= 4
31 } D3DKMT_VIDPNSOURCEOWNER_TYPE
;
33 typedef struct _D3DKMT_CREATEDEVICEFLAGS
36 UINT RequestVSync
: 1;
37 UINT DisableGpuTimeout
: 1;
39 } D3DKMT_CREATEDEVICEFLAGS
;
41 typedef struct _D3DDDI_ALLOCATIONLIST
43 D3DKMT_HANDLE hAllocation
;
48 UINT WriteOperation
: 1;
49 UINT DoNotRetireInstance
: 1;
50 UINT OfferPriority
: 3;
55 } D3DDDI_ALLOCATIONLIST
;
57 typedef struct _D3DDDI_PATCHLOCATIONLIST
70 UINT AllocationOffset
;
73 } D3DDDI_PATCHLOCATIONLIST
;
75 typedef struct _D3DKMT_DESTROYDEVICE
77 D3DKMT_HANDLE hDevice
;
78 } D3DKMT_DESTROYDEVICE
;
80 typedef struct _D3DKMT_CHECKOCCLUSION
83 } D3DKMT_CHECKOCCLUSION
;
85 typedef struct _D3DKMT_CREATEDEVICE
89 D3DKMT_HANDLE hAdapter
;
92 D3DKMT_CREATEDEVICEFLAGS Flags
;
93 D3DKMT_HANDLE hDevice
;
95 UINT CommandBufferSize
;
96 D3DDDI_ALLOCATIONLIST
*pAllocationList
;
97 UINT AllocationListSize
;
98 D3DDDI_PATCHLOCATIONLIST
*pPatchLocationList
;
99 UINT PatchLocationListSize
;
100 } D3DKMT_CREATEDEVICE
;
102 typedef struct _D3DKMT_OPENADAPTERFROMHDC
105 D3DKMT_HANDLE hAdapter
;
107 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId
;
108 } D3DKMT_OPENADAPTERFROMHDC
;
110 typedef struct _D3DKMT_OPENADAPTERFROMDEVICENAME
112 const WCHAR
*pDeviceName
;
113 D3DKMT_HANDLE hAdapter
;
115 } D3DKMT_OPENADAPTERFROMDEVICENAME
;
117 typedef struct _D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME
119 WCHAR DeviceName
[32];
120 D3DKMT_HANDLE hAdapter
;
122 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId
;
123 } D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME
;
125 typedef struct _D3DKMT_OPENADAPTERFROMLUID
128 D3DKMT_HANDLE hAdapter
;
129 } D3DKMT_OPENADAPTERFROMLUID
;
131 typedef struct _D3DKMT_SETVIDPNSOURCEOWNER
133 D3DKMT_HANDLE hDevice
;
134 const D3DKMT_VIDPNSOURCEOWNER_TYPE
*pType
;
135 const D3DDDI_VIDEO_PRESENT_SOURCE_ID
*pVidPnSourceId
;
136 UINT VidPnSourceCount
;
137 } D3DKMT_SETVIDPNSOURCEOWNER
;
139 typedef struct _D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP
141 D3DKMT_HANDLE hAdapter
;
142 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId
;
143 } D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP
;
145 #define D3DKMT_QUERYSTATISTICS_SEGMENT_PREFERENCE_MAX 5
147 typedef struct _D3DKMT_CLOSEADAPTER
149 D3DKMT_HANDLE hAdapter
;
150 } D3DKMT_CLOSEADAPTER
;
152 typedef struct _D3DKMT_CREATEDCFROMMEMORY
160 PALETTEENTRY
*pColorTable
;
163 } D3DKMT_CREATEDCFROMMEMORY
;
165 typedef struct _D3DKMT_DESTROYDCFROMMEMORY
169 } D3DKMT_DESTROYDCFROMMEMORY
;
171 typedef enum _D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT
173 D3DKMT_PreemptionAttempt
= 0,
174 D3DKMT_PreemptionAttemptSuccess
= 1,
175 D3DKMT_PreemptionAttemptMissNoCommand
= 2,
176 D3DKMT_PreemptionAttemptMissNotEnabled
= 3,
177 D3DKMT_PreemptionAttemptMissNextFence
= 4,
178 D3DKMT_PreemptionAttemptMissPagingCommand
= 5,
179 D3DKMT_PreemptionAttemptMissSplittedCommand
= 6,
180 D3DKMT_PreemptionAttemptMissFenceCommand
= 7,
181 D3DKMT_PreemptionAttemptMissRenderPendingFlip
= 8,
182 D3DKMT_PreemptionAttemptMissNotMakingProgress
= 9,
183 D3DKMT_PreemptionAttemptMissLessPriority
= 10,
184 D3DKMT_PreemptionAttemptMissRemainingQuantum
= 11,
185 D3DKMT_PreemptionAttemptMissRemainingPreemptionQuantum
= 12,
186 D3DKMT_PreemptionAttemptMissAlreadyPreempting
= 13,
187 D3DKMT_PreemptionAttemptMissGlobalBlock
= 14,
188 D3DKMT_PreemptionAttemptMissAlreadyRunning
= 15,
189 D3DKMT_PreemptionAttemptStatisticsMax
190 } D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT
;
192 typedef enum _D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS
194 D3DKMT_AllocationPriorityClassMinimum
,
195 D3DKMT_AllocationPriorityClassLow
,
196 D3DKMT_AllocationPriorityClassNormal
,
197 D3DKMT_AllocationPriorityClassHigh
,
198 D3DKMT_AllocationPriorityClassMaximum
,
199 D3DKMT_MaxAllocationPriorityClass
200 } D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS
;
202 typedef enum _D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE
204 D3DKMT_RenderCommandBuffer
,
205 D3DKMT_DeferredCommandBuffer
,
206 D3DKMT_SystemCommandBuffer
,
207 D3DKMT_MmIoFlipCommandBuffer
,
208 D3DKMT_WaitCommandBuffer
,
209 D3DKMT_SignalCommandBuffer
,
210 D3DKMT_DeviceCommandBuffer
,
211 D3DKMT_SoftwareCommandBuffer
,
212 D3DKMT_QueuePacketTypeMax
213 } D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE
;
215 typedef enum _D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE
217 D3DKMT_ClientRenderBuffer
,
218 D3DKMT_ClientPagingBuffer
,
219 D3DKMT_SystemPagingBuffer
,
220 D3DKMT_SystemPreemptionBuffer
,
221 D3DKMT_DmaPacketTypeMax
222 } D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE
;
224 typedef struct _D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER
226 ULONGLONG BytesFilled
;
227 ULONGLONG BytesDiscarded
;
228 ULONGLONG BytesMappedIntoAperture
;
229 ULONGLONG BytesUnmappedFromAperture
;
230 ULONGLONG BytesTransferredFromMdlToMemory
;
231 ULONGLONG BytesTransferredFromMemoryToMdl
;
232 ULONGLONG BytesTransferredFromApertureToMemory
;
233 ULONGLONG BytesTransferredFromMemoryToAperture
;
234 } D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER
;
236 typedef struct _D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA
238 ULONG64 TotalBytesEvictedFromProcess
;
239 ULONG64 BytesBySegmentPreference
[D3DKMT_QUERYSTATISTICS_SEGMENT_PREFERENCE_MAX
];
240 } D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA
;
242 typedef struct _D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE
244 ULONG NbRangesAcquired
;
245 ULONG NbRangesReleased
;
246 } D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE
;
248 typedef struct _D3DKMT_QUERYSTATISTICS_COUNTER
252 } D3DKMT_QUERYSTATISTICS_COUNTER
;
254 typedef struct _D3DKMT_QUERYSTATISTICS_DMA_BUFFER
256 D3DKMT_QUERYSTATISTICS_COUNTER Size
;
257 ULONG AllocationListBytes
;
258 ULONG PatchLocationListBytes
;
259 } D3DKMT_QUERYSTATISTICS_DMA_BUFFER
;
261 typedef struct _D3DKMT_QUERYSTATSTICS_LOCKS
264 ULONG NbLocksWaitFlag
;
265 ULONG NbLocksDiscardFlag
;
266 ULONG NbLocksNoOverwrite
;
267 ULONG NbLocksNoReadSync
;
268 ULONG NbLocksLinearization
;
269 ULONG NbComplexLocks
;
270 } D3DKMT_QUERYSTATSTICS_LOCKS
;
272 typedef struct _D3DKMT_QUERYSTATSTICS_ALLOCATIONS
274 D3DKMT_QUERYSTATISTICS_COUNTER Created
;
275 D3DKMT_QUERYSTATISTICS_COUNTER Destroyed
;
276 D3DKMT_QUERYSTATISTICS_COUNTER Opened
;
277 D3DKMT_QUERYSTATISTICS_COUNTER Closed
;
278 D3DKMT_QUERYSTATISTICS_COUNTER MigratedSuccess
;
279 D3DKMT_QUERYSTATISTICS_COUNTER MigratedFail
;
280 D3DKMT_QUERYSTATISTICS_COUNTER MigratedAbandoned
;
281 } D3DKMT_QUERYSTATSTICS_ALLOCATIONS
;
283 typedef struct _D3DKMT_QUERYSTATSTICS_TERMINATIONS
285 D3DKMT_QUERYSTATISTICS_COUNTER TerminatedShared
;
286 D3DKMT_QUERYSTATISTICS_COUNTER TerminatedNonShared
;
287 D3DKMT_QUERYSTATISTICS_COUNTER DestroyedShared
;
288 D3DKMT_QUERYSTATISTICS_COUNTER DestroyedNonShared
;
289 } D3DKMT_QUERYSTATSTICS_TERMINATIONS
;
291 typedef struct _D3DKMT_QUERYSTATISTICS_QUERY_NODE
294 } D3DKMT_QUERYSTATISTICS_QUERY_NODE
;
296 typedef struct _D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT
299 } D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT
;
301 typedef struct _D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION
303 ULONG PreemptionCounter
[D3DKMT_PreemptionAttemptStatisticsMax
];
304 } D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION
;
306 typedef struct _D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE
309 } D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE
;
311 typedef struct _D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION
313 ULONG PacketSubmited
;
314 ULONG PacketCompleted
;
315 } D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION
;
317 typedef struct _D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION
319 ULONG PacketSubmited
;
320 ULONG PacketCompleted
;
321 ULONG PacketPreempted
;
323 } D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION
;
325 typedef struct _D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY
327 ULONGLONG BytesAllocated
;
328 ULONGLONG BytesReserved
;
329 ULONG SmallAllocationBlocks
;
330 ULONG LargeAllocationBlocks
;
331 ULONGLONG WriteCombinedBytesAllocated
;
332 ULONGLONG WriteCombinedBytesReserved
;
333 ULONGLONG CachedBytesAllocated
;
334 ULONGLONG CachedBytesReserved
;
335 ULONGLONG SectionBytesAllocated
;
336 ULONGLONG SectionBytesReserved
;
337 } D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY
;
339 typedef enum _D3DKMT_QUERYSTATISTICS_TYPE
341 D3DKMT_QUERYSTATISTICS_ADAPTER
,
342 D3DKMT_QUERYSTATISTICS_PROCESS
,
343 D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER
,
344 D3DKMT_QUERYSTATISTICS_SEGMENT
,
345 D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT
,
346 D3DKMT_QUERYSTATISTICS_NODE
,
347 D3DKMT_QUERYSTATISTICS_PROCESS_NODE
,
348 D3DKMT_QUERYSTATISTICS_VIDPNSOURCE
,
349 D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE
350 } D3DKMT_QUERYSTATISTICS_TYPE
;
352 typedef struct _D3DKMT_QUERYSTATSTICS_PAGING_FAULT
354 D3DKMT_QUERYSTATISTICS_COUNTER Faults
;
355 D3DKMT_QUERYSTATISTICS_COUNTER FaultsFirstTimeAccess
;
356 D3DKMT_QUERYSTATISTICS_COUNTER FaultsReclaimed
;
357 D3DKMT_QUERYSTATISTICS_COUNTER FaultsMigration
;
358 D3DKMT_QUERYSTATISTICS_COUNTER FaultsIncorrectResource
;
359 D3DKMT_QUERYSTATISTICS_COUNTER FaultsLostContent
;
360 D3DKMT_QUERYSTATISTICS_COUNTER FaultsEvicted
;
361 D3DKMT_QUERYSTATISTICS_COUNTER AllocationsMEM_RESET
;
362 D3DKMT_QUERYSTATISTICS_COUNTER AllocationsUnresetSuccess
;
363 D3DKMT_QUERYSTATISTICS_COUNTER AllocationsUnresetFail
;
364 ULONG AllocationsUnresetSuccessRead
;
365 ULONG AllocationsUnresetFailRead
;
366 D3DKMT_QUERYSTATISTICS_COUNTER Evictions
;
367 D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToPreparation
;
368 D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToLock
;
369 D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToClose
;
370 D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToPurge
;
371 D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToSuspendCPUAccess
;
372 } D3DKMT_QUERYSTATSTICS_PAGING_FAULT
;
374 typedef struct _D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER
377 ULONG NbAllocationsReferenced
;
378 ULONG MaxNbAllocationsReferenced
;
379 ULONG NbNULLReference
;
380 ULONG NbWriteReference
;
381 ULONG NbRenamedAllocationsReferenced
;
382 ULONG NbIterationSearchingRenamedAllocation
;
383 ULONG NbLockedAllocationReferenced
;
384 ULONG NbAllocationWithValidPrepatchingInfoReferenced
;
385 ULONG NbAllocationWithInvalidPrepatchingInfoReferenced
;
386 ULONG NbDMABufferSuccessfullyPrePatched
;
387 ULONG NbPrimariesReferencesOverflow
;
388 ULONG NbAllocationWithNonPreferredResources
;
389 ULONG NbAllocationInsertedInMigrationTable
;
390 } D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER
;
392 typedef struct _D3DKMT_QUERYSTATSTICS_RENAMING
394 ULONG NbAllocationsRenamed
;
395 ULONG NbAllocationsShrinked
;
396 ULONG NbRenamedBuffer
;
397 ULONG MaxRenamingListLength
;
398 ULONG NbFailuresDueToRenamingLimit
;
399 ULONG NbFailuresDueToCreateAllocation
;
400 ULONG NbFailuresDueToOpenAllocation
;
401 ULONG NbFailuresDueToLowResource
;
402 ULONG NbFailuresDueToNonRetiredLimit
;
403 } D3DKMT_QUERYSTATSTICS_RENAMING
;
405 typedef struct _D3DKMT_QUERYSTATSTICS_PREPRATION
407 ULONG BroadcastStall
;
409 ULONG NbDMAPreparedLongPath
;
410 ULONG ImmediateHighestPreparationPass
;
411 D3DKMT_QUERYSTATISTICS_COUNTER AllocationsTrimmed
;
412 } D3DKMT_QUERYSTATSTICS_PREPRATION
;
414 typedef struct _D3DKMT_QUERYSTATISTICS_MEMORY
416 ULONGLONG TotalBytesEvicted
;
417 ULONG AllocsCommitted
;
418 ULONG AllocsResident
;
419 } D3DKMT_QUERYSTATISTICS_MEMORY
;
421 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION
424 ULONG CancelledFrame
;
427 } D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION
;
429 typedef struct _D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION
431 D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION QueuePacket
[D3DKMT_QueuePacketTypeMax
];
432 D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION DmaPacket
[D3DKMT_DmaPacketTypeMax
];
433 } D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION
;
435 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION
437 LARGE_INTEGER RunningTime
;
439 D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION PreemptionStatistics
;
440 D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION PacketStatistics
;
442 } D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION
;
444 typedef struct _D3DKMT_QUERYSTATISTICS_NODE_INFORMATION
446 D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION GlobalInformation
;
447 D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION SystemInformation
;
449 } D3DKMT_QUERYSTATISTICS_NODE_INFORMATION
;
451 typedef struct _D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION
453 D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION GlobalInformation
;
454 D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION SystemInformation
;
456 } D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION
;
458 typedef struct _D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION
462 ULONG VidPnSourceCount
;
464 ULONG TdrDetectedCount
;
465 LONGLONG ZeroLengthDmaBuffers
;
466 ULONGLONG RestartedPeriod
;
467 D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER ReferenceDmaBuffer
;
468 D3DKMT_QUERYSTATSTICS_RENAMING Renaming
;
469 D3DKMT_QUERYSTATSTICS_PREPRATION Preparation
;
470 D3DKMT_QUERYSTATSTICS_PAGING_FAULT PagingFault
;
471 D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER PagingTransfer
;
472 D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE SwizzlingRange
;
473 D3DKMT_QUERYSTATSTICS_LOCKS Locks
;
474 D3DKMT_QUERYSTATSTICS_ALLOCATIONS Allocations
;
475 D3DKMT_QUERYSTATSTICS_TERMINATIONS Terminations
;
477 } D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION
;
479 typedef struct _D3DKMT_QUERYSTATISTICS_POLICY
481 ULONGLONG PreferApertureForRead
[D3DKMT_MaxAllocationPriorityClass
];
482 ULONGLONG PreferAperture
[D3DKMT_MaxAllocationPriorityClass
];
483 ULONGLONG MemResetOnPaging
;
484 ULONGLONG RemovePagesFromWorkingSetOnPaging
;
485 ULONGLONG MigrationEnabled
;
486 } D3DKMT_QUERYSTATISTICS_POLICY
;
488 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION
492 ULONG VidPnSourceCount
;
493 ULONG VirtualMemoryUsage
;
494 D3DKMT_QUERYSTATISTICS_DMA_BUFFER DmaBuffer
;
495 D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA CommitmentData
;
496 D3DKMT_QUERYSTATISTICS_POLICY _Policy
;
498 } D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION
;
500 typedef struct _D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY
502 ULONG AllocsCommitted
;
503 D3DKMT_QUERYSTATISTICS_COUNTER AllocsResidentInP
[D3DKMT_QUERYSTATISTICS_SEGMENT_PREFERENCE_MAX
];
504 D3DKMT_QUERYSTATISTICS_COUNTER AllocsResidentInNonPreferred
;
505 ULONGLONG TotalBytesEvictedDueToPreparation
;
506 } D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY
;
508 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY
511 } D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY
;
513 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION
515 ULONGLONG BytesCommitted
;
516 ULONGLONG MaximumWorkingSet
;
517 ULONGLONG MinimumWorkingSet
;
519 ULONG NbReferencedAllocationEvictedInPeriod
;
521 D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY VideoMemory
;
522 D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY _Policy
;
525 } D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION
;
527 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION
530 ULONG VidPnSourceCount
;
531 D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY SystemMemory
;
533 } D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION
;
535 typedef struct _D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION
537 ULONGLONG CommitLimit
;
538 ULONGLONG BytesCommitted
;
539 ULONGLONG BytesResident
;
540 D3DKMT_QUERYSTATISTICS_MEMORY Memory
;
542 ULONGLONG TotalBytesEvictedByPriority
[D3DKMT_MaxAllocationPriorityClass
];
543 ULONG64 SystemMemoryEndAddress
;
546 ULONG64 PreservedDuringStandby
: 1;
547 ULONG64 PreservedDuringHibernate
: 1;
548 ULONG64 PartiallyPreservedDuringHibernate
: 1;
549 ULONG64 Reserved
: 61;
552 } D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION
;
554 typedef struct _D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_V1
557 ULONG BytesCommitted
;
559 D3DKMT_QUERYSTATISTICS_MEMORY Memory
;
561 ULONGLONG TotalBytesEvictedByPriority
[D3DKMT_MaxAllocationPriorityClass
];
562 ULONG64 SystemMemoryEndAddress
;
565 ULONG64 PreservedDuringStandby
: 1;
566 ULONG64 PreservedDuringHibernate
: 1;
567 ULONG64 PartiallyPreservedDuringHibernate
: 1;
568 ULONG64 Reserved
: 61;
572 } D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_V1
;
574 typedef union _D3DKMT_QUERYSTATISTICS_RESULT
576 D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION AdapterInformation
;
577 D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_V1 SegmentInformationV1
;
578 D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION SegmentInformation
;
579 D3DKMT_QUERYSTATISTICS_NODE_INFORMATION NodeInformation
;
580 D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION VidPnSourceInformation
;
581 D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION ProcessInformation
;
582 D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION ProcessAdapterInformation
;
583 D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION ProcessSegmentInformation
;
584 D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION ProcessNodeInformation
;
585 D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION ProcessVidPnSourceInformation
;
586 } D3DKMT_QUERYSTATISTICS_RESULT
;
588 typedef struct _D3DKMT_QUERYSTATISTICS
590 D3DKMT_QUERYSTATISTICS_TYPE Type
;
593 D3DKMT_QUERYSTATISTICS_RESULT QueryResult
;
597 D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT QuerySegment
;
598 D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT QueryProcessSegment
;
599 D3DKMT_QUERYSTATISTICS_QUERY_NODE QueryNode
;
600 D3DKMT_QUERYSTATISTICS_QUERY_NODE QueryProcessNode
;
601 D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE QueryVidPnSource
;
602 D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE QueryProcessVidPnSource
;
604 } D3DKMT_QUERYSTATISTICS
;
606 typedef enum _D3DKMT_QUEUEDLIMIT_TYPE
608 D3DKMT_SET_QUEUEDLIMIT_PRESENT
= 1,
609 D3DKMT_GET_QUEUEDLIMIT_PRESENT
610 } D3DKMT_QUEUEDLIMIT_TYPE
;
612 typedef struct _D3DKMT_SETQUEUEDLIMIT
614 D3DKMT_HANDLE hDevice
;
615 D3DKMT_QUEUEDLIMIT_TYPE Type
;
618 UINT QueuedPresentLimit
;
621 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId
;
622 UINT QueuedPendingFlipLimit
;
625 } D3DKMT_SETQUEUEDLIMIT
;
627 typedef enum _D3DKMT_ESCAPETYPE
629 D3DKMT_ESCAPE_DRIVERPRIVATE
,
631 D3DKMT_ESCAPE_TDRDBGCTRL
,
632 D3DKMT_ESCAPE_VIDSCH
,
633 D3DKMT_ESCAPE_DEVICE
,
635 D3DKMT_ESCAPE_DEBUG_SNAPSHOT
,
636 D3DKMT_ESCAPE_SETDRIVERUPDATESTATUS
,
637 D3DKMT_ESCAPE_DRT_TEST
,
638 D3DKMT_ESCAPE_DIAGNOSTICS
,
641 typedef struct _D3DKMT_ESCAPE
643 D3DKMT_HANDLE hAdapter
;
644 D3DKMT_HANDLE hDevice
;
645 D3DKMT_ESCAPETYPE Type
;
646 D3DDDI_ESCAPEFLAGS Flags
;
647 void *pPrivateDriverData
;
648 UINT PrivateDriverDataSize
;
649 D3DKMT_HANDLE hContext
;
655 #endif /* __cplusplus */
657 NTSTATUS WINAPI
D3DKMTCheckVidPnExclusiveOwnership(const D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP
*desc
);
658 NTSTATUS WINAPI
D3DKMTCloseAdapter(const D3DKMT_CLOSEADAPTER
*desc
);
659 NTSTATUS WINAPI
D3DKMTCreateDevice(D3DKMT_CREATEDEVICE
*desc
);
660 NTSTATUS WINAPI
D3DKMTCreateDCFromMemory(D3DKMT_CREATEDCFROMMEMORY
*desc
);
661 NTSTATUS WINAPI
D3DKMTDestroyDCFromMemory(const D3DKMT_DESTROYDCFROMMEMORY
*desc
);
662 NTSTATUS WINAPI
D3DKMTDestroyDevice(const D3DKMT_DESTROYDEVICE
*desc
);
663 NTSTATUS WINAPI
D3DKMTEscape( const D3DKMT_ESCAPE
*desc
);
664 NTSTATUS WINAPI
D3DKMTOpenAdapterFromGdiDisplayName(D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME
*desc
);
665 NTSTATUS WINAPI
D3DKMTOpenAdapterFromHdc( D3DKMT_OPENADAPTERFROMHDC
*desc
);
666 NTSTATUS WINAPI
D3DKMTQueryStatistics(D3DKMT_QUERYSTATISTICS
*stats
);
667 NTSTATUS WINAPI
D3DKMTSetQueuedLimit(D3DKMT_SETQUEUEDLIMIT
*desc
);
668 NTSTATUS WINAPI
D3DKMTSetVidPnSourceOwner(const D3DKMT_SETVIDPNSOURCEOWNER
*desc
);
672 #endif /* __cplusplus */
674 #endif /* __WINE_D3DKMTHK_H */