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