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 */
|
---|