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 enum _D3DKMT_MEMORY_SEGMENT_GROUP
35 D3DKMT_MEMORY_SEGMENT_GROUP_LOCAL
= 0,
36 D3DKMT_MEMORY_SEGMENT_GROUP_NON_LOCAL
= 1
37 } D3DKMT_MEMORY_SEGMENT_GROUP
;
39 typedef struct _D3DKMT_CREATEDEVICEFLAGS
42 UINT RequestVSync
: 1;
43 UINT DisableGpuTimeout
: 1;
45 } D3DKMT_CREATEDEVICEFLAGS
;
47 typedef struct _D3DDDI_ALLOCATIONLIST
49 D3DKMT_HANDLE hAllocation
;
54 UINT WriteOperation
: 1;
55 UINT DoNotRetireInstance
: 1;
56 UINT OfferPriority
: 3;
61 } D3DDDI_ALLOCATIONLIST
;
63 typedef struct _D3DDDI_PATCHLOCATIONLIST
76 UINT AllocationOffset
;
79 } D3DDDI_PATCHLOCATIONLIST
;
81 typedef struct _D3DKMT_DESTROYDEVICE
83 D3DKMT_HANDLE hDevice
;
84 } D3DKMT_DESTROYDEVICE
;
86 typedef struct _D3DKMT_CHECKOCCLUSION
89 } D3DKMT_CHECKOCCLUSION
;
91 typedef struct _D3DKMT_CREATEDEVICE
95 D3DKMT_HANDLE hAdapter
;
98 D3DKMT_CREATEDEVICEFLAGS Flags
;
99 D3DKMT_HANDLE hDevice
;
100 VOID
*pCommandBuffer
;
101 UINT CommandBufferSize
;
102 D3DDDI_ALLOCATIONLIST
*pAllocationList
;
103 UINT AllocationListSize
;
104 D3DDDI_PATCHLOCATIONLIST
*pPatchLocationList
;
105 UINT PatchLocationListSize
;
106 } D3DKMT_CREATEDEVICE
;
108 typedef struct _D3DKMT_OPENADAPTERFROMHDC
111 D3DKMT_HANDLE hAdapter
;
113 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId
;
114 } D3DKMT_OPENADAPTERFROMHDC
;
116 typedef struct _D3DKMT_OPENADAPTERFROMDEVICENAME
118 const WCHAR
*pDeviceName
;
119 D3DKMT_HANDLE hAdapter
;
121 } D3DKMT_OPENADAPTERFROMDEVICENAME
;
123 typedef struct _D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME
125 WCHAR DeviceName
[32];
126 D3DKMT_HANDLE hAdapter
;
128 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId
;
129 } D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME
;
131 typedef struct _D3DKMT_OPENADAPTERFROMLUID
134 D3DKMT_HANDLE hAdapter
;
135 } D3DKMT_OPENADAPTERFROMLUID
;
137 typedef struct _D3DKMT_SETVIDPNSOURCEOWNER
139 D3DKMT_HANDLE hDevice
;
140 const D3DKMT_VIDPNSOURCEOWNER_TYPE
*pType
;
141 const D3DDDI_VIDEO_PRESENT_SOURCE_ID
*pVidPnSourceId
;
142 UINT VidPnSourceCount
;
143 } D3DKMT_SETVIDPNSOURCEOWNER
;
145 typedef struct _D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP
147 D3DKMT_HANDLE hAdapter
;
148 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId
;
149 } D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP
;
151 #define D3DKMT_QUERYSTATISTICS_SEGMENT_PREFERENCE_MAX 5
153 typedef struct _D3DKMT_CLOSEADAPTER
155 D3DKMT_HANDLE hAdapter
;
156 } D3DKMT_CLOSEADAPTER
;
158 typedef struct _D3DKMT_CREATEDCFROMMEMORY
166 PALETTEENTRY
*pColorTable
;
169 } D3DKMT_CREATEDCFROMMEMORY
;
171 typedef struct _D3DKMT_DESTROYDCFROMMEMORY
175 } D3DKMT_DESTROYDCFROMMEMORY
;
177 typedef enum _D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT
179 D3DKMT_PreemptionAttempt
= 0,
180 D3DKMT_PreemptionAttemptSuccess
= 1,
181 D3DKMT_PreemptionAttemptMissNoCommand
= 2,
182 D3DKMT_PreemptionAttemptMissNotEnabled
= 3,
183 D3DKMT_PreemptionAttemptMissNextFence
= 4,
184 D3DKMT_PreemptionAttemptMissPagingCommand
= 5,
185 D3DKMT_PreemptionAttemptMissSplittedCommand
= 6,
186 D3DKMT_PreemptionAttemptMissFenceCommand
= 7,
187 D3DKMT_PreemptionAttemptMissRenderPendingFlip
= 8,
188 D3DKMT_PreemptionAttemptMissNotMakingProgress
= 9,
189 D3DKMT_PreemptionAttemptMissLessPriority
= 10,
190 D3DKMT_PreemptionAttemptMissRemainingQuantum
= 11,
191 D3DKMT_PreemptionAttemptMissRemainingPreemptionQuantum
= 12,
192 D3DKMT_PreemptionAttemptMissAlreadyPreempting
= 13,
193 D3DKMT_PreemptionAttemptMissGlobalBlock
= 14,
194 D3DKMT_PreemptionAttemptMissAlreadyRunning
= 15,
195 D3DKMT_PreemptionAttemptStatisticsMax
196 } D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT
;
198 typedef enum _D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS
200 D3DKMT_AllocationPriorityClassMinimum
,
201 D3DKMT_AllocationPriorityClassLow
,
202 D3DKMT_AllocationPriorityClassNormal
,
203 D3DKMT_AllocationPriorityClassHigh
,
204 D3DKMT_AllocationPriorityClassMaximum
,
205 D3DKMT_MaxAllocationPriorityClass
206 } D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS
;
208 typedef enum _D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE
210 D3DKMT_RenderCommandBuffer
,
211 D3DKMT_DeferredCommandBuffer
,
212 D3DKMT_SystemCommandBuffer
,
213 D3DKMT_MmIoFlipCommandBuffer
,
214 D3DKMT_WaitCommandBuffer
,
215 D3DKMT_SignalCommandBuffer
,
216 D3DKMT_DeviceCommandBuffer
,
217 D3DKMT_SoftwareCommandBuffer
,
218 D3DKMT_QueuePacketTypeMax
219 } D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE
;
221 typedef enum _D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE
223 D3DKMT_ClientRenderBuffer
,
224 D3DKMT_ClientPagingBuffer
,
225 D3DKMT_SystemPagingBuffer
,
226 D3DKMT_SystemPreemptionBuffer
,
227 D3DKMT_DmaPacketTypeMax
228 } D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE
;
230 typedef struct _D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER
232 ULONGLONG BytesFilled
;
233 ULONGLONG BytesDiscarded
;
234 ULONGLONG BytesMappedIntoAperture
;
235 ULONGLONG BytesUnmappedFromAperture
;
236 ULONGLONG BytesTransferredFromMdlToMemory
;
237 ULONGLONG BytesTransferredFromMemoryToMdl
;
238 ULONGLONG BytesTransferredFromApertureToMemory
;
239 ULONGLONG BytesTransferredFromMemoryToAperture
;
240 } D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER
;
242 typedef struct _D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA
244 ULONG64 TotalBytesEvictedFromProcess
;
245 ULONG64 BytesBySegmentPreference
[D3DKMT_QUERYSTATISTICS_SEGMENT_PREFERENCE_MAX
];
246 } D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA
;
248 typedef struct _D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE
250 ULONG NbRangesAcquired
;
251 ULONG NbRangesReleased
;
252 } D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE
;
254 typedef struct _D3DKMT_QUERYSTATISTICS_COUNTER
258 } D3DKMT_QUERYSTATISTICS_COUNTER
;
260 typedef struct _D3DKMT_QUERYSTATISTICS_DMA_BUFFER
262 D3DKMT_QUERYSTATISTICS_COUNTER Size
;
263 ULONG AllocationListBytes
;
264 ULONG PatchLocationListBytes
;
265 } D3DKMT_QUERYSTATISTICS_DMA_BUFFER
;
267 typedef struct _D3DKMT_QUERYSTATSTICS_LOCKS
270 ULONG NbLocksWaitFlag
;
271 ULONG NbLocksDiscardFlag
;
272 ULONG NbLocksNoOverwrite
;
273 ULONG NbLocksNoReadSync
;
274 ULONG NbLocksLinearization
;
275 ULONG NbComplexLocks
;
276 } D3DKMT_QUERYSTATSTICS_LOCKS
;
278 typedef struct _D3DKMT_QUERYSTATSTICS_ALLOCATIONS
280 D3DKMT_QUERYSTATISTICS_COUNTER Created
;
281 D3DKMT_QUERYSTATISTICS_COUNTER Destroyed
;
282 D3DKMT_QUERYSTATISTICS_COUNTER Opened
;
283 D3DKMT_QUERYSTATISTICS_COUNTER Closed
;
284 D3DKMT_QUERYSTATISTICS_COUNTER MigratedSuccess
;
285 D3DKMT_QUERYSTATISTICS_COUNTER MigratedFail
;
286 D3DKMT_QUERYSTATISTICS_COUNTER MigratedAbandoned
;
287 } D3DKMT_QUERYSTATSTICS_ALLOCATIONS
;
289 typedef struct _D3DKMT_QUERYSTATSTICS_TERMINATIONS
291 D3DKMT_QUERYSTATISTICS_COUNTER TerminatedShared
;
292 D3DKMT_QUERYSTATISTICS_COUNTER TerminatedNonShared
;
293 D3DKMT_QUERYSTATISTICS_COUNTER DestroyedShared
;
294 D3DKMT_QUERYSTATISTICS_COUNTER DestroyedNonShared
;
295 } D3DKMT_QUERYSTATSTICS_TERMINATIONS
;
297 typedef struct _D3DKMT_QUERYSTATISTICS_QUERY_NODE
300 } D3DKMT_QUERYSTATISTICS_QUERY_NODE
;
302 typedef struct _D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT
305 } D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT
;
307 typedef struct _D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION
309 ULONG PreemptionCounter
[D3DKMT_PreemptionAttemptStatisticsMax
];
310 } D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION
;
312 typedef struct _D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE
315 } D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE
;
317 typedef struct _D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION
319 ULONG PacketSubmited
;
320 ULONG PacketCompleted
;
321 } D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION
;
323 typedef struct _D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION
325 ULONG PacketSubmited
;
326 ULONG PacketCompleted
;
327 ULONG PacketPreempted
;
329 } D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION
;
331 typedef struct _D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY
333 ULONGLONG BytesAllocated
;
334 ULONGLONG BytesReserved
;
335 ULONG SmallAllocationBlocks
;
336 ULONG LargeAllocationBlocks
;
337 ULONGLONG WriteCombinedBytesAllocated
;
338 ULONGLONG WriteCombinedBytesReserved
;
339 ULONGLONG CachedBytesAllocated
;
340 ULONGLONG CachedBytesReserved
;
341 ULONGLONG SectionBytesAllocated
;
342 ULONGLONG SectionBytesReserved
;
343 } D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY
;
345 typedef enum _D3DKMT_QUERYSTATISTICS_TYPE
347 D3DKMT_QUERYSTATISTICS_ADAPTER
,
348 D3DKMT_QUERYSTATISTICS_PROCESS
,
349 D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER
,
350 D3DKMT_QUERYSTATISTICS_SEGMENT
,
351 D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT
,
352 D3DKMT_QUERYSTATISTICS_NODE
,
353 D3DKMT_QUERYSTATISTICS_PROCESS_NODE
,
354 D3DKMT_QUERYSTATISTICS_VIDPNSOURCE
,
355 D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE
356 } D3DKMT_QUERYSTATISTICS_TYPE
;
358 typedef struct _D3DKMT_QUERYSTATSTICS_PAGING_FAULT
360 D3DKMT_QUERYSTATISTICS_COUNTER Faults
;
361 D3DKMT_QUERYSTATISTICS_COUNTER FaultsFirstTimeAccess
;
362 D3DKMT_QUERYSTATISTICS_COUNTER FaultsReclaimed
;
363 D3DKMT_QUERYSTATISTICS_COUNTER FaultsMigration
;
364 D3DKMT_QUERYSTATISTICS_COUNTER FaultsIncorrectResource
;
365 D3DKMT_QUERYSTATISTICS_COUNTER FaultsLostContent
;
366 D3DKMT_QUERYSTATISTICS_COUNTER FaultsEvicted
;
367 D3DKMT_QUERYSTATISTICS_COUNTER AllocationsMEM_RESET
;
368 D3DKMT_QUERYSTATISTICS_COUNTER AllocationsUnresetSuccess
;
369 D3DKMT_QUERYSTATISTICS_COUNTER AllocationsUnresetFail
;
370 ULONG AllocationsUnresetSuccessRead
;
371 ULONG AllocationsUnresetFailRead
;
372 D3DKMT_QUERYSTATISTICS_COUNTER Evictions
;
373 D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToPreparation
;
374 D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToLock
;
375 D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToClose
;
376 D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToPurge
;
377 D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToSuspendCPUAccess
;
378 } D3DKMT_QUERYSTATSTICS_PAGING_FAULT
;
380 typedef struct _D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER
383 ULONG NbAllocationsReferenced
;
384 ULONG MaxNbAllocationsReferenced
;
385 ULONG NbNULLReference
;
386 ULONG NbWriteReference
;
387 ULONG NbRenamedAllocationsReferenced
;
388 ULONG NbIterationSearchingRenamedAllocation
;
389 ULONG NbLockedAllocationReferenced
;
390 ULONG NbAllocationWithValidPrepatchingInfoReferenced
;
391 ULONG NbAllocationWithInvalidPrepatchingInfoReferenced
;
392 ULONG NbDMABufferSuccessfullyPrePatched
;
393 ULONG NbPrimariesReferencesOverflow
;
394 ULONG NbAllocationWithNonPreferredResources
;
395 ULONG NbAllocationInsertedInMigrationTable
;
396 } D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER
;
398 typedef struct _D3DKMT_QUERYSTATSTICS_RENAMING
400 ULONG NbAllocationsRenamed
;
401 ULONG NbAllocationsShrinked
;
402 ULONG NbRenamedBuffer
;
403 ULONG MaxRenamingListLength
;
404 ULONG NbFailuresDueToRenamingLimit
;
405 ULONG NbFailuresDueToCreateAllocation
;
406 ULONG NbFailuresDueToOpenAllocation
;
407 ULONG NbFailuresDueToLowResource
;
408 ULONG NbFailuresDueToNonRetiredLimit
;
409 } D3DKMT_QUERYSTATSTICS_RENAMING
;
411 typedef struct _D3DKMT_QUERYSTATSTICS_PREPRATION
413 ULONG BroadcastStall
;
415 ULONG NbDMAPreparedLongPath
;
416 ULONG ImmediateHighestPreparationPass
;
417 D3DKMT_QUERYSTATISTICS_COUNTER AllocationsTrimmed
;
418 } D3DKMT_QUERYSTATSTICS_PREPRATION
;
420 typedef struct _D3DKMT_QUERYSTATISTICS_MEMORY
422 ULONGLONG TotalBytesEvicted
;
423 ULONG AllocsCommitted
;
424 ULONG AllocsResident
;
425 } D3DKMT_QUERYSTATISTICS_MEMORY
;
427 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION
430 ULONG CancelledFrame
;
433 } D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION
;
435 typedef struct _D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION
437 D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION QueuePacket
[D3DKMT_QueuePacketTypeMax
];
438 D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION DmaPacket
[D3DKMT_DmaPacketTypeMax
];
439 } D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION
;
441 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION
443 LARGE_INTEGER RunningTime
;
445 D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION PreemptionStatistics
;
446 D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION PacketStatistics
;
448 } D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION
;
450 typedef struct _D3DKMT_QUERYSTATISTICS_NODE_INFORMATION
452 D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION GlobalInformation
;
453 D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION SystemInformation
;
455 } D3DKMT_QUERYSTATISTICS_NODE_INFORMATION
;
457 typedef struct _D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION
459 D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION GlobalInformation
;
460 D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION SystemInformation
;
462 } D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION
;
464 typedef struct _D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION
468 ULONG VidPnSourceCount
;
470 ULONG TdrDetectedCount
;
471 LONGLONG ZeroLengthDmaBuffers
;
472 ULONGLONG RestartedPeriod
;
473 D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER ReferenceDmaBuffer
;
474 D3DKMT_QUERYSTATSTICS_RENAMING Renaming
;
475 D3DKMT_QUERYSTATSTICS_PREPRATION Preparation
;
476 D3DKMT_QUERYSTATSTICS_PAGING_FAULT PagingFault
;
477 D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER PagingTransfer
;
478 D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE SwizzlingRange
;
479 D3DKMT_QUERYSTATSTICS_LOCKS Locks
;
480 D3DKMT_QUERYSTATSTICS_ALLOCATIONS Allocations
;
481 D3DKMT_QUERYSTATSTICS_TERMINATIONS Terminations
;
483 } D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION
;
485 typedef struct _D3DKMT_QUERYSTATISTICS_POLICY
487 ULONGLONG PreferApertureForRead
[D3DKMT_MaxAllocationPriorityClass
];
488 ULONGLONG PreferAperture
[D3DKMT_MaxAllocationPriorityClass
];
489 ULONGLONG MemResetOnPaging
;
490 ULONGLONG RemovePagesFromWorkingSetOnPaging
;
491 ULONGLONG MigrationEnabled
;
492 } D3DKMT_QUERYSTATISTICS_POLICY
;
494 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION
498 ULONG VidPnSourceCount
;
499 ULONG VirtualMemoryUsage
;
500 D3DKMT_QUERYSTATISTICS_DMA_BUFFER DmaBuffer
;
501 D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA CommitmentData
;
502 D3DKMT_QUERYSTATISTICS_POLICY _Policy
;
504 } D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION
;
506 typedef struct _D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY
508 ULONG AllocsCommitted
;
509 D3DKMT_QUERYSTATISTICS_COUNTER AllocsResidentInP
[D3DKMT_QUERYSTATISTICS_SEGMENT_PREFERENCE_MAX
];
510 D3DKMT_QUERYSTATISTICS_COUNTER AllocsResidentInNonPreferred
;
511 ULONGLONG TotalBytesEvictedDueToPreparation
;
512 } D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY
;
514 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY
517 } D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY
;
519 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION
521 ULONGLONG BytesCommitted
;
522 ULONGLONG MaximumWorkingSet
;
523 ULONGLONG MinimumWorkingSet
;
525 ULONG NbReferencedAllocationEvictedInPeriod
;
527 D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY VideoMemory
;
528 D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY _Policy
;
531 } D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION
;
533 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION
536 ULONG VidPnSourceCount
;
537 D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY SystemMemory
;
539 } D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION
;
541 typedef struct _D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION
543 ULONGLONG CommitLimit
;
544 ULONGLONG BytesCommitted
;
545 ULONGLONG BytesResident
;
546 D3DKMT_QUERYSTATISTICS_MEMORY Memory
;
548 ULONGLONG TotalBytesEvictedByPriority
[D3DKMT_MaxAllocationPriorityClass
];
549 ULONG64 SystemMemoryEndAddress
;
552 ULONG64 PreservedDuringStandby
: 1;
553 ULONG64 PreservedDuringHibernate
: 1;
554 ULONG64 PartiallyPreservedDuringHibernate
: 1;
555 ULONG64 Reserved
: 61;
558 } D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION
;
560 typedef struct _D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_V1
563 ULONG BytesCommitted
;
565 D3DKMT_QUERYSTATISTICS_MEMORY Memory
;
567 ULONGLONG TotalBytesEvictedByPriority
[D3DKMT_MaxAllocationPriorityClass
];
568 ULONG64 SystemMemoryEndAddress
;
571 ULONG64 PreservedDuringStandby
: 1;
572 ULONG64 PreservedDuringHibernate
: 1;
573 ULONG64 PartiallyPreservedDuringHibernate
: 1;
574 ULONG64 Reserved
: 61;
578 } D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_V1
;
580 typedef union _D3DKMT_QUERYSTATISTICS_RESULT
582 D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION AdapterInformation
;
583 D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_V1 SegmentInformationV1
;
584 D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION SegmentInformation
;
585 D3DKMT_QUERYSTATISTICS_NODE_INFORMATION NodeInformation
;
586 D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION VidPnSourceInformation
;
587 D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION ProcessInformation
;
588 D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION ProcessAdapterInformation
;
589 D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION ProcessSegmentInformation
;
590 D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION ProcessNodeInformation
;
591 D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION ProcessVidPnSourceInformation
;
592 } D3DKMT_QUERYSTATISTICS_RESULT
;
594 typedef struct _D3DKMT_QUERYSTATISTICS
596 D3DKMT_QUERYSTATISTICS_TYPE Type
;
599 D3DKMT_QUERYSTATISTICS_RESULT QueryResult
;
603 D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT QuerySegment
;
604 D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT QueryProcessSegment
;
605 D3DKMT_QUERYSTATISTICS_QUERY_NODE QueryNode
;
606 D3DKMT_QUERYSTATISTICS_QUERY_NODE QueryProcessNode
;
607 D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE QueryVidPnSource
;
608 D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE QueryProcessVidPnSource
;
610 } D3DKMT_QUERYSTATISTICS
;
612 typedef struct _D3DKMT_QUERYVIDEOMEMORYINFO
615 D3DKMT_HANDLE hAdapter
;
616 D3DKMT_MEMORY_SEGMENT_GROUP MemorySegmentGroup
;
619 UINT64 CurrentReservation
;
620 UINT64 AvailableForReservation
;
621 UINT PhysicalAdapterIndex
;
622 } D3DKMT_QUERYVIDEOMEMORYINFO
;
624 typedef enum _D3DKMT_QUEUEDLIMIT_TYPE
626 D3DKMT_SET_QUEUEDLIMIT_PRESENT
= 1,
627 D3DKMT_GET_QUEUEDLIMIT_PRESENT
628 } D3DKMT_QUEUEDLIMIT_TYPE
;
630 typedef struct _D3DKMT_SETQUEUEDLIMIT
632 D3DKMT_HANDLE hDevice
;
633 D3DKMT_QUEUEDLIMIT_TYPE Type
;
636 UINT QueuedPresentLimit
;
639 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId
;
640 UINT QueuedPendingFlipLimit
;
643 } D3DKMT_SETQUEUEDLIMIT
;
645 typedef enum _D3DKMT_ESCAPETYPE
647 D3DKMT_ESCAPE_DRIVERPRIVATE
,
649 D3DKMT_ESCAPE_TDRDBGCTRL
,
650 D3DKMT_ESCAPE_VIDSCH
,
651 D3DKMT_ESCAPE_DEVICE
,
653 D3DKMT_ESCAPE_DEBUG_SNAPSHOT
,
654 D3DKMT_ESCAPE_SETDRIVERUPDATESTATUS
,
655 D3DKMT_ESCAPE_DRT_TEST
,
656 D3DKMT_ESCAPE_DIAGNOSTICS
,
659 typedef struct _D3DKMT_ESCAPE
661 D3DKMT_HANDLE hAdapter
;
662 D3DKMT_HANDLE hDevice
;
663 D3DKMT_ESCAPETYPE Type
;
664 D3DDDI_ESCAPEFLAGS Flags
;
665 void *pPrivateDriverData
;
666 UINT PrivateDriverDataSize
;
667 D3DKMT_HANDLE hContext
;
670 typedef struct _D3DKMT_ADAPTERINFO
672 D3DKMT_HANDLE hAdapter
;
675 BOOL bPrecisePresentRegionsPreferred
;
676 } D3DKMT_ADAPTERINFO
;
678 typedef struct _D3DKMT_ENUMADAPTERS2
681 D3DKMT_ADAPTERINFO
*pAdapters
;
682 } D3DKMT_ENUMADAPTERS2
;
687 #endif /* __cplusplus */
689 NTSTATUS WINAPI
D3DKMTCheckVidPnExclusiveOwnership(const D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP
*desc
);
690 NTSTATUS WINAPI
D3DKMTCloseAdapter(const D3DKMT_CLOSEADAPTER
*desc
);
691 NTSTATUS WINAPI
D3DKMTCreateDevice(D3DKMT_CREATEDEVICE
*desc
);
692 NTSTATUS WINAPI
D3DKMTCreateDCFromMemory(D3DKMT_CREATEDCFROMMEMORY
*desc
);
693 NTSTATUS WINAPI
D3DKMTDestroyDCFromMemory(const D3DKMT_DESTROYDCFROMMEMORY
*desc
);
694 NTSTATUS WINAPI
D3DKMTDestroyDevice(const D3DKMT_DESTROYDEVICE
*desc
);
695 NTSTATUS WINAPI
D3DKMTEscape( const D3DKMT_ESCAPE
*desc
);
696 NTSTATUS WINAPI
D3DKMTOpenAdapterFromGdiDisplayName(D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME
*desc
);
697 NTSTATUS WINAPI
D3DKMTOpenAdapterFromHdc( D3DKMT_OPENADAPTERFROMHDC
*desc
);
698 NTSTATUS WINAPI
D3DKMTOpenAdapterFromLuid( D3DKMT_OPENADAPTERFROMLUID
* desc
);
699 NTSTATUS WINAPI
D3DKMTQueryStatistics(D3DKMT_QUERYSTATISTICS
*stats
);
700 NTSTATUS WINAPI
D3DKMTQueryVideoMemoryInfo(D3DKMT_QUERYVIDEOMEMORYINFO
*desc
);
701 NTSTATUS WINAPI
D3DKMTSetQueuedLimit(D3DKMT_SETQUEUEDLIMIT
*desc
);
702 NTSTATUS WINAPI
D3DKMTSetVidPnSourceOwner(const D3DKMT_SETVIDPNSOURCEOWNER
*desc
);
706 #endif /* __cplusplus */
708 #endif /* __WINE_D3DKMTHK_H */