include: Add some MEDIASUBTYPE_V* GUIDs to wmcodecdsp.idl.
[wine.git] / include / ddk / d3dkmthk.h
blob663a5d31ada31cb5cbae2f41c2f0cc4b8511e9ce
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_OPENADAPTERFROMLUID
127 LUID AdapterLuid;
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
154 void *pMemory;
155 D3DDDIFORMAT Format;
156 UINT Width;
157 UINT Height;
158 UINT Pitch;
159 HDC hDeviceDc;
160 PALETTEENTRY *pColorTable;
161 HDC hDc;
162 HANDLE hBitmap;
163 } D3DKMT_CREATEDCFROMMEMORY;
165 typedef struct _D3DKMT_DESTROYDCFROMMEMORY
167 HDC hDc;
168 HANDLE hBitmap;
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
250 ULONG Count;
251 ULONGLONG Bytes;
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
263 ULONG NbLocks;
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
293 ULONG NodeId;
294 } D3DKMT_QUERYSTATISTICS_QUERY_NODE;
296 typedef struct _D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT
298 ULONG SegmentId;
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
308 ULONG VidPnSourceId;
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;
322 ULONG PacketFaulted;
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
376 ULONG NbCall;
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;
408 ULONG NbDMAPrepared;
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
423 ULONG Frame;
424 ULONG CancelledFrame;
425 ULONG QueuedPresent;
426 ULONG64 Reserved[8];
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;
438 ULONG ContextSwitch;
439 D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION PreemptionStatistics;
440 D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION PacketStatistics;
441 ULONG64 Reserved[8];
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;
448 ULONG64 Reserved[8];
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;
455 ULONG64 Reserved[8];
456 } D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION;
458 typedef struct _D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION
460 ULONG NbSegments;
461 ULONG NodeCount;
462 ULONG VidPnSourceCount;
463 ULONG VSyncEnabled;
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;
476 ULONG64 Reserved[8];
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
490 ULONG NbSegments;
491 ULONG NodeCount;
492 ULONG VidPnSourceCount;
493 ULONG VirtualMemoryUsage;
494 D3DKMT_QUERYSTATISTICS_DMA_BUFFER DmaBuffer;
495 D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA CommitmentData;
496 D3DKMT_QUERYSTATISTICS_POLICY _Policy;
497 ULONG64 Reserved[8];
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
510 ULONGLONG UseMRU;
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;
524 ULONG64 Reserved[8];
525 } D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION;
527 typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION
529 ULONG NodeCount;
530 ULONG VidPnSourceCount;
531 D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY SystemMemory;
532 ULONG64 Reserved[8];
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;
541 ULONG Aperture;
542 ULONGLONG TotalBytesEvictedByPriority[D3DKMT_MaxAllocationPriorityClass];
543 ULONG64 SystemMemoryEndAddress;
544 struct
546 ULONG64 PreservedDuringStandby : 1;
547 ULONG64 PreservedDuringHibernate : 1;
548 ULONG64 PartiallyPreservedDuringHibernate : 1;
549 ULONG64 Reserved : 61;
550 } PowerFlags;
551 ULONG64 Reserved[6];
552 } D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION;
554 typedef struct _D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_V1
556 ULONG CommitLimit;
557 ULONG BytesCommitted;
558 ULONG BytesResident;
559 D3DKMT_QUERYSTATISTICS_MEMORY Memory;
560 ULONG Aperture;
561 ULONGLONG TotalBytesEvictedByPriority[D3DKMT_MaxAllocationPriorityClass];
562 ULONG64 SystemMemoryEndAddress;
563 struct
565 ULONG64 PreservedDuringStandby : 1;
566 ULONG64 PreservedDuringHibernate : 1;
567 ULONG64 PartiallyPreservedDuringHibernate : 1;
568 ULONG64 Reserved : 61;
569 } PowerFlags;
571 ULONG64 Reserved[7];
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;
591 LUID AdapterLuid;
592 HANDLE hProcess;
593 D3DKMT_QUERYSTATISTICS_RESULT QueryResult;
595 union
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;
603 } DUMMYUNIONNAME;
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;
616 union
618 UINT QueuedPresentLimit;
619 struct
621 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
622 UINT QueuedPendingFlipLimit;
623 } DUMMYSTRUCTNAME;
624 } DUMMYUNIONNAME;
625 } D3DKMT_SETQUEUEDLIMIT;
627 typedef enum _D3DKMT_ESCAPETYPE
629 D3DKMT_ESCAPE_DRIVERPRIVATE,
630 D3DKMT_ESCAPE_VIDMM,
631 D3DKMT_ESCAPE_TDRDBGCTRL,
632 D3DKMT_ESCAPE_VIDSCH,
633 D3DKMT_ESCAPE_DEVICE,
634 D3DKMT_ESCAPE_DMM,
635 D3DKMT_ESCAPE_DEBUG_SNAPSHOT,
636 D3DKMT_ESCAPE_SETDRIVERUPDATESTATUS,
637 D3DKMT_ESCAPE_DRT_TEST,
638 D3DKMT_ESCAPE_DIAGNOSTICS,
639 } D3DKMT_ESCAPETYPE;
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;
650 } D3DKMT_ESCAPE;
652 #ifdef __cplusplus
653 extern "C"
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);
670 #ifdef __cplusplus
672 #endif /* __cplusplus */
674 #endif /* __WINE_D3DKMTHK_H */