comctl32/tests: Tweak an ok() message to avoid a spelling error.
[wine.git] / include / ddk / d3dkmthk.h
blobea4df3a9e01175b4033baef3e3d131a1a0ffd714
1 /*
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
22 #include <d3dukmdt.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
35 UINT LegacyMode : 1;
36 UINT RequestVSync : 1;
37 UINT DisableGpuTimeout : 1;
38 UINT Reserved : 29;
39 } D3DKMT_CREATEDEVICEFLAGS;
41 typedef struct _D3DDDI_ALLOCATIONLIST
43 D3DKMT_HANDLE hAllocation;
44 union
46 struct
48 UINT WriteOperation : 1;
49 UINT DoNotRetireInstance : 1;
50 UINT OfferPriority : 3;
51 UINT Reserved : 27;
52 } DUMMYSTRUCTNAME;
53 UINT Value;
54 } DUMMYUNIONNAME;
55 } D3DDDI_ALLOCATIONLIST;
57 typedef struct _D3DDDI_PATCHLOCATIONLIST
59 UINT AllocationIndex;
60 union
62 struct
64 UINT SlotId : 24;
65 UINT Reserved : 8;
66 } DUMMYSTRUCTNAME;
67 UINT Value;
68 } DUMMYUNIONNAME;
69 UINT DriverId;
70 UINT AllocationOffset;
71 UINT PatchOffset;
72 UINT SplitOffset;
73 } D3DDDI_PATCHLOCATIONLIST;
75 typedef struct _D3DKMT_DESTROYDEVICE
77 D3DKMT_HANDLE hDevice;
78 } D3DKMT_DESTROYDEVICE;
80 typedef struct _D3DKMT_CHECKOCCLUSION
82 HWND hWnd;
83 } D3DKMT_CHECKOCCLUSION;
85 typedef struct _D3DKMT_CREATEDEVICE
87 union
89 D3DKMT_HANDLE hAdapter;
90 VOID *pAdapter;
91 } DUMMYUNIONNAME;
92 D3DKMT_CREATEDEVICEFLAGS Flags;
93 D3DKMT_HANDLE hDevice;
94 VOID *pCommandBuffer;
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
104 HDC hDc;
105 D3DKMT_HANDLE hAdapter;
106 LUID AdapterLuid;
107 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
108 } D3DKMT_OPENADAPTERFROMHDC;
110 typedef struct _D3DKMT_OPENADAPTERFROMDEVICENAME
112 const WCHAR *pDeviceName;
113 D3DKMT_HANDLE hAdapter;
114 LUID AdapterLuid;
115 } D3DKMT_OPENADAPTERFROMDEVICENAME;
117 typedef struct _D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME
119 WCHAR DeviceName[32];
120 D3DKMT_HANDLE hAdapter;
121 LUID AdapterLuid;
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
148 void *pMemory;
149 D3DDDIFORMAT Format;
150 UINT Width;
151 UINT Height;
152 UINT Pitch;
153 HDC hDeviceDc;
154 PALETTEENTRY *pColorTable;
155 HDC hDc;
156 HANDLE hBitmap;
157 } D3DKMT_CREATEDCFROMMEMORY;
159 typedef struct _D3DKMT_DESTROYDCFROMMEMORY
161 HDC hDc;
162 HANDLE hBitmap;
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
244 ULONG Count;
245 ULONGLONG Bytes;
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
257 ULONG NbLocks;
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
287 ULONG NodeId;
288 } D3DKMT_QUERYSTATISTICS_QUERY_NODE;
290 typedef struct _D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT
292 ULONG SegmentId;
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
302 ULONG VidPnSourceId;
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;
316 ULONG PacketFaulted;
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
370 ULONG NbCall;
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;
402 ULONG NbDMAPrepared;
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
417 ULONG Frame;
418 ULONG CancelledFrame;
419 ULONG QueuedPresent;
420 ULONG64 Reserved[8];
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;
432 ULONG ContextSwitch;
433 D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION PreemptionStatistics;
434 D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION PacketStatistics;
435 ULONG64 Reserved[8];
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;
442 ULONG64 Reserved[8];
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;
449 ULONG64 Reserved[8];
450 } D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION;
452 typedef struct _D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION
454 ULONG NbSegments;
455 ULONG NodeCount;
456 ULONG VidPnSourceCount;
457 ULONG VSyncEnabled;
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;
470 ULONG64 Reserved[8];
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
484 ULONG NbSegments;
485 ULONG NodeCount;
486 ULONG VidPnSourceCount;
487 ULONG VirtualMemoryUsage;
488 D3DKMT_QUERYSTATISTICS_DMA_BUFFER DmaBuffer;
489 D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA CommitmentData;
490 D3DKMT_QUERYSTATISTICS_POLICY _Policy;
491 ULONG64 Reserved[8];
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
504 ULONGLONG UseMRU;
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;
518 ULONG64 Reserved[8];
519 } D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION;
521 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION
523 ULONG NodeCount;
524 ULONG VidPnSourceCount;
525 D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY SystemMemory;
526 ULONG64 Reserved[8];
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;
535 ULONG Aperture;
536 ULONGLONG TotalBytesEvictedByPriority[D3DKMT_MaxAllocationPriorityClass];
537 ULONG64 SystemMemoryEndAddress;
538 struct
540 ULONG64 PreservedDuringStandby : 1;
541 ULONG64 PreservedDuringHibernate : 1;
542 ULONG64 PartiallyPreservedDuringHibernate : 1;
543 ULONG64 Reserved : 61;
544 } PowerFlags;
545 ULONG64 Reserved[6];
546 } D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION;
548 typedef struct _D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_V1
550 ULONG CommitLimit;
551 ULONG BytesCommitted;
552 ULONG BytesResident;
553 D3DKMT_QUERYSTATISTICS_MEMORY Memory;
554 ULONG Aperture;
555 ULONGLONG TotalBytesEvictedByPriority[D3DKMT_MaxAllocationPriorityClass];
556 ULONG64 SystemMemoryEndAddress;
557 struct
559 ULONG64 PreservedDuringStandby : 1;
560 ULONG64 PreservedDuringHibernate : 1;
561 ULONG64 PartiallyPreservedDuringHibernate : 1;
562 ULONG64 Reserved : 61;
563 } PowerFlags;
565 ULONG64 Reserved[7];
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;
585 LUID AdapterLuid;
586 HANDLE hProcess;
587 D3DKMT_QUERYSTATISTICS_RESULT QueryResult;
589 union
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 #ifdef __cplusplus
601 extern "C"
603 #endif /* __cplusplus */
605 NTSTATUS WINAPI D3DKMTCloseAdapter(const D3DKMT_CLOSEADAPTER *desc);
606 NTSTATUS WINAPI D3DKMTCreateDevice(D3DKMT_CREATEDEVICE *desc);
607 NTSTATUS WINAPI D3DKMTCreateDCFromMemory(D3DKMT_CREATEDCFROMMEMORY *desc);
608 NTSTATUS WINAPI D3DKMTDestroyDCFromMemory(const D3DKMT_DESTROYDCFROMMEMORY *desc);
609 NTSTATUS WINAPI D3DKMTDestroyDevice(const D3DKMT_DESTROYDEVICE *desc);
610 NTSTATUS WINAPI D3DKMTOpenAdapterFromGdiDisplayName(D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME *desc);
611 NTSTATUS WINAPI D3DKMTQueryStatistics(D3DKMT_QUERYSTATISTICS *stats);
613 #ifdef __cplusplus
615 #endif /* __cplusplus */
617 #endif /* __WINE_D3DKMTHK_H */