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_SETVIDPNSOURCEOWNER
127 D3DKMT_HANDLE hDevice
;
128 const D3DKMT_VIDPNSOURCEOWNER_TYPE
*pType
;
129 const D3DDDI_VIDEO_PRESENT_SOURCE_ID
*pVidPnSourceId
;
130 UINT VidPnSourceCount
;
131 } D3DKMT_SETVIDPNSOURCEOWNER
;
133 typedef struct _D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP
135 D3DKMT_HANDLE hAdapter
;
136 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId
;
137 } D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP
;
139 #define D3DKMT_QUERYSTATISTICS_SEGMENT_PREFERENCE_MAX 5
141 typedef struct _D3DKMT_CLOSEADAPTER
143 D3DKMT_HANDLE hAdapter
;
144 } D3DKMT_CLOSEADAPTER
;
146 typedef struct _D3DKMT_CREATEDCFROMMEMORY
154 PALETTEENTRY
*pColorTable
;
157 } D3DKMT_CREATEDCFROMMEMORY
;
159 typedef struct _D3DKMT_DESTROYDCFROMMEMORY
163 } D3DKMT_DESTROYDCFROMMEMORY
;
165 typedef enum _D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT
167 D3DKMT_PreemptionAttempt
= 0,
168 D3DKMT_PreemptionAttemptSuccess
= 1,
169 D3DKMT_PreemptionAttemptMissNoCommand
= 2,
170 D3DKMT_PreemptionAttemptMissNotEnabled
= 3,
171 D3DKMT_PreemptionAttemptMissNextFence
= 4,
172 D3DKMT_PreemptionAttemptMissPagingCommand
= 5,
173 D3DKMT_PreemptionAttemptMissSplittedCommand
= 6,
174 D3DKMT_PreemptionAttemptMissFenceCommand
= 7,
175 D3DKMT_PreemptionAttemptMissRenderPendingFlip
= 8,
176 D3DKMT_PreemptionAttemptMissNotMakingProgress
= 9,
177 D3DKMT_PreemptionAttemptMissLessPriority
= 10,
178 D3DKMT_PreemptionAttemptMissRemainingQuantum
= 11,
179 D3DKMT_PreemptionAttemptMissRemainingPreemptionQuantum
= 12,
180 D3DKMT_PreemptionAttemptMissAlreadyPreempting
= 13,
181 D3DKMT_PreemptionAttemptMissGlobalBlock
= 14,
182 D3DKMT_PreemptionAttemptMissAlreadyRunning
= 15,
183 D3DKMT_PreemptionAttemptStatisticsMax
184 } D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT
;
186 typedef enum _D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS
188 D3DKMT_AllocationPriorityClassMinimum
,
189 D3DKMT_AllocationPriorityClassLow
,
190 D3DKMT_AllocationPriorityClassNormal
,
191 D3DKMT_AllocationPriorityClassHigh
,
192 D3DKMT_AllocationPriorityClassMaximum
,
193 D3DKMT_MaxAllocationPriorityClass
194 } D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS
;
196 typedef enum _D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE
198 D3DKMT_RenderCommandBuffer
,
199 D3DKMT_DeferredCommandBuffer
,
200 D3DKMT_SystemCommandBuffer
,
201 D3DKMT_MmIoFlipCommandBuffer
,
202 D3DKMT_WaitCommandBuffer
,
203 D3DKMT_SignalCommandBuffer
,
204 D3DKMT_DeviceCommandBuffer
,
205 D3DKMT_SoftwareCommandBuffer
,
206 D3DKMT_QueuePacketTypeMax
207 } D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE
;
209 typedef enum _D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE
211 D3DKMT_ClientRenderBuffer
,
212 D3DKMT_ClientPagingBuffer
,
213 D3DKMT_SystemPagingBuffer
,
214 D3DKMT_SystemPreemptionBuffer
,
215 D3DKMT_DmaPacketTypeMax
216 } D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE
;
218 typedef struct _D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER
220 ULONGLONG BytesFilled
;
221 ULONGLONG BytesDiscarded
;
222 ULONGLONG BytesMappedIntoAperture
;
223 ULONGLONG BytesUnmappedFromAperture
;
224 ULONGLONG BytesTransferredFromMdlToMemory
;
225 ULONGLONG BytesTransferredFromMemoryToMdl
;
226 ULONGLONG BytesTransferredFromApertureToMemory
;
227 ULONGLONG BytesTransferredFromMemoryToAperture
;
228 } D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER
;
230 typedef struct _D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA
232 ULONG64 TotalBytesEvictedFromProcess
;
233 ULONG64 BytesBySegmentPreference
[D3DKMT_QUERYSTATISTICS_SEGMENT_PREFERENCE_MAX
];
234 } D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA
;
236 typedef struct _D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE
238 ULONG NbRangesAcquired
;
239 ULONG NbRangesReleased
;
240 } D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE
;
242 typedef struct _D3DKMT_QUERYSTATISTICS_COUNTER
246 } D3DKMT_QUERYSTATISTICS_COUNTER
;
248 typedef struct _D3DKMT_QUERYSTATISTICS_DMA_BUFFER
250 D3DKMT_QUERYSTATISTICS_COUNTER Size
;
251 ULONG AllocationListBytes
;
252 ULONG PatchLocationListBytes
;
253 } D3DKMT_QUERYSTATISTICS_DMA_BUFFER
;
255 typedef struct _D3DKMT_QUERYSTATSTICS_LOCKS
258 ULONG NbLocksWaitFlag
;
259 ULONG NbLocksDiscardFlag
;
260 ULONG NbLocksNoOverwrite
;
261 ULONG NbLocksNoReadSync
;
262 ULONG NbLocksLinearization
;
263 ULONG NbComplexLocks
;
264 } D3DKMT_QUERYSTATSTICS_LOCKS
;
266 typedef struct _D3DKMT_QUERYSTATSTICS_ALLOCATIONS
268 D3DKMT_QUERYSTATISTICS_COUNTER Created
;
269 D3DKMT_QUERYSTATISTICS_COUNTER Destroyed
;
270 D3DKMT_QUERYSTATISTICS_COUNTER Opened
;
271 D3DKMT_QUERYSTATISTICS_COUNTER Closed
;
272 D3DKMT_QUERYSTATISTICS_COUNTER MigratedSuccess
;
273 D3DKMT_QUERYSTATISTICS_COUNTER MigratedFail
;
274 D3DKMT_QUERYSTATISTICS_COUNTER MigratedAbandoned
;
275 } D3DKMT_QUERYSTATSTICS_ALLOCATIONS
;
277 typedef struct _D3DKMT_QUERYSTATSTICS_TERMINATIONS
279 D3DKMT_QUERYSTATISTICS_COUNTER TerminatedShared
;
280 D3DKMT_QUERYSTATISTICS_COUNTER TerminatedNonShared
;
281 D3DKMT_QUERYSTATISTICS_COUNTER DestroyedShared
;
282 D3DKMT_QUERYSTATISTICS_COUNTER DestroyedNonShared
;
283 } D3DKMT_QUERYSTATSTICS_TERMINATIONS
;
285 typedef struct _D3DKMT_QUERYSTATISTICS_QUERY_NODE
288 } D3DKMT_QUERYSTATISTICS_QUERY_NODE
;
290 typedef struct _D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT
293 } D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT
;
295 typedef struct _D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION
297 ULONG PreemptionCounter
[D3DKMT_PreemptionAttemptStatisticsMax
];
298 } D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION
;
300 typedef struct _D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE
303 } D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE
;
305 typedef struct _D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION
307 ULONG PacketSubmited
;
308 ULONG PacketCompleted
;
309 } D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION
;
311 typedef struct _D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION
313 ULONG PacketSubmited
;
314 ULONG PacketCompleted
;
315 ULONG PacketPreempted
;
317 } D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION
;
319 typedef struct _D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY
321 ULONGLONG BytesAllocated
;
322 ULONGLONG BytesReserved
;
323 ULONG SmallAllocationBlocks
;
324 ULONG LargeAllocationBlocks
;
325 ULONGLONG WriteCombinedBytesAllocated
;
326 ULONGLONG WriteCombinedBytesReserved
;
327 ULONGLONG CachedBytesAllocated
;
328 ULONGLONG CachedBytesReserved
;
329 ULONGLONG SectionBytesAllocated
;
330 ULONGLONG SectionBytesReserved
;
331 } D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY
;
333 typedef enum _D3DKMT_QUERYSTATISTICS_TYPE
335 D3DKMT_QUERYSTATISTICS_ADAPTER
,
336 D3DKMT_QUERYSTATISTICS_PROCESS
,
337 D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER
,
338 D3DKMT_QUERYSTATISTICS_SEGMENT
,
339 D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT
,
340 D3DKMT_QUERYSTATISTICS_NODE
,
341 D3DKMT_QUERYSTATISTICS_PROCESS_NODE
,
342 D3DKMT_QUERYSTATISTICS_VIDPNSOURCE
,
343 D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE
344 } D3DKMT_QUERYSTATISTICS_TYPE
;
346 typedef struct _D3DKMT_QUERYSTATSTICS_PAGING_FAULT
348 D3DKMT_QUERYSTATISTICS_COUNTER Faults
;
349 D3DKMT_QUERYSTATISTICS_COUNTER FaultsFirstTimeAccess
;
350 D3DKMT_QUERYSTATISTICS_COUNTER FaultsReclaimed
;
351 D3DKMT_QUERYSTATISTICS_COUNTER FaultsMigration
;
352 D3DKMT_QUERYSTATISTICS_COUNTER FaultsIncorrectResource
;
353 D3DKMT_QUERYSTATISTICS_COUNTER FaultsLostContent
;
354 D3DKMT_QUERYSTATISTICS_COUNTER FaultsEvicted
;
355 D3DKMT_QUERYSTATISTICS_COUNTER AllocationsMEM_RESET
;
356 D3DKMT_QUERYSTATISTICS_COUNTER AllocationsUnresetSuccess
;
357 D3DKMT_QUERYSTATISTICS_COUNTER AllocationsUnresetFail
;
358 ULONG AllocationsUnresetSuccessRead
;
359 ULONG AllocationsUnresetFailRead
;
360 D3DKMT_QUERYSTATISTICS_COUNTER Evictions
;
361 D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToPreparation
;
362 D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToLock
;
363 D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToClose
;
364 D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToPurge
;
365 D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToSuspendCPUAccess
;
366 } D3DKMT_QUERYSTATSTICS_PAGING_FAULT
;
368 typedef struct _D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER
371 ULONG NbAllocationsReferenced
;
372 ULONG MaxNbAllocationsReferenced
;
373 ULONG NbNULLReference
;
374 ULONG NbWriteReference
;
375 ULONG NbRenamedAllocationsReferenced
;
376 ULONG NbIterationSearchingRenamedAllocation
;
377 ULONG NbLockedAllocationReferenced
;
378 ULONG NbAllocationWithValidPrepatchingInfoReferenced
;
379 ULONG NbAllocationWithInvalidPrepatchingInfoReferenced
;
380 ULONG NbDMABufferSuccessfullyPrePatched
;
381 ULONG NbPrimariesReferencesOverflow
;
382 ULONG NbAllocationWithNonPreferredResources
;
383 ULONG NbAllocationInsertedInMigrationTable
;
384 } D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER
;
386 typedef struct _D3DKMT_QUERYSTATSTICS_RENAMING
388 ULONG NbAllocationsRenamed
;
389 ULONG NbAllocationsShrinked
;
390 ULONG NbRenamedBuffer
;
391 ULONG MaxRenamingListLength
;
392 ULONG NbFailuresDueToRenamingLimit
;
393 ULONG NbFailuresDueToCreateAllocation
;
394 ULONG NbFailuresDueToOpenAllocation
;
395 ULONG NbFailuresDueToLowResource
;
396 ULONG NbFailuresDueToNonRetiredLimit
;
397 } D3DKMT_QUERYSTATSTICS_RENAMING
;
399 typedef struct _D3DKMT_QUERYSTATSTICS_PREPRATION
401 ULONG BroadcastStall
;
403 ULONG NbDMAPreparedLongPath
;
404 ULONG ImmediateHighestPreparationPass
;
405 D3DKMT_QUERYSTATISTICS_COUNTER AllocationsTrimmed
;
406 } D3DKMT_QUERYSTATSTICS_PREPRATION
;
408 typedef struct _D3DKMT_QUERYSTATISTICS_MEMORY
410 ULONGLONG TotalBytesEvicted
;
411 ULONG AllocsCommitted
;
412 ULONG AllocsResident
;
413 } D3DKMT_QUERYSTATISTICS_MEMORY
;
415 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION
418 ULONG CancelledFrame
;
421 } D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION
;
423 typedef struct _D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION
425 D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION QueuePacket
[D3DKMT_QueuePacketTypeMax
];
426 D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION DmaPacket
[D3DKMT_DmaPacketTypeMax
];
427 } D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION
;
429 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION
431 LARGE_INTEGER RunningTime
;
433 D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION PreemptionStatistics
;
434 D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION PacketStatistics
;
436 } D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION
;
438 typedef struct _D3DKMT_QUERYSTATISTICS_NODE_INFORMATION
440 D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION GlobalInformation
;
441 D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION SystemInformation
;
443 } D3DKMT_QUERYSTATISTICS_NODE_INFORMATION
;
445 typedef struct _D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION
447 D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION GlobalInformation
;
448 D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION SystemInformation
;
450 } D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION
;
452 typedef struct _D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION
456 ULONG VidPnSourceCount
;
458 ULONG TdrDetectedCount
;
459 LONGLONG ZeroLengthDmaBuffers
;
460 ULONGLONG RestartedPeriod
;
461 D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER ReferenceDmaBuffer
;
462 D3DKMT_QUERYSTATSTICS_RENAMING Renaming
;
463 D3DKMT_QUERYSTATSTICS_PREPRATION Preparation
;
464 D3DKMT_QUERYSTATSTICS_PAGING_FAULT PagingFault
;
465 D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER PagingTransfer
;
466 D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE SwizzlingRange
;
467 D3DKMT_QUERYSTATSTICS_LOCKS Locks
;
468 D3DKMT_QUERYSTATSTICS_ALLOCATIONS Allocations
;
469 D3DKMT_QUERYSTATSTICS_TERMINATIONS Terminations
;
471 } D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION
;
473 typedef struct _D3DKMT_QUERYSTATISTICS_POLICY
475 ULONGLONG PreferApertureForRead
[D3DKMT_MaxAllocationPriorityClass
];
476 ULONGLONG PreferAperture
[D3DKMT_MaxAllocationPriorityClass
];
477 ULONGLONG MemResetOnPaging
;
478 ULONGLONG RemovePagesFromWorkingSetOnPaging
;
479 ULONGLONG MigrationEnabled
;
480 } D3DKMT_QUERYSTATISTICS_POLICY
;
482 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION
486 ULONG VidPnSourceCount
;
487 ULONG VirtualMemoryUsage
;
488 D3DKMT_QUERYSTATISTICS_DMA_BUFFER DmaBuffer
;
489 D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA CommitmentData
;
490 D3DKMT_QUERYSTATISTICS_POLICY _Policy
;
492 } D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION
;
494 typedef struct _D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY
496 ULONG AllocsCommitted
;
497 D3DKMT_QUERYSTATISTICS_COUNTER AllocsResidentInP
[D3DKMT_QUERYSTATISTICS_SEGMENT_PREFERENCE_MAX
];
498 D3DKMT_QUERYSTATISTICS_COUNTER AllocsResidentInNonPreferred
;
499 ULONGLONG TotalBytesEvictedDueToPreparation
;
500 } D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY
;
502 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY
505 } D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY
;
507 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION
509 ULONGLONG BytesCommitted
;
510 ULONGLONG MaximumWorkingSet
;
511 ULONGLONG MinimumWorkingSet
;
513 ULONG NbReferencedAllocationEvictedInPeriod
;
515 D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY VideoMemory
;
516 D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY _Policy
;
519 } D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION
;
521 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION
524 ULONG VidPnSourceCount
;
525 D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY SystemMemory
;
527 } D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION
;
529 typedef struct _D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION
531 ULONGLONG CommitLimit
;
532 ULONGLONG BytesCommitted
;
533 ULONGLONG BytesResident
;
534 D3DKMT_QUERYSTATISTICS_MEMORY Memory
;
536 ULONGLONG TotalBytesEvictedByPriority
[D3DKMT_MaxAllocationPriorityClass
];
537 ULONG64 SystemMemoryEndAddress
;
540 ULONG64 PreservedDuringStandby
: 1;
541 ULONG64 PreservedDuringHibernate
: 1;
542 ULONG64 PartiallyPreservedDuringHibernate
: 1;
543 ULONG64 Reserved
: 61;
546 } D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION
;
548 typedef struct _D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_V1
551 ULONG BytesCommitted
;
553 D3DKMT_QUERYSTATISTICS_MEMORY Memory
;
555 ULONGLONG TotalBytesEvictedByPriority
[D3DKMT_MaxAllocationPriorityClass
];
556 ULONG64 SystemMemoryEndAddress
;
559 ULONG64 PreservedDuringStandby
: 1;
560 ULONG64 PreservedDuringHibernate
: 1;
561 ULONG64 PartiallyPreservedDuringHibernate
: 1;
562 ULONG64 Reserved
: 61;
566 } D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_V1
;
568 typedef union _D3DKMT_QUERYSTATISTICS_RESULT
570 D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION AdapterInformation
;
571 D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_V1 SegmentInformationV1
;
572 D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION SegmentInformation
;
573 D3DKMT_QUERYSTATISTICS_NODE_INFORMATION NodeInformation
;
574 D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION VidPnSourceInformation
;
575 D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION ProcessInformation
;
576 D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION ProcessAdapterInformation
;
577 D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION ProcessSegmentInformation
;
578 D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION ProcessNodeInformation
;
579 D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION ProcessVidPnSourceInformation
;
580 } D3DKMT_QUERYSTATISTICS_RESULT
;
582 typedef struct _D3DKMT_QUERYSTATISTICS
584 D3DKMT_QUERYSTATISTICS_TYPE Type
;
587 D3DKMT_QUERYSTATISTICS_RESULT QueryResult
;
591 D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT QuerySegment
;
592 D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT QueryProcessSegment
;
593 D3DKMT_QUERYSTATISTICS_QUERY_NODE QueryNode
;
594 D3DKMT_QUERYSTATISTICS_QUERY_NODE QueryProcessNode
;
595 D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE QueryVidPnSource
;
596 D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE QueryProcessVidPnSource
;
598 } D3DKMT_QUERYSTATISTICS
;
600 typedef enum _D3DKMT_QUEUEDLIMIT_TYPE
602 D3DKMT_SET_QUEUEDLIMIT_PRESENT
= 1,
603 D3DKMT_GET_QUEUEDLIMIT_PRESENT
604 } D3DKMT_QUEUEDLIMIT_TYPE
;
606 typedef struct _D3DKMT_SETQUEUEDLIMIT
608 D3DKMT_HANDLE hDevice
;
609 D3DKMT_QUEUEDLIMIT_TYPE Type
;
612 UINT QueuedPresentLimit
;
615 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId
;
616 UINT QueuedPendingFlipLimit
;
619 } D3DKMT_SETQUEUEDLIMIT
;
624 #endif /* __cplusplus */
626 NTSTATUS WINAPI
D3DKMTCheckVidPnExclusiveOwnership(const D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP
*desc
);
627 NTSTATUS WINAPI
D3DKMTCloseAdapter(const D3DKMT_CLOSEADAPTER
*desc
);
628 NTSTATUS WINAPI
D3DKMTCreateDevice(D3DKMT_CREATEDEVICE
*desc
);
629 NTSTATUS WINAPI
D3DKMTCreateDCFromMemory(D3DKMT_CREATEDCFROMMEMORY
*desc
);
630 NTSTATUS WINAPI
D3DKMTDestroyDCFromMemory(const D3DKMT_DESTROYDCFROMMEMORY
*desc
);
631 NTSTATUS WINAPI
D3DKMTDestroyDevice(const D3DKMT_DESTROYDEVICE
*desc
);
632 NTSTATUS WINAPI
D3DKMTOpenAdapterFromGdiDisplayName(D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME
*desc
);
633 NTSTATUS WINAPI
D3DKMTQueryStatistics(D3DKMT_QUERYSTATISTICS
*stats
);
634 NTSTATUS WINAPI
D3DKMTSetQueuedLimit(D3DKMT_SETQUEUEDLIMIT
*desc
);
635 NTSTATUS WINAPI
D3DKMTSetVidPnSourceOwner(const D3DKMT_SETVIDPNSOURCEOWNER
*desc
);
639 #endif /* __cplusplus */
641 #endif /* __WINE_D3DKMTHK_H */