|
1 /* |
|
2 * video.h |
|
3 * |
|
4 * Video port and miniport driver interface |
|
5 * |
|
6 * This file is part of the w32api package. |
|
7 * |
|
8 * Contributors: |
|
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> |
|
10 * |
|
11 * THIS SOFTWARE IS NOT COPYRIGHTED |
|
12 * |
|
13 * This source code is offered for use in the public domain. You may |
|
14 * use, modify or distribute it freely. |
|
15 * |
|
16 * This code is distributed in the hope that it will be useful but |
|
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY |
|
18 * DISCLAIMED. This includes but is not limited to warranties of |
|
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
|
20 * |
|
21 */ |
|
22 |
|
23 #ifndef __VIDEO_H |
|
24 #define __VIDEO_H |
|
25 |
|
26 |
|
27 #if __GNUC__ >=3 |
|
28 #pragma GCC system_header |
|
29 #endif |
|
30 |
|
31 #ifdef __WINDDI_H |
|
32 #error winddi.h cannot be included with video.h |
|
33 #else |
|
34 |
|
35 #ifdef __cplusplus |
|
36 extern "C" { |
|
37 #endif |
|
38 |
|
39 #include "ntddk.h" |
|
40 |
|
41 #if defined(_VIDEOPORT_) |
|
42 #define VPAPI DECLSPEC_EXPORT |
|
43 #else |
|
44 #define VPAPI DECLSPEC_IMPORT |
|
45 #endif |
|
46 |
|
47 #include "videoagp.h" |
|
48 #include "ntddvdeo.h" |
|
49 |
|
50 |
|
51 typedef LONG VP_STATUS; |
|
52 typedef VP_STATUS *PVP_STATUS; |
|
53 typedef struct __DMA_PARAMETERS * PDMA; |
|
54 typedef struct _VIDEO_PORT_EVENT *PEVENT; |
|
55 typedef struct _VIDEO_PORT_SPIN_LOCK *PSPIN_LOCK; |
|
56 typedef struct __VP_DMA_ADAPTER *PVP_DMA_ADAPTER; |
|
57 |
|
58 #define DISPLAY_ADAPTER_HW_ID 0xFFFFFFFF |
|
59 |
|
60 #define EVENT_TYPE_MASK 1 |
|
61 #define SYNCHRONIZATION_EVENT 0 |
|
62 #define NOTIFICATION_EVENT 1 |
|
63 |
|
64 #define INITIAL_EVENT_STATE_MASK 2 |
|
65 #define INITIAL_EVENT_NOT_SIGNALED 0 |
|
66 #define INITIAL_EVENT_SIGNALED 2 |
|
67 |
|
68 typedef enum VIDEO_DEBUG_LEVEL { |
|
69 Error = 0, |
|
70 Warn, |
|
71 Trace, |
|
72 Info |
|
73 } VIDEO_DEBUG_LEVEL, *PVIDEO_DEBUG_LEVEL; |
|
74 |
|
75 typedef enum { |
|
76 VideoPortUnlockAfterDma = 1, |
|
77 VideoPortKeepPagesLocked, |
|
78 VideoPortDmaInitOnly |
|
79 } DMA_FLAGS; |
|
80 |
|
81 typedef enum _HW_DMA_RETURN { |
|
82 DmaAsyncReturn, |
|
83 DmaSyncReturn |
|
84 } HW_DMA_RETURN, *PHW_DMA_RETURN; |
|
85 |
|
86 typedef HW_DMA_RETURN |
|
87 (*PVIDEO_HW_START_DMA)( |
|
88 PVOID HwDeviceExtension, |
|
89 PDMA pDma); |
|
90 |
|
91 |
|
92 #ifdef DBG |
|
93 |
|
94 #define PAGED_CODE() \ |
|
95 if (VideoPortGetCurrentIrql() > 1 /* APC_LEVEL */) \ |
|
96 { \ |
|
97 VideoPortDebugPrint(Error, "Video: Pageable code called at IRQL %d\n", VideoPortGetCurrentIrql() ); \ |
|
98 ASSERT(FALSE); \ |
|
99 } |
|
100 |
|
101 #else |
|
102 |
|
103 #define PAGED_CODE() |
|
104 |
|
105 #endif |
|
106 |
|
107 typedef struct _VIDEO_HARDWARE_CONFIGURATION_DATA { |
|
108 INTERFACE_TYPE InterfaceType; |
|
109 ULONG BusNumber; |
|
110 USHORT Version; |
|
111 USHORT Revision; |
|
112 USHORT Irql; |
|
113 USHORT Vector; |
|
114 ULONG ControlBase; |
|
115 ULONG ControlSize; |
|
116 ULONG CursorBase; |
|
117 ULONG CursorSize; |
|
118 ULONG FrameBase; |
|
119 ULONG FrameSize; |
|
120 } VIDEO_HARDWARE_CONFIGURATION_DATA, *PVIDEO_HARDWARE_CONFIGURATION_DATA; |
|
121 |
|
122 #define SIZE_OF_NT4_VIDEO_PORT_CONFIG_INFO 0x42 |
|
123 #define SIZE_OF_NT4_VIDEO_HW_INITIALIZATION_DATA 0x28 |
|
124 #define SIZE_OF_W2K_VIDEO_HW_INITIALIZATION_DATA 0x50 |
|
125 |
|
126 typedef enum _VIDEO_DEVICE_DATA_TYPE { |
|
127 VpMachineData = 0, |
|
128 VpCmosData, |
|
129 VpBusData, |
|
130 VpControllerData, |
|
131 VpMonitorData |
|
132 } VIDEO_DEVICE_DATA_TYPE, *PVIDEO_DEVICE_DATA_TYPE; |
|
133 |
|
134 |
|
135 |
|
136 /* Video miniport driver functions */ |
|
137 |
|
138 typedef struct _VP_SCATTER_GATHER_ELEMENT { |
|
139 PHYSICAL_ADDRESS Address; |
|
140 ULONG Length; |
|
141 ULONG_PTR Reserved; |
|
142 } VP_SCATTER_GATHER_ELEMENT, *PVP_SCATTER_GATHER_ELEMENT; |
|
143 |
|
144 typedef struct _VP_SCATTER_GATHER_LIST { |
|
145 ULONG NumberOfElements; |
|
146 ULONG_PTR Reserved; |
|
147 VP_SCATTER_GATHER_ELEMENT Elements[0]; |
|
148 } VP_SCATTER_GATHER_LIST, *PVP_SCATTER_GATHER_LIST; |
|
149 |
|
150 typedef VOID DDKAPI |
|
151 (*PEXECUTE_DMA)( |
|
152 /*IN*/ PVOID HwDeviceExtension, |
|
153 /*IN*/ PVP_DMA_ADAPTER VpDmaAdapter, |
|
154 /*IN*/ PVP_SCATTER_GATHER_LIST SGList, |
|
155 /*IN*/ PVOID Context); |
|
156 |
|
157 typedef PVOID DDKAPI |
|
158 (*PVIDEO_PORT_GET_PROC_ADDRESS)( |
|
159 /*IN*/ PVOID HwDeviceExtension, |
|
160 /*IN*/ PUCHAR FunctionName); |
|
161 |
|
162 typedef struct _VIDEO_PORT_CONFIG_INFO { |
|
163 ULONG Length; |
|
164 ULONG SystemIoBusNumber; |
|
165 INTERFACE_TYPE AdapterInterfaceType; |
|
166 ULONG BusInterruptLevel; |
|
167 ULONG BusInterruptVector; |
|
168 KINTERRUPT_MODE InterruptMode; |
|
169 ULONG NumEmulatorAccessEntries; |
|
170 PEMULATOR_ACCESS_ENTRY EmulatorAccessEntries; |
|
171 ULONG_PTR EmulatorAccessEntriesContext; |
|
172 PHYSICAL_ADDRESS VdmPhysicalVideoMemoryAddress; |
|
173 ULONG VdmPhysicalVideoMemoryLength; |
|
174 ULONG HardwareStateSize; |
|
175 ULONG DmaChannel; |
|
176 ULONG DmaPort; |
|
177 UCHAR DmaShareable; |
|
178 UCHAR InterruptShareable; |
|
179 BOOLEAN Master; |
|
180 DMA_WIDTH DmaWidth; |
|
181 DMA_SPEED DmaSpeed; |
|
182 BOOLEAN bMapBuffers; |
|
183 BOOLEAN NeedPhysicalAddresses; |
|
184 BOOLEAN DemandMode; |
|
185 ULONG MaximumTransferLength; |
|
186 ULONG NumberOfPhysicalBreaks; |
|
187 BOOLEAN ScatterGather; |
|
188 ULONG MaximumScatterGatherChunkSize; |
|
189 PVIDEO_PORT_GET_PROC_ADDRESS VideoPortGetProcAddress; |
|
190 PWSTR DriverRegistryPath; |
|
191 ULONGLONG SystemMemorySize; |
|
192 } VIDEO_PORT_CONFIG_INFO, *PVIDEO_PORT_CONFIG_INFO; |
|
193 |
|
194 typedef VP_STATUS DDKAPI |
|
195 (*PVIDEO_HW_FIND_ADAPTER)( |
|
196 /*IN*/ PVOID HwDeviceExtension, |
|
197 /*IN*/ PVOID HwContext, |
|
198 /*IN*/ PWSTR ArgumentString, |
|
199 /*IN OUT*/ PVIDEO_PORT_CONFIG_INFO ConfigInfo, |
|
200 /*OUT*/ PUCHAR Again); |
|
201 |
|
202 typedef VP_STATUS DDKAPI |
|
203 (*PVIDEO_HW_POWER_GET)( |
|
204 /*IN*/ PVOID HwDeviceExtension, |
|
205 /*IN*/ ULONG HwId, |
|
206 /*IN OUT*/ PVIDEO_POWER_MANAGEMENT VideoPowerControl); |
|
207 |
|
208 /* PVIDEO_HW_GET_CHILD_DESCRIPTOR return values */ |
|
209 #define VIDEO_ENUM_MORE_DEVICES ERROR_CONTINUE |
|
210 #define VIDEO_ENUM_NO_MORE_DEVICES ERROR_NO_MORE_DEVICES |
|
211 #define VIDEO_ENUM_INVALID_DEVICE ERROR_INVALID_NAME |
|
212 |
|
213 /* PVIDEO_HW_GET_CHILD_DESCRIPTOR.ChildEnumInfo constants */ |
|
214 typedef struct _VIDEO_CHILD_ENUM_INFO { |
|
215 ULONG Size; |
|
216 ULONG ChildDescriptorSize; |
|
217 ULONG ChildIndex; |
|
218 ULONG ACPIHwId; |
|
219 PVOID ChildHwDeviceExtension; |
|
220 } VIDEO_CHILD_ENUM_INFO, *PVIDEO_CHILD_ENUM_INFO; |
|
221 |
|
222 /* PVIDEO_HW_GET_CHILD_DESCRIPTOR.VideoChildType constants */ |
|
223 typedef enum _VIDEO_CHILD_TYPE { |
|
224 Monitor = 1, |
|
225 NonPrimaryChip, |
|
226 VideoChip, |
|
227 Other |
|
228 } VIDEO_CHILD_TYPE, *PVIDEO_CHILD_TYPE; |
|
229 |
|
230 typedef VP_STATUS DDKAPI |
|
231 (*PVIDEO_HW_GET_CHILD_DESCRIPTOR)( |
|
232 /*IN*/ PVOID HwDeviceExtension, |
|
233 /*IN*/ PVIDEO_CHILD_ENUM_INFO ChildEnumInfo, |
|
234 /*OUT*/ PVIDEO_CHILD_TYPE VideoChildType, |
|
235 /*OUT*/ PUCHAR pChildDescriptor, |
|
236 /*OUT*/ PULONG UId, |
|
237 /*OUT*/ PULONG pUnused); |
|
238 |
|
239 typedef BOOLEAN DDKAPI |
|
240 (*PVIDEO_HW_INITIALIZE)( |
|
241 /*IN*/ PVOID HwDeviceExtension); |
|
242 |
|
243 typedef BOOLEAN DDKAPI |
|
244 (*PVIDEO_HW_INTERRUPT)( |
|
245 /*IN*/ PVOID HwDeviceExtension); |
|
246 |
|
247 /* VIDEO_ACCESS_RANGE.RangePassive */ |
|
248 #define VIDEO_RANGE_PASSIVE_DECODE 1 |
|
249 #define VIDEO_RANGE_10_BIT_DECODE 2 |
|
250 |
|
251 #ifndef VIDEO_ACCESS_RANGE_DEFINED /* also in miniport.h */ |
|
252 #define VIDEO_ACCESS_RANGE_DEFINED |
|
253 typedef struct _VIDEO_ACCESS_RANGE { |
|
254 PHYSICAL_ADDRESS RangeStart; |
|
255 ULONG RangeLength; |
|
256 UCHAR RangeInIoSpace; |
|
257 UCHAR RangeVisible; |
|
258 UCHAR RangeShareable; |
|
259 UCHAR RangePassive; |
|
260 } VIDEO_ACCESS_RANGE, *PVIDEO_ACCESS_RANGE; |
|
261 #endif |
|
262 |
|
263 typedef VOID DDKAPI |
|
264 (*PVIDEO_HW_LEGACYRESOURCES)( |
|
265 /*IN*/ ULONG VendorId, |
|
266 /*IN*/ ULONG DeviceId, |
|
267 /*IN OUT*/ PVIDEO_ACCESS_RANGE *LegacyResourceList, |
|
268 /*IN OUT*/ PULONG LegacyResourceCount); |
|
269 |
|
270 typedef VP_STATUS DDKAPI |
|
271 (*PMINIPORT_QUERY_DEVICE_ROUTINE)( |
|
272 /*IN*/ PVOID HwDeviceExtension, |
|
273 /*IN*/ PVOID Context, |
|
274 /*IN*/ VIDEO_DEVICE_DATA_TYPE DeviceDataType, |
|
275 /*IN*/ PVOID Identifier, |
|
276 /*IN*/ ULONG IdentifierLength, |
|
277 /*IN*/ PVOID ConfigurationData, |
|
278 /*IN*/ ULONG ConfigurationDataLength, |
|
279 /*IN OUT*/ PVOID ComponentInformation, |
|
280 /*IN*/ ULONG ComponentInformationLength); |
|
281 |
|
282 typedef struct _QUERY_INTERFACE { |
|
283 CONST GUID *InterfaceType; |
|
284 USHORT Size; |
|
285 USHORT Version; |
|
286 PINTERFACE Interface; |
|
287 PVOID InterfaceSpecificData; |
|
288 } QUERY_INTERFACE, *PQUERY_INTERFACE; |
|
289 |
|
290 typedef VP_STATUS DDKAPI |
|
291 (*PVIDEO_HW_QUERY_INTERFACE)( |
|
292 /*IN*/ PVOID HwDeviceExtension, |
|
293 /*IN OUT*/ PQUERY_INTERFACE QueryInterface); |
|
294 |
|
295 typedef VP_STATUS DDKAPI |
|
296 (*PMINIPORT_GET_REGISTRY_ROUTINE)( |
|
297 /*IN*/ PVOID HwDeviceExtension, |
|
298 /*IN*/ PVOID Context, |
|
299 /*IN OUT*/ PWSTR ValueName, |
|
300 /*IN OUT*/ PVOID ValueData, |
|
301 /*IN*/ ULONG ValueLength); |
|
302 |
|
303 typedef BOOLEAN DDKAPI |
|
304 (*PVIDEO_HW_RESET_HW)( |
|
305 /*IN*/ PVOID HwDeviceExtension, |
|
306 /*IN*/ ULONG Columns, |
|
307 /*IN*/ ULONG Rows); |
|
308 |
|
309 typedef VP_STATUS DDKAPI |
|
310 (*PVIDEO_HW_POWER_SET)( |
|
311 /*IN*/ PVOID HwDeviceExtension, |
|
312 /*IN*/ ULONG HwId, |
|
313 /*IN*/ PVIDEO_POWER_MANAGEMENT VideoPowerControl); |
|
314 |
|
315 typedef struct _STATUS_BLOCK { |
|
316 _ANONYMOUS_UNION union { |
|
317 VP_STATUS Status; |
|
318 PVOID Pointer; |
|
319 } DUMMYUNIONNAME; |
|
320 ULONG_PTR Information; |
|
321 } STATUS_BLOCK, *PSTATUS_BLOCK; |
|
322 |
|
323 typedef struct _VIDEO_REQUEST_PACKET { |
|
324 ULONG IoControlCode; |
|
325 PSTATUS_BLOCK StatusBlock; |
|
326 PVOID InputBuffer; |
|
327 ULONG InputBufferLength; |
|
328 PVOID OutputBuffer; |
|
329 ULONG OutputBufferLength; |
|
330 } VIDEO_REQUEST_PACKET, *PVIDEO_REQUEST_PACKET; |
|
331 |
|
332 typedef BOOLEAN DDKAPI |
|
333 (*PVIDEO_HW_START_IO)( |
|
334 /*IN*/ PVOID HwDeviceExtension, |
|
335 /*IN*/ PVIDEO_REQUEST_PACKET RequestPacket); |
|
336 |
|
337 typedef BOOLEAN DDKAPI |
|
338 (*PMINIPORT_SYNCHRONIZE_ROUTINE)( |
|
339 /*IN*/ PVOID Context); |
|
340 |
|
341 typedef VOID DDKAPI |
|
342 (*PVIDEO_HW_TIMER)( |
|
343 /*IN*/ PVOID HwDeviceExtension); |
|
344 |
|
345 typedef VOID DDKAPI |
|
346 (*PMINIPORT_DPC_ROUTINE)( |
|
347 /*IN*/ PVOID HwDeviceExtension, |
|
348 /*IN*/ PVOID Context); |
|
349 |
|
350 typedef VP_STATUS DDKAPI |
|
351 (*PDRIVER_IO_PORT_UCHAR)( |
|
352 /*IN*/ ULONG_PTR Context, |
|
353 /*IN*/ ULONG Port, |
|
354 /*IN*/ UCHAR AccessMode, |
|
355 /*IN*/ PUCHAR Data); |
|
356 |
|
357 typedef VP_STATUS DDKAPI |
|
358 (*PDRIVER_IO_PORT_UCHAR_STRING)( |
|
359 /*IN*/ ULONG_PTR Context, |
|
360 /*IN*/ ULONG Port, |
|
361 /*IN*/ UCHAR AccessMode, |
|
362 /*IN*/ PUCHAR Data, |
|
363 /*IN*/ ULONG DataLength); |
|
364 |
|
365 typedef VP_STATUS DDKAPI |
|
366 (*PDRIVER_IO_PORT_ULONG)( |
|
367 /*IN*/ ULONG_PTR Context, |
|
368 /*IN*/ ULONG Port, |
|
369 /*IN*/ UCHAR AccessMode, |
|
370 /*IN*/ PULONG Data); |
|
371 |
|
372 typedef VP_STATUS DDKAPI |
|
373 (*PDRIVER_IO_PORT_ULONG_STRING)( |
|
374 /*IN*/ ULONG_PTR Context, |
|
375 /*IN*/ ULONG Port, |
|
376 /*IN*/ UCHAR AccessMode, |
|
377 /*IN*/ PULONG Data, |
|
378 /*IN*/ ULONG DataLength); |
|
379 |
|
380 typedef VP_STATUS DDKAPI |
|
381 (*PDRIVER_IO_PORT_USHORT)( |
|
382 /*IN*/ ULONG_PTR Context, |
|
383 /*IN*/ ULONG Port, |
|
384 /*IN*/ UCHAR AccessMode, |
|
385 /*IN*/ PUSHORT Data); |
|
386 |
|
387 typedef VP_STATUS DDKAPI |
|
388 (*PDRIVER_IO_PORT_USHORT_STRING)( |
|
389 /*IN*/ ULONG_PTR Context, |
|
390 /*IN*/ ULONG Port, |
|
391 /*IN*/ UCHAR AccessMode, |
|
392 /*IN*/ PUSHORT Data, |
|
393 /*IN*/ ULONG DataLength); |
|
394 |
|
395 |
|
396 |
|
397 typedef struct _INT10_BIOS_ARGUMENTS { |
|
398 ULONG Eax; |
|
399 ULONG Ebx; |
|
400 ULONG Ecx; |
|
401 ULONG Edx; |
|
402 ULONG Esi; |
|
403 ULONG Edi; |
|
404 ULONG Ebp; |
|
405 USHORT SegDs; |
|
406 USHORT SegEs; |
|
407 } INT10_BIOS_ARGUMENTS, *PINT10_BIOS_ARGUMENTS; |
|
408 |
|
409 typedef struct _VIDEO_CHILD_STATE { |
|
410 ULONG Id; |
|
411 ULONG State; |
|
412 } VIDEO_CHILD_STATE, *PVIDEO_CHILD_STATE; |
|
413 |
|
414 typedef struct _VIDEO_CHILD_STATE_CONFIGURATION { |
|
415 ULONG Count; |
|
416 VIDEO_CHILD_STATE ChildStateArray[ANYSIZE_ARRAY]; |
|
417 } VIDEO_CHILD_STATE_CONFIGURATION, *PVIDEO_CHILD_STATE_CONFIGURATION; |
|
418 |
|
419 typedef struct _VIDEO_HW_INITIALIZATION_DATA { |
|
420 ULONG HwInitDataSize; |
|
421 INTERFACE_TYPE AdapterInterfaceType; |
|
422 PVIDEO_HW_FIND_ADAPTER HwFindAdapter; |
|
423 PVIDEO_HW_INITIALIZE HwInitialize; |
|
424 PVIDEO_HW_INTERRUPT HwInterrupt; |
|
425 PVIDEO_HW_START_IO HwStartIO; |
|
426 ULONG HwDeviceExtensionSize; |
|
427 ULONG StartingDeviceNumber; |
|
428 PVIDEO_HW_RESET_HW HwResetHw; |
|
429 PVIDEO_HW_TIMER HwTimer; |
|
430 PVIDEO_HW_START_DMA HwStartDma; |
|
431 PVIDEO_HW_POWER_SET HwSetPowerState; |
|
432 PVIDEO_HW_POWER_GET HwGetPowerState; |
|
433 PVIDEO_HW_GET_CHILD_DESCRIPTOR HwGetVideoChildDescriptor; |
|
434 PVIDEO_HW_QUERY_INTERFACE HwQueryInterface; |
|
435 ULONG HwChildDeviceExtensionSize; |
|
436 PVIDEO_ACCESS_RANGE HwLegacyResourceList; |
|
437 ULONG HwLegacyResourceCount; |
|
438 PVIDEO_HW_LEGACYRESOURCES HwGetLegacyResources; |
|
439 BOOLEAN AllowEarlyEnumeration; |
|
440 ULONG Reserved; |
|
441 } VIDEO_HW_INITIALIZATION_DATA, *PVIDEO_HW_INITIALIZATION_DATA; |
|
442 |
|
443 /* VIDEO_PORT_AGP_INTERFACE.Version contants */ |
|
444 #define VIDEO_PORT_AGP_INTERFACE_VERSION_1 1 |
|
445 |
|
446 typedef struct _VIDEO_PORT_AGP_INTERFACE { |
|
447 SHORT Size; |
|
448 SHORT Version; |
|
449 PVOID Context; |
|
450 PINTERFACE_REFERENCE InterfaceReference; |
|
451 PINTERFACE_DEREFERENCE InterfaceDereference; |
|
452 PAGP_RESERVE_PHYSICAL AgpReservePhysical; |
|
453 PAGP_RELEASE_PHYSICAL AgpReleasePhysical; |
|
454 PAGP_COMMIT_PHYSICAL AgpCommitPhysical; |
|
455 PAGP_FREE_PHYSICAL AgpFreePhysical; |
|
456 PAGP_RESERVE_VIRTUAL AgpReserveVirtual; |
|
457 PAGP_RELEASE_VIRTUAL AgpReleaseVirtual; |
|
458 PAGP_COMMIT_VIRTUAL AgpCommitVirtual; |
|
459 PAGP_FREE_VIRTUAL AgpFreeVirtual; |
|
460 ULONGLONG AgpAllocationLimit; |
|
461 } VIDEO_PORT_AGP_INTERFACE, *PVIDEO_PORT_AGP_INTERFACE; |
|
462 |
|
463 /* VIDEO_PORT_AGP_INTERFACE_2.Version constants */ |
|
464 #define VIDEO_PORT_AGP_INTERFACE_VERSION_2 2 |
|
465 |
|
466 typedef struct _VIDEO_PORT_AGP_INTERFACE_2 { |
|
467 /*IN*/ USHORT Size; |
|
468 /*IN*/ USHORT Version; |
|
469 /*OUT*/ PVOID Context; |
|
470 /*OUT*/ PINTERFACE_REFERENCE InterfaceReference; |
|
471 /*OUT*/ PINTERFACE_DEREFERENCE InterfaceDereference; |
|
472 /*OUT*/ PAGP_RESERVE_PHYSICAL AgpReservePhysical; |
|
473 /*OUT*/ PAGP_RELEASE_PHYSICAL AgpReleasePhysical; |
|
474 /*OUT*/ PAGP_COMMIT_PHYSICAL AgpCommitPhysical; |
|
475 /*OUT*/ PAGP_FREE_PHYSICAL AgpFreePhysical; |
|
476 /*OUT*/ PAGP_RESERVE_VIRTUAL AgpReserveVirtual; |
|
477 /*OUT*/ PAGP_RELEASE_VIRTUAL AgpReleaseVirtual; |
|
478 /*OUT*/ PAGP_COMMIT_VIRTUAL AgpCommitVirtual; |
|
479 /*OUT*/ PAGP_FREE_VIRTUAL AgpFreeVirtual; |
|
480 /*OUT*/ ULONGLONG AgpAllocationLimit; |
|
481 /*OUT*/ PAGP_SET_RATE AgpSetRate; |
|
482 } VIDEO_PORT_AGP_INTERFACE_2, *PVIDEO_PORT_AGP_INTERFACE_2; |
|
483 |
|
484 #define VIDEO_PORT_I2C_INTERFACE_VERSION_1 1 |
|
485 |
|
486 typedef VOID DDKAPI |
|
487 (*PVIDEO_WRITE_CLOCK_LINE)( |
|
488 PVOID HwDeviceExtension, |
|
489 UCHAR Data); |
|
490 |
|
491 typedef VOID DDKAPI |
|
492 (*PVIDEO_WRITE_DATA_LINE)( |
|
493 PVOID HwDeviceExtension, |
|
494 UCHAR Data); |
|
495 |
|
496 typedef BOOLEAN DDKAPI |
|
497 (*PVIDEO_READ_CLOCK_LINE)( |
|
498 PVOID HwDeviceExtension); |
|
499 |
|
500 typedef BOOLEAN DDKAPI |
|
501 (*PVIDEO_READ_DATA_LINE)( |
|
502 PVOID HwDeviceExtension); |
|
503 |
|
504 typedef struct _I2C_CALLBACKS |
|
505 { |
|
506 /*IN*/ PVIDEO_WRITE_CLOCK_LINE WriteClockLine; |
|
507 /*IN*/ PVIDEO_WRITE_DATA_LINE WriteDataLine; |
|
508 /*IN*/ PVIDEO_READ_CLOCK_LINE ReadClockLine; |
|
509 /*IN*/ PVIDEO_READ_DATA_LINE ReadDataLine; |
|
510 } I2C_CALLBACKS, *PI2C_CALLBACKS; |
|
511 |
|
512 typedef BOOLEAN DDKAPI |
|
513 (*PI2C_START)( |
|
514 /*IN*/ PVOID HwDeviceExtension, |
|
515 /*IN*/ PI2C_CALLBACKS I2CCallbacks); |
|
516 |
|
517 typedef BOOLEAN DDKAPI |
|
518 (*PI2C_STOP)( |
|
519 /*IN*/ PVOID HwDeviceExtension, |
|
520 /*IN*/ PI2C_CALLBACKS I2CCallbacks); |
|
521 |
|
522 typedef BOOLEAN DDKAPI |
|
523 (*PI2C_WRITE)( |
|
524 /*IN*/ PVOID HwDeviceExtension, |
|
525 /*IN*/ PI2C_CALLBACKS I2CCallbacks, |
|
526 /*IN*/ PUCHAR Buffer, |
|
527 /*IN*/ ULONG Length); |
|
528 |
|
529 typedef BOOLEAN DDKAPI |
|
530 (*PI2C_READ)( |
|
531 /*IN*/ PVOID HwDeviceExtension, |
|
532 /*IN*/ PI2C_CALLBACKS I2CCallbacks, |
|
533 /*OUT*/ PUCHAR Buffer, |
|
534 /*IN*/ ULONG Length); |
|
535 |
|
536 typedef struct _VIDEO_PORT_I2C_INTERFACE { |
|
537 USHORT Size; |
|
538 USHORT Version; |
|
539 PVOID Context; |
|
540 PINTERFACE_REFERENCE InterfaceReference; |
|
541 PINTERFACE_DEREFERENCE InterfaceDereference; |
|
542 PI2C_START I2CStart; |
|
543 PI2C_STOP I2CStop; |
|
544 PI2C_WRITE I2CWrite; |
|
545 PI2C_READ I2CRead; |
|
546 } VIDEO_PORT_I2C_INTERFACE, *PVIDEO_PORT_I2C_INTERFACE; |
|
547 |
|
548 /* VIDEO_PORT_INT10_INTERFACE.Version constants */ |
|
549 #define VIDEO_PORT_INT10_INTERFACE_VERSION_1 1 |
|
550 |
|
551 typedef VP_STATUS DDKAPI |
|
552 (*PINT10_ALLOCATE_BUFFER)( |
|
553 /*IN*/ PVOID Context, |
|
554 /*OUT*/ PUSHORT Seg, |
|
555 /*OUT*/ PUSHORT Off, |
|
556 /*IN OUT*/ PULONG Length); |
|
557 |
|
558 typedef VP_STATUS DDKAPI |
|
559 (*PINT10_CALL_BIOS)( |
|
560 /*IN*/ PVOID Context, |
|
561 /*IN OUT*/ PINT10_BIOS_ARGUMENTS BiosArguments); |
|
562 |
|
563 typedef VP_STATUS DDKAPI |
|
564 (*PINT10_FREE_BUFFER)( |
|
565 /*IN*/ PVOID Context, |
|
566 /*IN*/ USHORT Seg, |
|
567 /*IN*/ USHORT Off); |
|
568 |
|
569 typedef VP_STATUS DDKAPI |
|
570 (*PINT10_READ_MEMORY)( |
|
571 /*IN*/ PVOID Context, |
|
572 /*IN*/ USHORT Seg, |
|
573 /*IN*/ USHORT Off, |
|
574 /*OUT*/ PVOID Buffer, |
|
575 /*IN*/ ULONG Length); |
|
576 |
|
577 typedef VP_STATUS DDKAPI |
|
578 (*PINT10_WRITE_MEMORY)( |
|
579 /*IN*/ PVOID Context, |
|
580 /*IN*/ USHORT Seg, |
|
581 /*IN*/ USHORT Off, |
|
582 /*IN*/ PVOID Buffer, |
|
583 /*IN*/ ULONG Length); |
|
584 |
|
585 typedef struct _VIDEO_PORT_INT10_INTERFACE { |
|
586 /*IN*/ USHORT Size; |
|
587 /*IN*/ USHORT Version; |
|
588 /*OUT*/ PVOID Context; |
|
589 /*OUT*/ PINTERFACE_REFERENCE InterfaceReference; |
|
590 /*OUT*/ PINTERFACE_DEREFERENCE InterfaceDereference; |
|
591 /*OUT*/ PINT10_ALLOCATE_BUFFER Int10AllocateBuffer; |
|
592 /*OUT*/ PINT10_FREE_BUFFER Int10FreeBuffer; |
|
593 /*OUT*/ PINT10_READ_MEMORY Int10ReadMemory; |
|
594 /*OUT*/ PINT10_WRITE_MEMORY Int10WriteMemory; |
|
595 /*OUT*/ PINT10_CALL_BIOS Int10CallBios; |
|
596 } VIDEO_PORT_INT10_INTERFACE, *PVIDEO_PORT_INT10_INTERFACE; |
|
597 |
|
598 /* Flags for VideoPortGetDeviceBase and VideoPortMapMemory */ |
|
599 #define VIDEO_MEMORY_SPACE_MEMORY 0x00 |
|
600 #define VIDEO_MEMORY_SPACE_IO 0x01 |
|
601 #define VIDEO_MEMORY_SPACE_USER_MODE 0x02 |
|
602 #define VIDEO_MEMORY_SPACE_DENSE 0x04 |
|
603 #define VIDEO_MEMORY_SPACE_P6CACHE 0x08 |
|
604 |
|
605 typedef struct _VIDEO_X86_BIOS_ARGUMENTS { |
|
606 ULONG Eax; |
|
607 ULONG Ebx; |
|
608 ULONG Ecx; |
|
609 ULONG Edx; |
|
610 ULONG Esi; |
|
611 ULONG Edi; |
|
612 ULONG Ebp; |
|
613 } VIDEO_X86_BIOS_ARGUMENTS, *PVIDEO_X86_BIOS_ARGUMENTS; |
|
614 |
|
615 typedef struct _VP_DEVICE_DESCRIPTION { |
|
616 BOOLEAN ScatterGather; |
|
617 BOOLEAN Dma32BitAddresses; |
|
618 BOOLEAN Dma64BitAddresses; |
|
619 ULONG MaximumLength; |
|
620 } VP_DEVICE_DESCRIPTION, *PVP_DEVICE_DESCRIPTION; |
|
621 |
|
622 typedef struct _VPOSVERSIONINFO { |
|
623 /*IN*/ ULONG Size; |
|
624 /*OUT*/ ULONG MajorVersion; |
|
625 /*OUT*/ ULONG MinorVersion; |
|
626 /*OUT*/ ULONG BuildNumber; |
|
627 /*OUT*/ USHORT ServicePackMajor; |
|
628 /*OUT*/ USHORT ServicePackMinor; |
|
629 } VPOSVERSIONINFO, *PVPOSVERSIONINFO; |
|
630 |
|
631 |
|
632 |
|
633 /* Video port functions for miniports */ |
|
634 |
|
635 VPAPI |
|
636 VOID |
|
637 DDKAPI |
|
638 VideoDebugPrint( |
|
639 /*IN*/ ULONG DebugPrintLevel, |
|
640 /*IN*/ PCHAR DebugMessage, |
|
641 /*IN*/ ...); |
|
642 |
|
643 VPAPI |
|
644 VOID |
|
645 DDKAPI |
|
646 VideoPortAcquireDeviceLock( |
|
647 /*IN*/ PVOID HwDeviceExtension); |
|
648 |
|
649 VPAPI |
|
650 VOID |
|
651 DDKAPI |
|
652 VideoPortAcquireSpinLock( |
|
653 /*IN*/ PVOID HwDeviceExtension, |
|
654 /*IN*/ PSPIN_LOCK SpinLock, |
|
655 /*OUT*/ PUCHAR OldIrql); |
|
656 |
|
657 VPAPI |
|
658 VOID |
|
659 DDKAPI |
|
660 VideoPortAcquireSpinLockAtDpcLevel( |
|
661 /*IN*/ PVOID HwDeviceExtension, |
|
662 /*IN*/ PSPIN_LOCK SpinLock); |
|
663 |
|
664 VPAPI |
|
665 VP_STATUS |
|
666 DDKAPI |
|
667 VideoPortAllocateBuffer( |
|
668 /*IN*/ PVOID HwDeviceExtension, |
|
669 /*IN*/ ULONG Size, |
|
670 /*OUT*/ PVOID *Buffer); |
|
671 |
|
672 VPAPI |
|
673 PVOID |
|
674 DDKAPI |
|
675 VideoPortAllocateCommonBuffer( |
|
676 /*IN*/ PVOID HwDeviceExtension, |
|
677 /*IN*/ PVP_DMA_ADAPTER VpDmaAdapter, |
|
678 /*IN*/ ULONG DesiredLength, |
|
679 /*OUT*/ PPHYSICAL_ADDRESS LogicalAddress, |
|
680 /*IN*/ BOOLEAN CacheEnabled, |
|
681 PVOID Reserved); |
|
682 |
|
683 VPAPI |
|
684 PVOID |
|
685 DDKAPI |
|
686 VideoPortAllocateContiguousMemory( |
|
687 /*IN*/ PVOID HwDeviceExtension, |
|
688 /*IN*/ ULONG NumberOfBytes, |
|
689 /*IN*/ PHYSICAL_ADDRESS HighestAcceptableAddress); |
|
690 |
|
691 /* VideoPortAllocatePool.PoolType constants */ |
|
692 typedef enum _VP_POOL_TYPE { |
|
693 VpNonPagedPool = 0, |
|
694 VpPagedPool, |
|
695 VpNonPagedPoolCacheAligned = 4, |
|
696 VpPagedPoolCacheAligned |
|
697 } VP_POOL_TYPE, *PVP_POOL_TYPE; |
|
698 |
|
699 VPAPI |
|
700 PVOID |
|
701 DDKAPI |
|
702 VideoPortAllocatePool( |
|
703 /*IN*/ PVOID HwDeviceExtension, |
|
704 /*IN*/ VP_POOL_TYPE PoolType, |
|
705 /*IN*/ SIZE_T NumberOfBytes, |
|
706 /*IN*/ ULONG Tag); |
|
707 |
|
708 VPAPI |
|
709 PDMA |
|
710 DDKAPI |
|
711 VideoPortAssociateEventsWithDmaHandle( |
|
712 /*IN*/ PVOID HwDeviceExtension, |
|
713 /*IN OUT*/ PVIDEO_REQUEST_PACKET pVrp, |
|
714 /*IN*/ PVOID MappedUserEvent, |
|
715 /*IN*/ PVOID DisplayDriverEvent); |
|
716 |
|
717 /* VideoPortCheckForDeviceExistence.Flags constants */ |
|
718 #define CDE_USE_SUBSYSTEM_IDS 0x00000001 |
|
719 #define CDE_USE_REVISION 0x00000002 |
|
720 |
|
721 VPAPI |
|
722 BOOLEAN |
|
723 DDKAPI |
|
724 VideoPortCheckForDeviceExistence( |
|
725 /*IN*/ PVOID HwDeviceExtension, |
|
726 /*IN*/ USHORT VendorId, |
|
727 /*IN*/ USHORT DeviceId, |
|
728 /*IN*/ UCHAR RevisionId, |
|
729 /*IN*/ USHORT SubVendorId, |
|
730 /*IN*/ USHORT SubSystemId, |
|
731 /*IN*/ ULONG Flags); |
|
732 |
|
733 VPAPI |
|
734 VOID |
|
735 DDKAPI |
|
736 VideoPortClearEvent( |
|
737 /*IN*/ PVOID HwDeviceExtension, |
|
738 /*IN*/ PEVENT pEvent); |
|
739 |
|
740 VPAPI |
|
741 ULONG |
|
742 DDKAPI |
|
743 VideoPortCompareMemory( |
|
744 /*IN*/ PVOID Source1, |
|
745 /*IN*/ PVOID Source2, |
|
746 /*IN*/ ULONG Length); |
|
747 |
|
748 VPAPI |
|
749 VP_STATUS |
|
750 DDKAPI |
|
751 VideoPortCompleteDma( |
|
752 /*IN*/ PVOID HwDeviceExtension, |
|
753 /*IN*/ PVP_DMA_ADAPTER VpDmaAdapter, |
|
754 /*IN*/ PVP_SCATTER_GATHER_LIST VpScatterGather, |
|
755 /*IN*/ BOOLEAN WriteToDevice); |
|
756 |
|
757 VPAPI |
|
758 VP_STATUS |
|
759 DDKAPI |
|
760 VideoPortCreateEvent( |
|
761 /*IN*/ PVOID HwDeviceExtension, |
|
762 /*IN*/ ULONG EventFlag, |
|
763 /*IN*/ PVOID Unused, |
|
764 /*OUT*/ PEVENT *ppEvent); |
|
765 |
|
766 VPAPI |
|
767 VP_STATUS |
|
768 DDKAPI |
|
769 VideoPortCreateSecondaryDisplay( |
|
770 /*IN*/ PVOID HwDeviceExtension, |
|
771 /*IN OUT*/ PVOID *SecondaryDeviceExtension, |
|
772 /*IN*/ ULONG ulFlag); |
|
773 |
|
774 VPAPI |
|
775 VP_STATUS |
|
776 DDKAPI |
|
777 VideoPortCreateSpinLock( |
|
778 /*IN*/ PVOID HwDeviceExtension, |
|
779 /*OUT*/ PSPIN_LOCK *SpinLock); |
|
780 |
|
781 typedef struct _DDC_CONTROL { |
|
782 /*IN*/ ULONG Size; |
|
783 /*IN*/ I2C_CALLBACKS I2CCallbacks; |
|
784 /*IN*/ UCHAR EdidSegment; |
|
785 } DDC_CONTROL, *PDDC_CONTROL; |
|
786 |
|
787 VPAPI |
|
788 BOOLEAN |
|
789 DDKAPI |
|
790 VideoPortDDCMonitorHelper( |
|
791 /*IN*/ PVOID HwDeviceExtension, |
|
792 /*IN*/ PVOID DDCControl, |
|
793 /*IN OUT*/ PUCHAR EdidBuffer, |
|
794 /*IN*/ ULONG EdidBufferSize); |
|
795 |
|
796 VPAPI |
|
797 VOID |
|
798 DDKCDECLAPI |
|
799 VideoPortDebugPrint( |
|
800 /*IN*/ VIDEO_DEBUG_LEVEL DebugPrintLevel, |
|
801 /*IN*/ PCHAR DebugMessage, |
|
802 /*IN*/ ...); |
|
803 |
|
804 VPAPI |
|
805 VP_STATUS |
|
806 DDKAPI |
|
807 VideoPortDeleteEvent( |
|
808 /*IN*/ PVOID HwDeviceExtension, |
|
809 /*IN*/ PEVENT pEvent); |
|
810 |
|
811 VPAPI |
|
812 VP_STATUS |
|
813 DDKAPI |
|
814 VideoPortDeleteSpinLock( |
|
815 /*IN*/ PVOID HwDeviceExtension, |
|
816 /*IN*/ PSPIN_LOCK SpinLock); |
|
817 |
|
818 VPAPI |
|
819 VP_STATUS |
|
820 DDKAPI |
|
821 VideoPortDisableInterrupt( |
|
822 /*IN*/ PVOID HwDeviceExtension); |
|
823 |
|
824 VPAPI |
|
825 PDMA |
|
826 DDKAPI |
|
827 VideoPortDoDma( |
|
828 /*IN*/ PVOID HwDeviceExtension, |
|
829 /*IN*/ PDMA pDma, |
|
830 /*IN*/ DMA_FLAGS DmaFlags); |
|
831 |
|
832 VPAPI |
|
833 VP_STATUS |
|
834 DDKAPI |
|
835 VideoPortEnableInterrupt( |
|
836 /*IN*/ PVOID HwDeviceExtension); |
|
837 |
|
838 VPAPI |
|
839 VP_STATUS |
|
840 DDKAPI |
|
841 VideoPortEnumerateChildren( |
|
842 /*IN*/ PVOID HwDeviceExtension, |
|
843 /*IN*/ PVOID Reserved); |
|
844 |
|
845 VPAPI |
|
846 VOID |
|
847 DDKAPI |
|
848 VideoPortFreeCommonBuffer( |
|
849 /*IN*/ PVOID HwDeviceExtension, |
|
850 /*IN*/ ULONG Length, |
|
851 /*IN*/ PVOID VirtualAddress, |
|
852 /*IN*/ PHYSICAL_ADDRESS LogicalAddress, |
|
853 /*IN*/ BOOLEAN CacheEnabled); |
|
854 |
|
855 VPAPI |
|
856 VOID |
|
857 DDKAPI |
|
858 VideoPortFreeDeviceBase( |
|
859 /*IN*/ PVOID HwDeviceExtension, |
|
860 /*IN*/ PVOID MappedAddress); |
|
861 |
|
862 VPAPI |
|
863 VOID |
|
864 DDKAPI |
|
865 VideoPortFreePool( |
|
866 /*IN*/ PVOID HwDeviceExtension, |
|
867 /*IN*/ PVOID Ptr); |
|
868 |
|
869 VPAPI |
|
870 VP_STATUS |
|
871 DDKAPI |
|
872 VideoPortGetAccessRanges( |
|
873 /*IN*/ PVOID HwDeviceExtension, |
|
874 /*IN*/ ULONG NumRequestedResources, |
|
875 /*IN*/ PIO_RESOURCE_DESCRIPTOR RequestedResources /*OPTIONAL*/, |
|
876 /*IN*/ ULONG NumAccessRanges, |
|
877 /*OUT*/ PVIDEO_ACCESS_RANGE AccessRanges, |
|
878 /*IN*/ PVOID VendorId, |
|
879 /*IN*/ PVOID DeviceId, |
|
880 /*OUT*/ PULONG Slot); |
|
881 |
|
882 VPAPI |
|
883 PVOID |
|
884 DDKAPI |
|
885 VideoPortGetAssociatedDeviceExtension( |
|
886 /*IN*/ PVOID DeviceObject); |
|
887 |
|
888 VPAPI |
|
889 ULONG |
|
890 DDKAPI |
|
891 VideoPortGetAssociatedDeviceID( |
|
892 /*IN*/ PVOID DeviceObject); |
|
893 |
|
894 VPAPI |
|
895 ULONG |
|
896 DDKAPI |
|
897 VideoPortGetBusData( |
|
898 /*IN*/ PVOID HwDeviceExtension, |
|
899 /*IN*/ BUS_DATA_TYPE BusDataType, |
|
900 /*IN*/ ULONG SlotNumber, |
|
901 /*IN OUT*/ PVOID Buffer, |
|
902 /*IN*/ ULONG Offset, |
|
903 /*IN*/ ULONG Length); |
|
904 |
|
905 VPAPI |
|
906 ULONG |
|
907 DDKAPI |
|
908 VideoPortGetBytesUsed( |
|
909 /*IN*/ PVOID HwDeviceExtension, |
|
910 /*IN*/ PDMA pDma); |
|
911 |
|
912 VPAPI |
|
913 PVOID |
|
914 DDKAPI |
|
915 VideoPortGetCommonBuffer( |
|
916 /*IN*/ PVOID HwDeviceExtension, |
|
917 /*IN*/ ULONG DesiredLength, |
|
918 /*IN*/ ULONG Alignment, |
|
919 /*OUT*/ PPHYSICAL_ADDRESS LogicalAddress, |
|
920 /*OUT*/ PULONG pActualLength, |
|
921 /*IN*/ BOOLEAN CacheEnabled); |
|
922 |
|
923 VPAPI |
|
924 UCHAR |
|
925 DDKAPI |
|
926 VideoPortGetCurrentIrql( |
|
927 VOID); |
|
928 |
|
929 VPAPI |
|
930 PVOID |
|
931 DDKAPI |
|
932 VideoPortGetDeviceBase( |
|
933 /*IN*/ PVOID HwDeviceExtension, |
|
934 /*IN*/ PHYSICAL_ADDRESS IoAddress, |
|
935 /*IN*/ ULONG NumberOfUchars, |
|
936 /*IN*/ UCHAR InIoSpace); |
|
937 |
|
938 VPAPI |
|
939 VP_STATUS |
|
940 DDKAPI |
|
941 VideoPortGetDeviceData( |
|
942 /*IN*/ PVOID HwDeviceExtension, |
|
943 /*IN*/ VIDEO_DEVICE_DATA_TYPE DeviceDataType, |
|
944 /*IN*/ PMINIPORT_QUERY_DEVICE_ROUTINE CallbackRoutine, |
|
945 /*IN*/ PVOID Context); |
|
946 |
|
947 VPAPI |
|
948 PVP_DMA_ADAPTER |
|
949 DDKAPI |
|
950 VideoPortGetDmaAdapter( |
|
951 /*IN*/ PVOID HwDeviceExtension, |
|
952 /*IN*/ PVP_DEVICE_DESCRIPTION VpDeviceDescription); |
|
953 |
|
954 VPAPI |
|
955 PVOID |
|
956 DDKAPI |
|
957 VideoPortGetDmaContext( |
|
958 /*IN*/ PVOID HwDeviceExtension, |
|
959 /*IN*/ PDMA pDma); |
|
960 |
|
961 VPAPI |
|
962 PVOID |
|
963 DDKAPI |
|
964 VideoPortGetMdl( |
|
965 /*IN*/ PVOID HwDeviceExtension, |
|
966 /*IN*/ PDMA pDma); |
|
967 |
|
968 VPAPI |
|
969 VP_STATUS |
|
970 DDKAPI |
|
971 VideoPortGetRegistryParameters( |
|
972 /*IN*/ PVOID HwDeviceExtension, |
|
973 /*IN*/ PWSTR ParameterName, |
|
974 /*IN*/ UCHAR IsParameterFileName, |
|
975 /*IN*/ PMINIPORT_GET_REGISTRY_ROUTINE CallbackRoutine, |
|
976 /*IN*/ PVOID Context); |
|
977 |
|
978 VPAPI |
|
979 PVOID |
|
980 DDKAPI |
|
981 VideoPortGetRomImage( |
|
982 /*IN*/ PVOID HwDeviceExtension, |
|
983 /*IN*/ PVOID Unused1, |
|
984 /*IN*/ ULONG Unused2, |
|
985 /*IN*/ ULONG Length); |
|
986 |
|
987 VPAPI |
|
988 VP_STATUS |
|
989 DDKAPI |
|
990 VideoPortGetVersion( |
|
991 /*IN*/ PVOID HwDeviceExtension, |
|
992 /*IN OUT*/ PVPOSVERSIONINFO pVpOsVersionInfo); |
|
993 |
|
994 VPAPI |
|
995 VP_STATUS |
|
996 DDKAPI |
|
997 VideoPortGetVgaStatus( |
|
998 /*IN*/ PVOID HwDeviceExtension, |
|
999 /*OUT*/ PULONG VgaStatus); |
|
1000 |
|
1001 VPAPI |
|
1002 ULONG |
|
1003 DDKAPI |
|
1004 VideoPortInitialize( |
|
1005 /*IN*/ PVOID Argument1, |
|
1006 /*IN*/ PVOID Argument2, |
|
1007 /*IN*/ PVIDEO_HW_INITIALIZATION_DATA HwInitializationData, |
|
1008 /*IN*/ PVOID HwContext); |
|
1009 |
|
1010 VPAPI |
|
1011 VP_STATUS |
|
1012 DDKAPI |
|
1013 VideoPortInt10( |
|
1014 /*IN*/ PVOID HwDeviceExtension, |
|
1015 /*IN*/ PVIDEO_X86_BIOS_ARGUMENTS BiosArguments); |
|
1016 |
|
1017 VPAPI |
|
1018 LONG |
|
1019 DDKFASTAPI |
|
1020 VideoPortInterlockedDecrement( |
|
1021 /*IN*/ PLONG Addend); |
|
1022 |
|
1023 VPAPI |
|
1024 LONG |
|
1025 DDKFASTAPI |
|
1026 VideoPortInterlockedExchange( |
|
1027 /*IN OUT*/ PLONG Target, |
|
1028 /*IN*/ LONG Value); |
|
1029 |
|
1030 VPAPI |
|
1031 LONG |
|
1032 DDKFASTAPI |
|
1033 VideoPortInterlockedIncrement( |
|
1034 /*IN*/ PLONG Addend); |
|
1035 |
|
1036 typedef enum _VP_LOCK_OPERATION { |
|
1037 VpReadAccess = 0, |
|
1038 VpWriteAccess, |
|
1039 VpModifyAccess |
|
1040 } VP_LOCK_OPERATION; |
|
1041 |
|
1042 VPAPI |
|
1043 PVOID |
|
1044 DDKAPI |
|
1045 VideoPortLockBuffer( |
|
1046 /*IN*/ PVOID HwDeviceExtension, |
|
1047 /*IN*/ PVOID BaseAddress, |
|
1048 /*IN*/ ULONG Length, |
|
1049 /*IN*/ VP_LOCK_OPERATION Operation); |
|
1050 |
|
1051 VPAPI |
|
1052 BOOLEAN |
|
1053 DDKAPI |
|
1054 VideoPortLockPages( |
|
1055 /*IN*/ PVOID HwDeviceExtension, |
|
1056 /*IN OUT*/ PVIDEO_REQUEST_PACKET pVrp, |
|
1057 /*IN OUT*/ PEVENT pUEvent, |
|
1058 /*IN*/ PEVENT pDisplayEvent, |
|
1059 /*IN*/ DMA_FLAGS DmaFlags); |
|
1060 |
|
1061 VPAPI |
|
1062 VOID |
|
1063 DDKAPI |
|
1064 VideoPortLogError( |
|
1065 /*IN*/ PVOID HwDeviceExtension, |
|
1066 /*IN*/ PVIDEO_REQUEST_PACKET Vrp /*OPTIONAL*/, |
|
1067 /*IN*/ VP_STATUS ErrorCode, |
|
1068 /*IN*/ ULONG UniqueId); |
|
1069 |
|
1070 VPAPI |
|
1071 VP_STATUS |
|
1072 DDKAPI |
|
1073 VideoPortMapBankedMemory( |
|
1074 /*IN*/ PVOID HwDeviceExtension, |
|
1075 /*IN*/ PHYSICAL_ADDRESS PhysicalAddress, |
|
1076 /*IN OUT*/ PULONG Length, |
|
1077 PULONG InIoSpace, |
|
1078 PVOID *VirtualAddress, |
|
1079 ULONG BankLength, |
|
1080 UCHAR ReadWriteBank, |
|
1081 PBANKED_SECTION_ROUTINE BankRoutine, |
|
1082 PVOID Context); |
|
1083 |
|
1084 VPAPI |
|
1085 PDMA |
|
1086 DDKAPI |
|
1087 VideoPortMapDmaMemory( |
|
1088 /*IN*/ PVOID HwDeviceExtension, |
|
1089 /*IN*/ PVIDEO_REQUEST_PACKET pVrp, |
|
1090 /*IN*/ PHYSICAL_ADDRESS BoardAddress, |
|
1091 /*IN*/ PULONG Length, |
|
1092 /*IN*/ PULONG InIoSpace, |
|
1093 /*IN*/ PVOID MappedUserEvent, |
|
1094 /*IN*/ PVOID DisplayDriverEvent, |
|
1095 /*IN OUT*/ PVOID *VirtualAddress); |
|
1096 |
|
1097 VPAPI |
|
1098 VP_STATUS |
|
1099 DDKAPI |
|
1100 VideoPortMapMemory( |
|
1101 /*IN*/ PVOID HwDeviceExtension, |
|
1102 /*IN*/ PHYSICAL_ADDRESS PhysicalAddress, |
|
1103 /*IN OUT*/ PULONG Length, |
|
1104 /*IN*/ PULONG InIoSpace, |
|
1105 /*IN OUT*/ PVOID *VirtualAddress); |
|
1106 |
|
1107 VPAPI |
|
1108 VOID |
|
1109 DDKAPI |
|
1110 VideoPortMoveMemory( |
|
1111 /*IN*/ PVOID Destination, |
|
1112 /*IN*/ PVOID Source, |
|
1113 /*IN*/ ULONG Length); |
|
1114 |
|
1115 VPAPI |
|
1116 VOID |
|
1117 DDKAPI |
|
1118 VideoPortPutDmaAdapter( |
|
1119 /*IN*/ PVOID HwDeviceExtension, |
|
1120 /*IN*/ PVP_DMA_ADAPTER VpDmaAdapter); |
|
1121 |
|
1122 VPAPI |
|
1123 LONGLONG |
|
1124 DDKAPI |
|
1125 VideoPortQueryPerformanceCounter( |
|
1126 /*IN*/ PVOID HwDeviceExtension, |
|
1127 /*OUT*/ PLONGLONG PerformanceFrequency /*OPTIONAL*/); |
|
1128 |
|
1129 /* VideoPortQueryServices.ServicesType constants */ |
|
1130 typedef enum _VIDEO_PORT_SERVICES { |
|
1131 VideoPortServicesAGP = 1, |
|
1132 VideoPortServicesI2C, |
|
1133 VideoPortServicesHeadless, |
|
1134 VideoPortServicesInt10 |
|
1135 } VIDEO_PORT_SERVICES; |
|
1136 |
|
1137 VPAPI |
|
1138 VP_STATUS |
|
1139 DDKAPI |
|
1140 VideoPortQueryServices( |
|
1141 /*IN*/ PVOID HwDeviceExtension, |
|
1142 /*IN*/ VIDEO_PORT_SERVICES ServicesType, |
|
1143 /*IN OUT*/ PINTERFACE Interface); |
|
1144 |
|
1145 VPAPI |
|
1146 VOID |
|
1147 DDKAPI |
|
1148 VideoPortQuerySystemTime( |
|
1149 /*OUT*/ PLARGE_INTEGER CurrentTime); |
|
1150 |
|
1151 VPAPI |
|
1152 BOOLEAN |
|
1153 DDKAPI |
|
1154 VideoPortQueueDpc( |
|
1155 /*IN*/ PVOID HwDeviceExtension, |
|
1156 /*IN*/ PMINIPORT_DPC_ROUTINE CallbackRoutine, |
|
1157 /*IN*/ PVOID Context); |
|
1158 |
|
1159 VPAPI |
|
1160 VOID |
|
1161 DDKAPI |
|
1162 VideoPortReadPortBufferUchar( |
|
1163 /*IN*/ PUCHAR Port, |
|
1164 /*OUT*/ PUCHAR Buffer, |
|
1165 /*IN*/ ULONG Count); |
|
1166 |
|
1167 VPAPI |
|
1168 VOID |
|
1169 DDKAPI |
|
1170 VideoPortReadPortBufferUlong( |
|
1171 /*IN*/ PULONG Port, |
|
1172 /*OUT*/ PULONG Buffer, |
|
1173 /*IN*/ ULONG Count); |
|
1174 |
|
1175 VPAPI |
|
1176 VOID |
|
1177 DDKAPI |
|
1178 VideoPortReadPortBufferUshort( |
|
1179 /*IN*/ PUSHORT Port, |
|
1180 /*OUT*/ PUSHORT Buffer, |
|
1181 /*IN*/ ULONG Count); |
|
1182 |
|
1183 VPAPI |
|
1184 UCHAR |
|
1185 DDKAPI |
|
1186 VideoPortReadPortUchar( |
|
1187 /*IN*/ PUCHAR Port); |
|
1188 |
|
1189 VPAPI |
|
1190 ULONG |
|
1191 DDKAPI |
|
1192 VideoPortReadPortUlong( |
|
1193 /*IN*/ PULONG Port); |
|
1194 |
|
1195 VPAPI |
|
1196 USHORT |
|
1197 DDKAPI |
|
1198 VideoPortReadPortUshort( |
|
1199 /*IN*/ PUSHORT Port); |
|
1200 |
|
1201 VPAPI |
|
1202 VOID |
|
1203 DDKAPI |
|
1204 VideoPortReadRegisterBufferUchar( |
|
1205 /*IN*/ PUCHAR Register, |
|
1206 /*OUT*/ PUCHAR Buffer, |
|
1207 /*IN*/ ULONG Count); |
|
1208 |
|
1209 VPAPI |
|
1210 VOID |
|
1211 DDKAPI |
|
1212 VideoPortReadRegisterBufferUlong( |
|
1213 /*IN*/ PULONG Register, |
|
1214 /*OUT*/ PULONG Buffer, |
|
1215 /*IN*/ ULONG Count); |
|
1216 |
|
1217 VPAPI |
|
1218 VOID |
|
1219 DDKAPI |
|
1220 VideoPortReadRegisterBufferUshort( |
|
1221 /*IN*/ PUSHORT Register, |
|
1222 /*OUT*/ PUSHORT Buffer, |
|
1223 /*IN*/ ULONG Count); |
|
1224 |
|
1225 VPAPI |
|
1226 UCHAR |
|
1227 DDKAPI |
|
1228 VideoPortReadRegisterUchar( |
|
1229 /*IN*/ PUCHAR Register); |
|
1230 |
|
1231 VPAPI |
|
1232 ULONG |
|
1233 DDKAPI |
|
1234 VideoPortReadRegisterUlong( |
|
1235 /*IN*/ PULONG Register); |
|
1236 |
|
1237 VPAPI |
|
1238 USHORT |
|
1239 DDKAPI |
|
1240 VideoPortReadRegisterUshort( |
|
1241 /*IN*/ PUSHORT Register); |
|
1242 |
|
1243 VPAPI |
|
1244 LONG |
|
1245 DDKAPI |
|
1246 VideoPortReadStateEvent( |
|
1247 /*IN*/ PVOID HwDeviceExtension, |
|
1248 /*IN*/ PEVENT pEvent); |
|
1249 |
|
1250 VPAPI |
|
1251 VOID |
|
1252 DDKAPI |
|
1253 VideoPortReleaseBuffer( |
|
1254 /*IN*/ PVOID HwDeviceExtension, |
|
1255 /*IN*/ PVOID Buffer); |
|
1256 |
|
1257 VPAPI |
|
1258 VOID |
|
1259 DDKAPI |
|
1260 VideoPortReleaseCommonBuffer( |
|
1261 /*IN*/ PVOID HwDeviceExtension, |
|
1262 /*IN*/ PVP_DMA_ADAPTER VpDmaAdapter, |
|
1263 /*IN*/ ULONG Length, |
|
1264 /*IN*/ PHYSICAL_ADDRESS LogicalAddress, |
|
1265 /*IN*/ PVOID VirtualAddress, |
|
1266 /*IN*/ BOOLEAN CacheEnabled); |
|
1267 |
|
1268 VPAPI |
|
1269 VOID |
|
1270 DDKAPI |
|
1271 VideoPortReleaseDeviceLock( |
|
1272 /*IN*/ PVOID HwDeviceExtension); |
|
1273 |
|
1274 VPAPI |
|
1275 VOID |
|
1276 DDKAPI |
|
1277 VideoPortReleaseSpinLock( |
|
1278 /*IN*/ PVOID HwDeviceExtension, |
|
1279 /*IN*/ PSPIN_LOCK SpinLock, |
|
1280 /*IN*/ UCHAR NewIrql); |
|
1281 |
|
1282 VPAPI |
|
1283 VOID |
|
1284 DDKAPI |
|
1285 VideoPortReleaseSpinLockFromDpcLevel( |
|
1286 /*IN*/ PVOID HwDeviceExtension, |
|
1287 /*IN*/ PSPIN_LOCK SpinLock); |
|
1288 |
|
1289 VPAPI |
|
1290 BOOLEAN |
|
1291 DDKAPI |
|
1292 VideoPortScanRom( |
|
1293 PVOID HwDeviceExtension, |
|
1294 PUCHAR RomBase, |
|
1295 ULONG RomLength, |
|
1296 PUCHAR String); |
|
1297 |
|
1298 VPAPI |
|
1299 ULONG |
|
1300 DDKAPI |
|
1301 VideoPortSetBusData( |
|
1302 /*IN*/ PVOID HwDeviceExtension, |
|
1303 /*IN*/ BUS_DATA_TYPE BusDataType, |
|
1304 /*IN*/ ULONG SlotNumber, |
|
1305 /*IN*/ PVOID Buffer, |
|
1306 /*IN*/ ULONG Offset, |
|
1307 /*IN*/ ULONG Length); |
|
1308 |
|
1309 VPAPI |
|
1310 VOID |
|
1311 DDKAPI |
|
1312 VideoPortSetBytesUsed( |
|
1313 /*IN*/ PVOID HwDeviceExtension, |
|
1314 /*IN OUT*/ PDMA pDma, |
|
1315 /*IN*/ ULONG BytesUsed); |
|
1316 |
|
1317 VPAPI |
|
1318 VOID |
|
1319 DDKAPI |
|
1320 VideoPortSetDmaContext( |
|
1321 /*IN*/ PVOID HwDeviceExtension, |
|
1322 /*OUT*/ PDMA pDma, |
|
1323 /*IN*/ PVOID InstanceContext); |
|
1324 |
|
1325 VPAPI |
|
1326 LONG |
|
1327 DDKAPI |
|
1328 VideoPortSetEvent( |
|
1329 /*IN*/ PVOID HwDeviceExtension, |
|
1330 /*IN*/ PEVENT pEvent); |
|
1331 |
|
1332 VPAPI |
|
1333 VP_STATUS |
|
1334 DDKAPI |
|
1335 VideoPortSetRegistryParameters( |
|
1336 /*IN*/ PVOID HwDeviceExtension, |
|
1337 /*IN*/ PWSTR ValueName, |
|
1338 /*IN*/ PVOID ValueData, |
|
1339 /*IN*/ ULONG ValueLength); |
|
1340 |
|
1341 VPAPI |
|
1342 VP_STATUS |
|
1343 DDKAPI |
|
1344 VideoPortSetTrappedEmulatorPorts( |
|
1345 /*IN*/ PVOID HwDeviceExtension, |
|
1346 /*IN*/ ULONG NumAccessRanges, |
|
1347 /*IN*/ PVIDEO_ACCESS_RANGE AccessRange); |
|
1348 |
|
1349 VPAPI |
|
1350 BOOLEAN |
|
1351 DDKAPI |
|
1352 VideoPortSignalDmaComplete( |
|
1353 /*IN*/ PVOID HwDeviceExtension, |
|
1354 /*IN*/ PVOID pDmaHandle); |
|
1355 |
|
1356 VPAPI |
|
1357 VOID |
|
1358 DDKAPI |
|
1359 VideoPortStallExecution( |
|
1360 /*IN*/ ULONG Microseconds); |
|
1361 |
|
1362 VPAPI |
|
1363 VP_STATUS |
|
1364 DDKAPI |
|
1365 VideoPortStartDma( |
|
1366 /*IN*/ PVOID HwDeviceExtension, |
|
1367 /*IN*/ PVP_DMA_ADAPTER VpDmaAdapter, |
|
1368 /*IN*/ PVOID Mdl, |
|
1369 /*IN*/ ULONG Offset, |
|
1370 /*IN OUT*/ PULONG pLength, |
|
1371 /*IN*/ PEXECUTE_DMA ExecuteDmaRoutine, |
|
1372 /*IN*/ PVOID Context, |
|
1373 /*IN*/ BOOLEAN WriteToDevice); |
|
1374 |
|
1375 VPAPI |
|
1376 VOID |
|
1377 DDKAPI |
|
1378 VideoPortStartTimer( |
|
1379 /*IN*/ PVOID HwDeviceExtension); |
|
1380 |
|
1381 VPAPI |
|
1382 VOID |
|
1383 DDKAPI |
|
1384 VideoPortStopTimer( |
|
1385 /*IN*/ PVOID HwDeviceExtension); |
|
1386 |
|
1387 /* VideoPortSynchronizeExecution.Priority constants */ |
|
1388 typedef enum VIDEO_SYNCHRONIZE_PRIORITY { |
|
1389 VpLowPriority = 0, |
|
1390 VpMediumPriority, |
|
1391 VpHighPriority |
|
1392 } VIDEO_SYNCHRONIZE_PRIORITY, *PVIDEO_SYNCHRONIZE_PRIORITY; |
|
1393 |
|
1394 VPAPI |
|
1395 BOOLEAN |
|
1396 DDKAPI |
|
1397 VideoPortSynchronizeExecution( |
|
1398 /*IN*/ PVOID HwDeviceExtension, |
|
1399 /*IN*/ VIDEO_SYNCHRONIZE_PRIORITY Priority, |
|
1400 /*IN*/ PMINIPORT_SYNCHRONIZE_ROUTINE SynchronizeRoutine, |
|
1401 /*IN*/ PVOID Context); |
|
1402 |
|
1403 VPAPI |
|
1404 VOID |
|
1405 DDKAPI |
|
1406 VideoPortUnLockBuffer( |
|
1407 /*IN*/ PVOID HwDeviceExtension, |
|
1408 /*IN*/ PVOID Mdl); |
|
1409 |
|
1410 VPAPI |
|
1411 BOOLEAN |
|
1412 DDKAPI |
|
1413 VideoPortUnlockPages( |
|
1414 /*IN*/ PVOID hwDeviceExtension, |
|
1415 /*IN OUT*/ PDMA pDma); |
|
1416 |
|
1417 VPAPI |
|
1418 BOOLEAN |
|
1419 DDKAPI |
|
1420 VideoPortUnmapDmaMemory( |
|
1421 /*IN*/ PVOID HwDeviceExtension, |
|
1422 /*IN*/ PVOID VirtualAddress, |
|
1423 /*IN*/ HANDLE ProcessHandle, |
|
1424 /*IN*/ PDMA BoardMemoryHandle); |
|
1425 |
|
1426 VPAPI |
|
1427 VP_STATUS |
|
1428 DDKAPI |
|
1429 VideoPortUnmapMemory( |
|
1430 /*IN*/ PVOID HwDeviceExtension, |
|
1431 /*IN OUT*/ PVOID VirtualAddress, |
|
1432 /*IN*/ HANDLE ProcessHandle); |
|
1433 |
|
1434 VPAPI |
|
1435 VP_STATUS |
|
1436 DDKAPI |
|
1437 VideoPortVerifyAccessRanges( |
|
1438 /*IN*/ PVOID HwDeviceExtension, |
|
1439 /*IN*/ ULONG NumAccessRanges, |
|
1440 /*IN*/ PVIDEO_ACCESS_RANGE AccessRanges); |
|
1441 |
|
1442 VPAPI |
|
1443 VP_STATUS |
|
1444 DDKAPI |
|
1445 VideoPortWaitForSingleObject( |
|
1446 /*IN*/ PVOID HwDeviceExtension, |
|
1447 /*IN*/ PVOID Object, |
|
1448 /*IN*/ PLARGE_INTEGER Timeout /*OPTIONAL*/); |
|
1449 |
|
1450 VPAPI |
|
1451 VOID |
|
1452 DDKAPI |
|
1453 VideoPortWritePortBufferUchar( |
|
1454 /*IN*/ PUCHAR Port, |
|
1455 /*IN*/ PUCHAR Buffer, |
|
1456 /*IN*/ ULONG Count); |
|
1457 |
|
1458 VPAPI |
|
1459 VOID |
|
1460 DDKAPI |
|
1461 VideoPortWritePortBufferUlong( |
|
1462 /*IN*/ PULONG Port, |
|
1463 /*IN*/ PULONG Buffer, |
|
1464 /*IN*/ ULONG Count); |
|
1465 |
|
1466 VPAPI |
|
1467 VOID |
|
1468 DDKAPI |
|
1469 VideoPortWritePortBufferUshort( |
|
1470 /*IN*/ PUSHORT Port, |
|
1471 /*IN*/ PUSHORT Buffer, |
|
1472 /*IN*/ ULONG Count); |
|
1473 |
|
1474 VPAPI |
|
1475 VOID |
|
1476 DDKAPI |
|
1477 VideoPortWritePortUchar( |
|
1478 /*IN*/ PUCHAR Port, |
|
1479 /*IN*/ UCHAR Value); |
|
1480 |
|
1481 VPAPI |
|
1482 VOID |
|
1483 DDKAPI |
|
1484 VideoPortWritePortUlong( |
|
1485 /*IN*/ PULONG Port, |
|
1486 /*IN*/ ULONG Value); |
|
1487 |
|
1488 VPAPI |
|
1489 VOID |
|
1490 DDKAPI |
|
1491 VideoPortWritePortUshort( |
|
1492 /*IN*/ PUSHORT Port, |
|
1493 /*IN*/ USHORT Value); |
|
1494 |
|
1495 VPAPI |
|
1496 VOID |
|
1497 DDKAPI |
|
1498 VideoPortWriteRegisterBufferUchar( |
|
1499 /*IN*/ PUCHAR Register, |
|
1500 /*IN*/ PUCHAR Buffer, |
|
1501 /*IN*/ ULONG Count); |
|
1502 |
|
1503 VPAPI |
|
1504 VOID |
|
1505 DDKAPI |
|
1506 VideoPortWriteRegisterBufferUlong( |
|
1507 /*IN*/ PULONG Register, |
|
1508 /*IN*/ PULONG Buffer, |
|
1509 /*IN*/ ULONG Count); |
|
1510 |
|
1511 VPAPI |
|
1512 VOID |
|
1513 DDKAPI |
|
1514 VideoPortWriteRegisterBufferUshort( |
|
1515 /*IN*/ PUSHORT Register, |
|
1516 /*IN*/ PUSHORT Buffer, |
|
1517 /*IN*/ ULONG Count); |
|
1518 |
|
1519 VPAPI |
|
1520 VOID |
|
1521 DDKAPI |
|
1522 VideoPortWriteRegisterUchar( |
|
1523 /*IN*/ PUCHAR Register, |
|
1524 /*IN*/ UCHAR Value); |
|
1525 |
|
1526 VPAPI |
|
1527 VOID |
|
1528 DDKAPI |
|
1529 VideoPortWriteRegisterUlong( |
|
1530 /*IN*/ PULONG Register, |
|
1531 /*IN*/ ULONG Value); |
|
1532 |
|
1533 VPAPI |
|
1534 VOID |
|
1535 DDKAPI |
|
1536 VideoPortWriteRegisterUshort( |
|
1537 /*IN*/ PUSHORT Register, |
|
1538 /*IN*/ USHORT Value); |
|
1539 |
|
1540 VPAPI |
|
1541 VOID |
|
1542 DDKAPI |
|
1543 VideoPortZeroDeviceMemory( |
|
1544 /*IN*/ PVOID Destination, |
|
1545 /*IN*/ ULONG Length); |
|
1546 |
|
1547 VPAPI |
|
1548 VOID |
|
1549 DDKAPI |
|
1550 VideoPortZeroMemory( |
|
1551 /*IN*/ PVOID Destination, |
|
1552 /*2IN*/ ULONG Length); |
|
1553 |
|
1554 #ifdef DBG |
|
1555 #define VideoDebugPrint(x) VideoPortDebugPrint x |
|
1556 #else |
|
1557 #define VideoDebugPrint(x) |
|
1558 #endif |
|
1559 |
|
1560 #ifdef __cplusplus |
|
1561 } |
|
1562 #endif |
|
1563 |
|
1564 #endif /* defined __WINDDI_H */ |
|
1565 |
|
1566 #endif /* __VIDEO_H */ |