Author: akhaldi
Date: Wed Apr 21 03:33:08 2010
New Revision: 46973
URL:
http://svn.reactos.org/svn/reactos?rev=46973&view=rev
Log:
[DDK]
- miniport.h : Remove VIDEO_ACCESS_RANGE definition.
- ntagp.h : Introduce pragma once, apply a consistent formatting and add some missing
definitions.
- video.h : Introduce pragma once, apply a consistent formatting, remove _WINDDI_ guard,
group related definitions and add some missing ones.
- videoagp.h : Introduce pragma once and apply a consistent formatting.
Modified:
branches/header-work/include/ddk/miniport.h
branches/header-work/include/ddk/ntagp.h
branches/header-work/include/ddk/video.h
branches/header-work/include/ddk/videoagp.h
Modified: branches/header-work/include/ddk/miniport.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/minipor…
==============================================================================
--- branches/header-work/include/ddk/miniport.h [iso-8859-1] (original)
+++ branches/header-work/include/ddk/miniport.h [iso-8859-1] Wed Apr 21 03:33:08 2010
@@ -45,18 +45,6 @@
UCHAR StringSupport;
PVOID Routine;
} EMULATOR_ACCESS_ENTRY, *PEMULATOR_ACCESS_ENTRY;
-
-#ifndef VIDEO_ACCESS_RANGE_DEFINED /* also in video.h */
-#define VIDEO_ACCESS_RANGE_DEFINED
-typedef struct _VIDEO_ACCESS_RANGE {
- PHYSICAL_ADDRESS RangeStart;
- ULONG RangeLength;
- UCHAR RangeInIoSpace;
- UCHAR RangeVisible;
- UCHAR RangeShareable;
- UCHAR RangePassive;
-} VIDEO_ACCESS_RANGE, *PVIDEO_ACCESS_RANGE;
-#endif
typedef VOID
(NTAPI *PBANKED_SECTION_ROUTINE)(
Modified: branches/header-work/include/ddk/ntagp.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/ntagp.h…
==============================================================================
--- branches/header-work/include/ddk/ntagp.h [iso-8859-1] (original)
+++ branches/header-work/include/ddk/ntagp.h [iso-8859-1] Wed Apr 21 03:33:08 2010
@@ -20,86 +20,189 @@
*
*/
-#ifndef __NTAGP_H
-#define __NTAGP_H
-
-#include "video.h"
+#pragma once
#ifdef __cplusplus
extern "C" {
#endif
-#define AGP_BUS_INTERFACE_V1 1L
-#define AGP_BUS_INTERFACE_V2 2L
+DEFINE_GUID(GUID_AGP_BUS_INTERFACE_STANDARD, 0x2ef74803, 0xd8d3, 0x11d1, 0x9c, 0xaa,
0x00, 0xc0, 0xf0, 0x16, 0x56, 0x36);
+
+#define AGP_BUS_INTERFACE_V1 1
+#define AGP_BUS_INTERFACE_V2 2
+#define AGP_BUS_INTERFACE_V3 3
+#define AGP_BUS_INTERFACE_V4 4
+#define AGP_BUS_INTERFACE_V5 5
/* Indicates wether the GART supports mapping of physical memory for the CPU */
-#define AGP_CAPABILITIES_MAP_PHYSICAL 0x00000001L
+#define AGP_CAPABILITIES_MAP_PHYSICAL 0x00000001
+#define AGP_CAPABILITIES_CACHE_COHERENT 0x00000002
+#define AGP_CAPABILITIES_REQUIRES_GPU_FLUSH 0x00000004
+
+#define AGP_SET_RATE_DISABLE_SBA 0x00010000
+#define AGP_SET_RATE_DISABLE_FW 0x00020000
+
+#define AGP_GUARD_PAGE_CHECK_FIRST_ULONG 0x00000001
+#define AGP_GUARD_PAGE_CHECK_USE_SAME_OFFSET 0x00000002
+#define AGP_GUARD_PAGE_CHECK_DO_NOT_BUGCHECK 0x00000004
+
+#define AGP_BUS_INTERFACE_V1_SIZE (FIELD_OFFSET(AGP_BUS_INTERFACE_STANDARD,SetRate))
+#define AGP_BUS_INTERFACE_V2_SIZE (FIELD_OFFSET(AGP_BUS_INTERFACE_STANDARD, AgpSize))
+#define AGP_BUS_INTERFACE_V3_SIZE (FIELD_OFFSET(AGP_BUS_INTERFACE_STANDARD,
FlushChipsetCaches))
+#define AGP_BUS_INTERFACE_V4_SIZE (FIELD_OFFSET(AGP_BUS_INTERFACE_STANDARD,
MapMemoryEx))
+
+typedef NTSTATUS
+(NTAPI *PAGP_BUS_SET_RATE)(
+ IN PVOID AgpContext,
+ IN ULONG AgpRate);
+
+typedef NTSTATUS
+(NTAPI *PAGP_BUS_RESERVE_MEMORY)(
+ IN PVOID AgpContext,
+ IN ULONG NumberOfPages,
+ IN MEMORY_CACHING_TYPE MemoryType,
+ OUT PVOID *MapHandle,
+ OUT PHYSICAL_ADDRESS *PhysicalAddress OPTIONAL);
+
+typedef NTSTATUS
+(NTAPI *PAGP_BUS_RELEASE_MEMORY)(
+ IN PVOID AgpContext,
+ IN PVOID MapHandle);
typedef NTSTATUS
(NTAPI *PAGP_BUS_COMMIT_MEMORY)(
- IN PVOID AgpContext,
- IN PVOID MapHandle,
- IN ULONG NumberOfPages,
- IN ULONG OffsetInPages,
- IN OUT PMDL Mdl OPTIONAL,
- OUT PHYSICAL_ADDRESS *MemoryBase);
+ IN PVOID AgpContext,
+ IN PVOID MapHandle,
+ IN ULONG NumberOfPages,
+ IN ULONG OffsetInPages,
+ IN OUT PMDL Mdl OPTIONAL,
+ OUT PHYSICAL_ADDRESS *MemoryBase);
typedef NTSTATUS
(NTAPI *PAGP_BUS_FREE_MEMORY)(
- IN PVOID AgpContext,
- IN PVOID MapHandle,
- IN ULONG NumberOfPages,
- IN ULONG OffsetInPages);
-
-typedef NTSTATUS
-(NTAPI *PAGP_BUS_RELEASE_MEMORY)(
- IN PVOID AgpContext,
- IN PVOID MapHandle);
-
-typedef NTSTATUS
-(NTAPI *PAGP_BUS_RESERVE_MEMORY)(
- IN PVOID AgpContext,
- IN ULONG NumberOfPages,
- IN MEMORY_CACHING_TYPE MemoryType,
- OUT PVOID *MapHandle,
- OUT PHYSICAL_ADDRESS *PhysicalAddress OPTIONAL);
-
-typedef NTSTATUS
-(NTAPI *PAGP_BUS_SET_RATE)(
- IN PVOID AgpContext,
- IN ULONG AgpRate);
+ IN PVOID AgpContext,
+ IN PVOID MapHandle,
+ IN ULONG NumberOfPages,
+ IN ULONG OffsetInPages);
typedef NTSTATUS
(NTAPI *PAGP_GET_MAPPED_PAGES)(
- IN PVOID AgpContext,
- IN PVOID MapHandle,
- IN ULONG NumberOfPages,
- IN ULONG OffsetInPages,
- OUT PMDL Mdl);
+ IN PVOID AgpContext,
+ IN PVOID MapHandle,
+ IN ULONG NumberOfPages,
+ IN ULONG OffsetInPages,
+ OUT PMDL Mdl);
+
+typedef NTSTATUS
+(NTAPI *PAGP_MAP_MEMORY)(
+ IN PVOID AgpContext,
+ IN PVOID MapHandle,
+ IN ULONG NumberOfPages,
+ IN ULONG OffsetInPages,
+ IN PMDL Mdl,
+ OUT PHYSICAL_ADDRESS *MemoryBase);
+
+typedef NTSTATUS
+(NTAPI *PAGP_UNMAP_MEMORY)(
+ IN PVOID AgpContext,
+ IN PVOID MapHandle,
+ IN ULONG NumberOfPages,
+ IN ULONG OffsetInPages,
+ IN PMDL Mdl);
+
+typedef NTSTATUS
+(NTAPI *PAGP_FLUSH_CHIPSET_CACHES)(
+ IN PVOID AgpContext);
+
+typedef NTSTATUS
+(NTAPI *PAGP_CHECK_INTEGRITY)(
+ IN PVOID AgpContext);
+
+typedef NTSTATUS
+(NTAPI *PAGP_MAP_MEMORY_EX)(
+ IN PVOID AgpContext,
+ IN PVOID MapHandle,
+ IN ULONG NumberOfPages,
+ IN ULONG OffsetInPages,
+ IN PMDL Mdl,
+ IN MEMORY_CACHING_TYPE *CacheTypeOverride OPTIONAL,
+ OUT PHYSICAL_ADDRESS *MemoryBase);
+
+typedef NTSTATUS
+(NTAPI *PAGP_UNMAP_MEMORY_EX)(
+ IN PVOID AgpContext,
+ IN PVOID MapHandle,
+ IN ULONG NumberOfPages,
+ IN ULONG OffsetInPages,
+ IN PMDL Mdl);
+
+typedef NTSTATUS
+(NTAPI *PAGP_FLUSH_GART_TLB)(
+ IN PVOID AgpContext);
+
+typedef NTSTATUS
+(NTAPI *PAGP_CHECK_GUARD_PAGE)(
+ IN PVOID AgpContext,
+ IN ULONG Flags,
+ IN ULONG ULongsToCheck);
+
+typedef struct _AGP_INFO_COMMON {
+ PCI_AGP_CAPABILITY MasterCap;
+ PCI_AGP_CAPABILITY TargetCap;
+ USHORT DeviceId;
+ USHORT VendorId;
+ USHORT SubVendorId;
+ USHORT SubSystemId;
+ UCHAR HwRevisionId;
+ ULONG VerifierFlags;
+ BOOLEAN GuardPageCorruption;
+} AGP_INFO_COMMON, *PAGP_INFO_COMMON;
+
+typedef struct _AGP_INFO_DRIVER {
+ ULONG AGPReg1;
+ ULONG AGPReg2;
+ PHYSICAL_ADDRESS ApertureStart;
+ PHYSICAL_ADDRESS GartTranslationTable;
+ ULONG ApertureLength;
+} AGP_INFO_DRIVER, *PAGP_INFO_DRIVER;
+
+typedef struct _AGP_INFO {
+ AGP_INFO_COMMON CommonInfo;
+ AGP_INFO_DRIVER DriverInfo;
+} AGP_INFO, *PAGP_INFO;
+
+typedef VOID
+(NTAPI *PAGP_GET_INFO)(
+ IN PVOID AgpContext,
+ OUT PAGP_INFO AgpInfo);
typedef struct _AGP_BUS_INTERFACE_STANDARD {
- USHORT Size;
- USHORT Version;
- PVOID AgpContext;
- PINTERFACE_REFERENCE InterfaceReference;
- PINTERFACE_DEREFERENCE InterfaceDereference;
-
- ULONG Capabilities;
- PAGP_BUS_RESERVE_MEMORY ReserveMemory;
- PAGP_BUS_RELEASE_MEMORY ReleaseMemory;
- PAGP_BUS_COMMIT_MEMORY CommitMemory;
- PAGP_BUS_FREE_MEMORY FreeMemory;
- PAGP_GET_MAPPED_PAGES GetMappedPages;
- PAGP_BUS_SET_RATE SetRate;
+ USHORT Size;
+ USHORT Version;
+ PVOID AgpContext;
+ PINTERFACE_REFERENCE InterfaceReference;
+ PINTERFACE_DEREFERENCE InterfaceDereference;
+ ULONG Capabilities;
+ PAGP_BUS_RESERVE_MEMORY ReserveMemory;
+ PAGP_BUS_RELEASE_MEMORY ReleaseMemory;
+ PAGP_BUS_COMMIT_MEMORY CommitMemory;
+ PAGP_BUS_FREE_MEMORY FreeMemory;
+ PAGP_GET_MAPPED_PAGES GetMappedPages;
+ PAGP_BUS_SET_RATE SetRate;
+ SIZE_T AgpSize;
+ PHYSICAL_ADDRESS AgpBase;
+ PHYSICAL_ADDRESS MaxPhysicalAddress;
+ PAGP_MAP_MEMORY MapMemory;
+ PAGP_UNMAP_MEMORY UnMapMemory;
+ PAGP_FLUSH_CHIPSET_CACHES FlushChipsetCaches;
+ PAGP_CHECK_INTEGRITY CheckIntegrity;
+ PAGP_MAP_MEMORY_EX MapMemoryEx;
+ PAGP_UNMAP_MEMORY_EX UnMapMemoryEx;
+ PAGP_FLUSH_GART_TLB FlushGartTLB;
+ PAGP_CHECK_GUARD_PAGE CheckGuardPage;
+ PAGP_GET_INFO GetAgpInfo;
} AGP_BUS_INTERFACE_STANDARD, *PAGP_BUS_INTERFACE_STANDARD;
-
-#define AGP_BUS_INTERFACE_V2_SIZE sizeof(AGP_BUS_INTERFACE_STANDARD)
-#define AGP_BUS_INTERFACE_V1_SIZE \
- (AGP_BUS_INTERFACE_V2_SIZE - sizeof(PAGP_BUS_SET_RATE))
#ifdef __cplusplus
}
#endif
-
-#endif /* __NTAGP_H */
-
Modified: branches/header-work/include/ddk/video.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/video.h…
==============================================================================
--- branches/header-work/include/ddk/video.h [iso-8859-1] (original)
+++ branches/header-work/include/ddk/video.h [iso-8859-1] Wed Apr 21 03:33:08 2010
@@ -20,34 +20,87 @@
*
*/
-#ifndef __VIDEO_H__
-#define __VIDEO_H__
-
-#ifdef _WINDDI_
-#error winddi.h cannot be included with video.h
-#else
-
-#if defined(_VIDEOPORT_)
- #define VPAPI
-#else
- #define VPAPI DECLSPEC_IMPORT
-#endif
-#define VIDEOPORT_API VPAPI
-
+#pragma once
+
+#include "ntddvdeo.h"
#include "videoagp.h"
-#include "ntddvdeo.h"
#ifdef __cplusplus
extern "C" {
#endif
-typedef LONG VP_STATUS;
-typedef VP_STATUS *PVP_STATUS;
-typedef struct __DMA_PARAMETERS * PDMA;
-typedef struct _VIDEO_PORT_SPIN_LOCK *PSPIN_LOCK;
-typedef struct __VP_DMA_ADAPTER *PVP_DMA_ADAPTER;
-
-#define DISPLAY_ADAPTER_HW_ID 0xFFFFFFFF
+#ifndef _NTOSDEF_
+
+#ifdef PAGED_CODE
+#undef PAGED_CODE
+#endif
+
+#if defined(_MSC_VER)
+#define ALLOC_PRAGMA 1
+#endif
+
+#if defined(_VIDEOPORT_)
+#define VPAPI
+#else
+#define VPAPI DECLSPEC_IMPORT
+#endif
+
+#if DBG
+#define PAGED_CODE() \
+ if (VideoPortGetCurrentIrql() > 1 /* APC_LEVEL */) { \
+ VideoPortDebugPrint(Error, "Video: Pageable code called at IRQL %d\n",
VideoPortGetCurrentIrql() ); \
+ ASSERT(FALSE); \
+ }
+#else
+#define PAGED_CODE()
+#endif /* DBG */
+
+ULONG
+NTAPI
+DriverEntry(
+ PVOID Context1,
+ PVOID Context2);
+
+#else
+
+#define VPAPI
+
+#endif /* _NTOSDEF_ */
+
+#if DBG
+#define VideoDebugPrint(x) VideoPortDebugPrint x
+#else
+#define VideoDebugPrint(x)
+#endif
+
+#define GET_VIDEO_PHYSICAL_ADDRESS(scatterList, \
+ VirtualAddress, \
+ InputBuffer, \
+ pLength, \
+ Address) \
+ do { \
+ ULONG_PTR byteOffset; \
+ \
+ byteOffset = (PCHAR) VirtualAddress - (PCHAR)InputBuffer; \
+ while (byteOffset >= scatterList->Length) { \
+ byteOffset -= scatterList->Length; \
+ scatterList++; \
+ } \
+ *pLength = scatterList->Length - byteOffset; \
+ Address = (ULONG_PTR) (scatterList->PhysicalAddress + byteOffset); \
+ } while (0)
+
+#define GET_VIDEO_SCATTERGATHER(ppDma) (**(PVRB_SG **)ppDma)
+
+/* VIDEO_ACCESS_RANGE.RangePassive */
+#define VIDEO_RANGE_PASSIVE_DECODE 1
+#define VIDEO_RANGE_10_BIT_DECODE 2
+
+#define SIZE_OF_NT4_VIDEO_PORT_CONFIG_INFO FIELD_OFFSET(VIDEO_PORT_CONFIG_INFO, Master)
+#define SIZE_OF_WXP_VIDEO_PORT_CONFIG_INFO sizeof(VIDEO_PORT_CONFIG_INFO)
+
+#define SET_USER_EVENT 0x01
+#define SET_DISPLAY_EVENT 0x02
#define EVENT_TYPE_MASK 1
#define SYNCHRONIZATION_EVENT 0
@@ -57,48 +110,444 @@
#define INITIAL_EVENT_NOT_SIGNALED 0
#define INITIAL_EVENT_SIGNALED 2
-typedef enum VIDEO_DEBUG_LEVEL {
- Error = 0,
- Warn,
- Trace,
- Info
-} VIDEO_DEBUG_LEVEL, *PVIDEO_DEBUG_LEVEL;
-
-typedef enum {
+#define DISPLAY_ADAPTER_HW_ID 0xFFFFFFFF
+
+#define VIDEO_INVALID_CHILD_ID 0xFFFFFFFF
+
+#define SIZE_OF_NT4_VIDEO_HW_INITIALIZATION_DATA
FIELD_OFFSET(VIDEO_HW_INITIALIZATION_DATA, HwStartDma)
+#define SIZE_OF_W2K_VIDEO_HW_INITIALIZATION_DATA
FIELD_OFFSET(VIDEO_HW_INITIALIZATION_DATA, Reserved)
+#define SIZE_OF_WXP_VIDEO_HW_INITIALIZATION_DATA
(SIZE_OF_W2K_VIDEO_HW_INITIALIZATION_DATA + sizeof(ULONG))
+
+#define VIDEO_PORT_AGP_INTERFACE_VERSION_1 1
+#define VIDEO_PORT_AGP_INTERFACE_VERSION_2 2
+#define VIDEO_PORT_I2C_INTERFACE_VERSION_1 1
+#define VIDEO_PORT_I2C_INTERFACE_VERSION_2 2
+#define VIDEO_PORT_INT10_INTERFACE_VERSION_1 1
+#define VIDEO_PORT_WCMEMORYPROTECTION_INTERFACE_VERSION_1 1
+#define VIDEO_PORT_DEBUG_REPORT_INTERFACE_VERSION_1 1
+
+/* Flags for VideoPortGetDeviceBase and VideoPortMapMemory */
+#define VIDEO_MEMORY_SPACE_MEMORY 0x00
+#define VIDEO_MEMORY_SPACE_IO 0x01
+#define VIDEO_MEMORY_SPACE_USER_MODE 0x02
+#define VIDEO_MEMORY_SPACE_DENSE 0x04
+#define VIDEO_MEMORY_SPACE_P6CACHE 0x08
+
+/* PVIDEO_HW_GET_CHILD_DESCRIPTOR return values */
+#define VIDEO_ENUM_MORE_DEVICES ERROR_CONTINUE
+#define VIDEO_ENUM_NO_MORE_DEVICES ERROR_NO_MORE_DEVICES
+#define VIDEO_ENUM_INVALID_DEVICE ERROR_INVALID_NAME
+
+#define DEVICE_VGA_ENABLED 1
+
+/* VideoPortCheckForDeviceExistence.Flags constants */
+#define CDE_USE_SUBSYSTEM_IDS 0x00000001
+#define CDE_USE_REVISION 0x00000002
+
+#define BUGCHECK_DATA_SIZE_RESERVED 48
+
+#define VIDEO_DEBUG_REPORT_MAX_SIZE 0x8000
+
+typedef LONG VP_STATUS, *PVP_STATUS;
+typedef ULONG DMA_EVENT_FLAGS;
+
+typedef struct _VIDEO_PORT_SPIN_LOCK *PSPIN_LOCK;
+typedef struct _VIDEO_DEBUG_REPORT *PVIDEO_DEBUG_REPORT;
+typedef struct __DMA_PARAMETERS *PDMA;
+typedef struct __VP_DMA_ADAPTER *PVP_DMA_ADAPTER;
+
+typedef PVOID
+(NTAPI *PVIDEO_PORT_GET_PROC_ADDRESS)(
+ IN PVOID HwDeviceExtension,
+ IN PUCHAR FunctionName);
+
+typedef struct _VIDEO_PORT_CONFIG_INFO {
+ ULONG Length;
+ ULONG SystemIoBusNumber;
+ INTERFACE_TYPE AdapterInterfaceType;
+ ULONG BusInterruptLevel;
+ ULONG BusInterruptVector;
+ KINTERRUPT_MODE InterruptMode;
+ ULONG NumEmulatorAccessEntries;
+ PEMULATOR_ACCESS_ENTRY EmulatorAccessEntries;
+ ULONG_PTR EmulatorAccessEntriesContext;
+ PHYSICAL_ADDRESS VdmPhysicalVideoMemoryAddress;
+ ULONG VdmPhysicalVideoMemoryLength;
+ ULONG HardwareStateSize;
+ ULONG DmaChannel;
+ ULONG DmaPort;
+ UCHAR DmaShareable;
+ UCHAR InterruptShareable;
+ BOOLEAN Master;
+ DMA_WIDTH DmaWidth;
+ DMA_SPEED DmaSpeed;
+ BOOLEAN bMapBuffers;
+ BOOLEAN NeedPhysicalAddresses;
+ BOOLEAN DemandMode;
+ ULONG MaximumTransferLength;
+ ULONG NumberOfPhysicalBreaks;
+ BOOLEAN ScatterGather;
+ ULONG MaximumScatterGatherChunkSize;
+ PVIDEO_PORT_GET_PROC_ADDRESS VideoPortGetProcAddress;
+ PWSTR DriverRegistryPath;
+ ULONGLONG SystemMemorySize;
+} VIDEO_PORT_CONFIG_INFO, *PVIDEO_PORT_CONFIG_INFO;
+
+typedef VP_STATUS
+(NTAPI *PVIDEO_HW_FIND_ADAPTER)(
+ IN PVOID HwDeviceExtension,
+ IN PVOID HwContext,
+ IN PWSTR ArgumentString,
+ IN OUT PVIDEO_PORT_CONFIG_INFO ConfigInfo,
+ OUT PUCHAR Again);
+
+typedef BOOLEAN
+(NTAPI *PVIDEO_HW_INITIALIZE)(
+ IN PVOID HwDeviceExtension);
+
+typedef BOOLEAN
+(NTAPI *PVIDEO_HW_INTERRUPT)(
+ IN PVOID HwDeviceExtension);
+
+typedef struct _VIDEO_ACCESS_RANGE {
+ PHYSICAL_ADDRESS RangeStart;
+ ULONG RangeLength;
+ UCHAR RangeInIoSpace;
+ UCHAR RangeVisible;
+ UCHAR RangeShareable;
+ UCHAR RangePassive;
+} VIDEO_ACCESS_RANGE, *PVIDEO_ACCESS_RANGE;
+
+typedef VOID
+(NTAPI *PVIDEO_HW_LEGACYRESOURCES)(
+ IN ULONG VendorId,
+ IN ULONG DeviceId,
+ IN OUT PVIDEO_ACCESS_RANGE *LegacyResourceList,
+ IN OUT PULONG LegacyResourceCount);
+
+typedef enum _HW_DMA_RETURN {
+ DmaAsyncReturn,
+ DmaSyncReturn
+} HW_DMA_RETURN, *PHW_DMA_RETURN;
+
+typedef HW_DMA_RETURN
+(NTAPI *PVIDEO_HW_START_DMA)(
+ PVOID HwDeviceExtension,
+ PDMA pDma);
+
+typedef struct _VP_SCATTER_GATHER_ELEMENT {
+ PHYSICAL_ADDRESS Address;
+ ULONG Length;
+ ULONG_PTR Reserved;
+} VP_SCATTER_GATHER_ELEMENT, *PVP_SCATTER_GATHER_ELEMENT;
+
+typedef struct _VP_SCATTER_GATHER_LIST {
+ ULONG NumberOfElements;
+ ULONG_PTR Reserved;
+ VP_SCATTER_GATHER_ELEMENT Elements[0];
+} VP_SCATTER_GATHER_LIST, *PVP_SCATTER_GATHER_LIST;
+
+typedef VOID
+(NTAPI *PEXECUTE_DMA)(
+ IN PVOID HwDeviceExtension,
+ IN PVP_DMA_ADAPTER VpDmaAdapter,
+ IN PVP_SCATTER_GATHER_LIST SGList,
+ IN PVOID Context);
+
+/* PVIDEO_HW_GET_CHILD_DESCRIPTOR.ChildEnumInfo constants */
+typedef struct _VIDEO_CHILD_ENUM_INFO {
+ ULONG Size;
+ ULONG ChildDescriptorSize;
+ ULONG ChildIndex;
+ ULONG ACPIHwId;
+ PVOID ChildHwDeviceExtension;
+} VIDEO_CHILD_ENUM_INFO, *PVIDEO_CHILD_ENUM_INFO;
+
+/* PVIDEO_HW_GET_CHILD_DESCRIPTOR.VideoChildType constants */
+typedef enum _VIDEO_CHILD_TYPE {
+ Monitor = 1,
+ NonPrimaryChip,
+ VideoChip,
+ Other
+} VIDEO_CHILD_TYPE, *PVIDEO_CHILD_TYPE;
+
+typedef VP_STATUS
+(NTAPI *PVIDEO_HW_GET_CHILD_DESCRIPTOR)(
+ IN PVOID HwDeviceExtension,
+ IN PVIDEO_CHILD_ENUM_INFO ChildEnumInfo,
+ OUT PVIDEO_CHILD_TYPE VideoChildType,
+ OUT PUCHAR pChildDescriptor,
+ OUT PULONG UId,
+ OUT PULONG pUnused);
+
+typedef VP_STATUS
+(NTAPI *PVIDEO_HW_POWER_SET)(
+ IN PVOID HwDeviceExtension,
+ IN ULONG HwId,
+ IN PVIDEO_POWER_MANAGEMENT VideoPowerControl);
+
+typedef VP_STATUS
+(NTAPI *PVIDEO_HW_POWER_GET)(
+ IN PVOID HwDeviceExtension,
+ IN ULONG HwId,
+ IN OUT PVIDEO_POWER_MANAGEMENT VideoPowerControl);
+
+typedef struct _QUERY_INTERFACE {
+ CONST GUID *InterfaceType;
+ USHORT Size;
+ USHORT Version;
+ PINTERFACE Interface;
+ PVOID InterfaceSpecificData;
+} QUERY_INTERFACE, *PQUERY_INTERFACE;
+
+typedef VP_STATUS
+(NTAPI *PVIDEO_HW_QUERY_INTERFACE)(
+ IN PVOID HwDeviceExtension,
+ IN OUT PQUERY_INTERFACE QueryInterface);
+
+typedef VP_STATUS
+(NTAPI *PVIDEO_HW_CHILD_CALLBACK)(
+ PVOID HwDeviceExtension,
+ PVOID ChildDeviceExtension);
+
+typedef BOOLEAN
+(NTAPI *PVIDEO_HW_RESET_HW)(
+ IN PVOID HwDeviceExtension,
+ IN ULONG Columns,
+ IN ULONG Rows);
+
+typedef struct _STATUS_BLOCK {
+ _ANONYMOUS_UNION union {
+ VP_STATUS Status;
+ PVOID Pointer;
+ } DUMMYUNIONNAME;
+ ULONG_PTR Information;
+} STATUS_BLOCK, *PSTATUS_BLOCK;
+
+typedef struct _VIDEO_REQUEST_PACKET {
+ ULONG IoControlCode;
+ PSTATUS_BLOCK StatusBlock;
+ PVOID InputBuffer;
+ ULONG InputBufferLength;
+ PVOID OutputBuffer;
+ ULONG OutputBufferLength;
+} VIDEO_REQUEST_PACKET, *PVIDEO_REQUEST_PACKET;
+
+typedef BOOLEAN
+(NTAPI *PVIDEO_HW_START_IO)(
+ IN PVOID HwDeviceExtension,
+ IN PVIDEO_REQUEST_PACKET RequestPacket);
+
+typedef VOID
+(NTAPI *PVIDEO_HW_TIMER)(
+ IN PVOID HwDeviceExtension);
+
+typedef VOID
+(NTAPI *PVIDEO_WRITE_CLOCK_LINE)(
+ PVOID HwDeviceExtension,
+ UCHAR Data);
+
+typedef VOID
+(NTAPI *PVIDEO_WRITE_DATA_LINE)(
+ PVOID HwDeviceExtension,
+ UCHAR Data);
+
+typedef BOOLEAN
+(NTAPI *PVIDEO_READ_CLOCK_LINE)(
+ PVOID HwDeviceExtension);
+
+typedef BOOLEAN
+(NTAPI *PVIDEO_READ_DATA_LINE)(
+ PVOID HwDeviceExtension);
+
+typedef VOID
+(NTAPI *PVIDEO_WAIT_VSYNC_ACTIVE)(
+ PVOID HwDeviceExtension);
+
+typedef struct _I2C_CALLBACKS {
+ IN PVIDEO_WRITE_CLOCK_LINE WriteClockLine;
+ IN PVIDEO_WRITE_DATA_LINE WriteDataLine;
+ IN PVIDEO_READ_CLOCK_LINE ReadClockLine;
+ IN PVIDEO_READ_DATA_LINE ReadDataLine;
+} I2C_CALLBACKS, *PI2C_CALLBACKS;
+
+typedef BOOLEAN
+(NTAPI *PI2C_START)(
+ IN PVOID HwDeviceExtension,
+ IN PI2C_CALLBACKS I2CCallbacks);
+
+typedef BOOLEAN
+(NTAPI *PI2C_STOP)(
+ IN PVOID HwDeviceExtension,
+ IN PI2C_CALLBACKS I2CCallbacks);
+
+typedef BOOLEAN
+(NTAPI *PI2C_WRITE)(
+ IN PVOID HwDeviceExtension,
+ IN PI2C_CALLBACKS I2CCallbacks,
+ IN PUCHAR Buffer,
+ IN ULONG Length);
+
+typedef BOOLEAN
+(NTAPI *PI2C_READ)(
+ IN PVOID HwDeviceExtension,
+ IN PI2C_CALLBACKS I2CCallbacks,
+ OUT PUCHAR Buffer,
+ IN ULONG Length);
+
+typedef struct _VIDEO_I2C_CONTROL {
+ IN PVIDEO_WRITE_CLOCK_LINE WriteClockLine;
+ IN PVIDEO_WRITE_DATA_LINE WriteDataLine;
+ IN PVIDEO_READ_CLOCK_LINE ReadClockLine;
+ IN PVIDEO_READ_DATA_LINE ReadDataLine;
+ IN ULONG I2CDelay;
+} VIDEO_I2C_CONTROL, *PVIDEO_I2C_CONTROL;
+
+typedef BOOLEAN
+(NTAPI *PI2C_START_2)(
+ IN PVOID HwDeviceExtension,
+ IN PVIDEO_I2C_CONTROL I2CControl);
+
+typedef BOOLEAN
+(NTAPI *PI2C_STOP_2)(
+ IN PVOID HwDeviceExtension,
+ IN PVIDEO_I2C_CONTROL I2CControl);
+
+typedef BOOLEAN
+(NTAPI *PI2C_WRITE_2)(
+ IN PVOID HwDeviceExtension,
+ IN PVIDEO_I2C_CONTROL I2CControl,
+ IN PUCHAR Buffer,
+ IN ULONG Length);
+
+typedef BOOLEAN
+(NTAPI *PI2C_READ_2)(
+ IN PVOID HwDeviceExtension,
+ IN PVIDEO_I2C_CONTROL I2CControl,
+ OUT PUCHAR Buffer,
+ IN ULONG Length,
+ IN BOOLEAN EndOfRead);
+
+typedef struct _INT10_BIOS_ARGUMENTS {
+ ULONG Eax;
+ ULONG Ebx;
+ ULONG Ecx;
+ ULONG Edx;
+ ULONG Esi;
+ ULONG Edi;
+ ULONG Ebp;
+ USHORT SegDs;
+ USHORT SegEs;
+} INT10_BIOS_ARGUMENTS, *PINT10_BIOS_ARGUMENTS;
+
+typedef VP_STATUS
+(NTAPI *PINT10_CALL_BIOS)(
+ IN PVOID Context,
+ IN OUT PINT10_BIOS_ARGUMENTS BiosArguments);
+
+typedef VP_STATUS
+(NTAPI *PINT10_ALLOCATE_BUFFER)(
+ IN PVOID Context,
+ OUT PUSHORT Seg,
+ OUT PUSHORT Off,
+ IN OUT PULONG Length);
+
+typedef VP_STATUS
+(NTAPI *PINT10_FREE_BUFFER)(
+ IN PVOID Context,
+ IN USHORT Seg,
+ IN USHORT Off);
+
+typedef VP_STATUS
+(NTAPI *PINT10_READ_MEMORY)(
+ IN PVOID Context,
+ IN USHORT Seg,
+ IN USHORT Off,
+ OUT PVOID Buffer,
+ IN ULONG Length);
+
+typedef VP_STATUS
+(NTAPI *PINT10_WRITE_MEMORY)(
+ IN PVOID Context,
+ IN USHORT Seg,
+ IN USHORT Off,
+ IN PVOID Buffer,
+ IN ULONG Length);
+
+typedef VP_STATUS
+(NTAPI *PROTECT_WC_MEMORY)(
+ IN PVOID Context,
+ IN PVOID HwDeviceExtension);
+
+typedef VP_STATUS
+(NTAPI *RESTORE_WC_MEMORY)(
+ IN PVOID Context,
+ IN PVOID HwDeviceExtension);
+
+typedef enum _VIDEO_DEVICE_DATA_TYPE {
+ VpMachineData = 0,
+ VpCmosData,
+ VpBusData,
+ VpControllerData,
+ VpMonitorData
+} VIDEO_DEVICE_DATA_TYPE, *PVIDEO_DEVICE_DATA_TYPE;
+
+typedef VP_STATUS
+(NTAPI *PMINIPORT_QUERY_DEVICE_ROUTINE)(
+ IN PVOID HwDeviceExtension,
+ IN PVOID Context,
+ IN VIDEO_DEVICE_DATA_TYPE DeviceDataType,
+ IN PVOID Identifier,
+ IN ULONG IdentifierLength,
+ IN PVOID ConfigurationData,
+ IN ULONG ConfigurationDataLength,
+ IN OUT PVOID ComponentInformation,
+ IN ULONG ComponentInformationLength);
+
+typedef VP_STATUS
+(NTAPI *PMINIPORT_GET_REGISTRY_ROUTINE)(
+ IN PVOID HwDeviceExtension,
+ IN PVOID Context,
+ IN OUT PWSTR ValueName,
+ IN OUT PVOID ValueData,
+ IN ULONG ValueLength);
+
+typedef VOID
+(NTAPI *PMINIPORT_DPC_ROUTINE)(
+ IN PVOID HwDeviceExtension,
+ IN PVOID Context);
+
+typedef BOOLEAN
+(NTAPI *PMINIPORT_SYNCHRONIZE_ROUTINE)(
+ IN PVOID Context);
+
+typedef VOID
+(NTAPI *PVIDEO_BUGCHECK_CALLBACK)(
+ IN PVOID HwDeviceExtension,
+ IN ULONG BugcheckCode,
+ IN PUCHAR Buffer,
+ IN ULONG BufferSize);
+
+/* VideoPortSynchronizeExecution.Priority constants */
+typedef enum VIDEO_SYNCHRONIZE_PRIORITY {
+ VpLowPriority = 0,
+ VpMediumPriority,
+ VpHighPriority
+} VIDEO_SYNCHRONIZE_PRIORITY, *PVIDEO_SYNCHRONIZE_PRIORITY;
+
+/* VideoPortAllocatePool.PoolType constants */
+typedef enum _VP_POOL_TYPE {
+ VpNonPagedPool = 0,
+ VpPagedPool,
+ VpNonPagedPoolCacheAligned = 4,
+ VpPagedPoolCacheAligned
+} VP_POOL_TYPE, *PVP_POOL_TYPE;
+
+typedef enum _DMA_FLAGS {
VideoPortUnlockAfterDma = 1,
VideoPortKeepPagesLocked,
VideoPortDmaInitOnly
} DMA_FLAGS;
-
-typedef enum _HW_DMA_RETURN {
- DmaAsyncReturn,
- DmaSyncReturn
-} HW_DMA_RETURN, *PHW_DMA_RETURN;
-
-typedef HW_DMA_RETURN
-(NTAPI *PVIDEO_HW_START_DMA)(
- PVOID HwDeviceExtension,
- PDMA pDma);
-
-
-#ifdef PAGED_CODE
-#undef PAGED_CODE
-#endif
-
-#if DBG
-
-#define PAGED_CODE() \
- if (VideoPortGetCurrentIrql() > 1 /* APC_LEVEL */) \
- { \
- VideoPortDebugPrint(Error, "Video: Pageable code called at IRQL %d\n",
VideoPortGetCurrentIrql() ); \
- ASSERT(FALSE); \
- }
-
-#else
-
-#define PAGED_CODE()
-
-#endif
typedef struct _VIDEO_HARDWARE_CONFIGURATION_DATA {
INTERFACE_TYPE InterfaceType;
@@ -115,911 +564,76 @@
ULONG FrameSize;
} VIDEO_HARDWARE_CONFIGURATION_DATA, *PVIDEO_HARDWARE_CONFIGURATION_DATA;
-#define SIZE_OF_NT4_VIDEO_PORT_CONFIG_INFO 0x42
-#define SIZE_OF_NT4_VIDEO_HW_INITIALIZATION_DATA 0x28
-#define SIZE_OF_W2K_VIDEO_HW_INITIALIZATION_DATA 0x50
-
-typedef enum _VIDEO_DEVICE_DATA_TYPE {
- VpMachineData = 0,
- VpCmosData,
- VpBusData,
- VpControllerData,
- VpMonitorData
-} VIDEO_DEVICE_DATA_TYPE, *PVIDEO_DEVICE_DATA_TYPE;
-
-
-
-/* Video miniport driver functions */
-
-typedef struct _VP_SCATTER_GATHER_ELEMENT {
- PHYSICAL_ADDRESS Address;
- ULONG Length;
- ULONG_PTR Reserved;
-} VP_SCATTER_GATHER_ELEMENT, *PVP_SCATTER_GATHER_ELEMENT;
-
-typedef struct _VP_SCATTER_GATHER_LIST {
- ULONG NumberOfElements;
- ULONG_PTR Reserved;
- VP_SCATTER_GATHER_ELEMENT Elements[0];
-} VP_SCATTER_GATHER_LIST, *PVP_SCATTER_GATHER_LIST;
-
-typedef VOID
-(NTAPI *PEXECUTE_DMA)(
- IN PVOID HwDeviceExtension,
- IN PVP_DMA_ADAPTER VpDmaAdapter,
- IN PVP_SCATTER_GATHER_LIST SGList,
- IN PVOID Context);
-
-typedef PVOID
-(NTAPI *PVIDEO_PORT_GET_PROC_ADDRESS)(
- IN PVOID HwDeviceExtension,
- IN PUCHAR FunctionName);
-
-typedef struct _VIDEO_PORT_CONFIG_INFO {
- ULONG Length;
- ULONG SystemIoBusNumber;
- INTERFACE_TYPE AdapterInterfaceType;
- ULONG BusInterruptLevel;
- ULONG BusInterruptVector;
- KINTERRUPT_MODE InterruptMode;
- ULONG NumEmulatorAccessEntries;
- PEMULATOR_ACCESS_ENTRY EmulatorAccessEntries;
- ULONG_PTR EmulatorAccessEntriesContext;
- PHYSICAL_ADDRESS VdmPhysicalVideoMemoryAddress;
- ULONG VdmPhysicalVideoMemoryLength;
- ULONG HardwareStateSize;
- ULONG DmaChannel;
- ULONG DmaPort;
- UCHAR DmaShareable;
- UCHAR InterruptShareable;
- BOOLEAN Master;
- DMA_WIDTH DmaWidth;
- DMA_SPEED DmaSpeed;
- BOOLEAN bMapBuffers;
- BOOLEAN NeedPhysicalAddresses;
- BOOLEAN DemandMode;
- ULONG MaximumTransferLength;
- ULONG NumberOfPhysicalBreaks;
- BOOLEAN ScatterGather;
- ULONG MaximumScatterGatherChunkSize;
- PVIDEO_PORT_GET_PROC_ADDRESS VideoPortGetProcAddress;
- PWSTR DriverRegistryPath;
- ULONGLONG SystemMemorySize;
-} VIDEO_PORT_CONFIG_INFO, *PVIDEO_PORT_CONFIG_INFO;
-
-typedef VP_STATUS
-(NTAPI *PVIDEO_HW_FIND_ADAPTER)(
- IN PVOID HwDeviceExtension,
- IN PVOID HwContext,
- IN PWSTR ArgumentString,
- IN OUT PVIDEO_PORT_CONFIG_INFO ConfigInfo,
- OUT PUCHAR Again);
-
-typedef VP_STATUS
-(NTAPI *PVIDEO_HW_POWER_GET)(
- IN PVOID HwDeviceExtension,
- IN ULONG HwId,
- IN OUT PVIDEO_POWER_MANAGEMENT VideoPowerControl);
-
-/* PVIDEO_HW_GET_CHILD_DESCRIPTOR return values */
-#define VIDEO_ENUM_MORE_DEVICES ERROR_CONTINUE
-#define VIDEO_ENUM_NO_MORE_DEVICES ERROR_NO_MORE_DEVICES
-#define VIDEO_ENUM_INVALID_DEVICE ERROR_INVALID_NAME
-
-/* PVIDEO_HW_GET_CHILD_DESCRIPTOR.ChildEnumInfo constants */
-typedef struct _VIDEO_CHILD_ENUM_INFO {
- ULONG Size;
- ULONG ChildDescriptorSize;
- ULONG ChildIndex;
- ULONG ACPIHwId;
- PVOID ChildHwDeviceExtension;
-} VIDEO_CHILD_ENUM_INFO, *PVIDEO_CHILD_ENUM_INFO;
-
-/* PVIDEO_HW_GET_CHILD_DESCRIPTOR.VideoChildType constants */
-typedef enum _VIDEO_CHILD_TYPE {
- Monitor = 1,
- NonPrimaryChip,
- VideoChip,
- Other
-} VIDEO_CHILD_TYPE, *PVIDEO_CHILD_TYPE;
-
-typedef VP_STATUS
-(NTAPI *PVIDEO_HW_GET_CHILD_DESCRIPTOR)(
- IN PVOID HwDeviceExtension,
- IN PVIDEO_CHILD_ENUM_INFO ChildEnumInfo,
- OUT PVIDEO_CHILD_TYPE VideoChildType,
- OUT PUCHAR pChildDescriptor,
- OUT PULONG UId,
- OUT PULONG pUnused);
-
-typedef BOOLEAN
-(NTAPI *PVIDEO_HW_INITIALIZE)(
- IN PVOID HwDeviceExtension);
-
-typedef BOOLEAN
-(NTAPI *PVIDEO_HW_INTERRUPT)(
- IN PVOID HwDeviceExtension);
-
-/* VIDEO_ACCESS_RANGE.RangePassive */
-#define VIDEO_RANGE_PASSIVE_DECODE 1
-#define VIDEO_RANGE_10_BIT_DECODE 2
-
-#ifndef VIDEO_ACCESS_RANGE_DEFINED /* also in miniport.h */
-#define VIDEO_ACCESS_RANGE_DEFINED
-typedef struct _VIDEO_ACCESS_RANGE {
- PHYSICAL_ADDRESS RangeStart;
- ULONG RangeLength;
- UCHAR RangeInIoSpace;
- UCHAR RangeVisible;
- UCHAR RangeShareable;
- UCHAR RangePassive;
-} VIDEO_ACCESS_RANGE, *PVIDEO_ACCESS_RANGE;
-#endif
-
-typedef VOID
-(NTAPI *PVIDEO_HW_LEGACYRESOURCES)(
- IN ULONG VendorId,
- IN ULONG DeviceId,
- IN OUT PVIDEO_ACCESS_RANGE *LegacyResourceList,
- IN OUT PULONG LegacyResourceCount);
-
-typedef VP_STATUS
-(NTAPI *PMINIPORT_QUERY_DEVICE_ROUTINE)(
- IN PVOID HwDeviceExtension,
- IN PVOID Context,
- IN VIDEO_DEVICE_DATA_TYPE DeviceDataType,
- IN PVOID Identifier,
- IN ULONG IdentifierLength,
- IN PVOID ConfigurationData,
- IN ULONG ConfigurationDataLength,
- IN OUT PVOID ComponentInformation,
- IN ULONG ComponentInformationLength);
-
-typedef struct _QUERY_INTERFACE {
- CONST GUID *InterfaceType;
- USHORT Size;
- USHORT Version;
- PINTERFACE Interface;
- PVOID InterfaceSpecificData;
-} QUERY_INTERFACE, *PQUERY_INTERFACE;
-
-typedef VP_STATUS
-(NTAPI *PVIDEO_HW_QUERY_INTERFACE)(
- IN PVOID HwDeviceExtension,
- IN OUT PQUERY_INTERFACE QueryInterface);
-
-typedef VP_STATUS
-(NTAPI *PMINIPORT_GET_REGISTRY_ROUTINE)(
- IN PVOID HwDeviceExtension,
- IN PVOID Context,
- IN OUT PWSTR ValueName,
- IN OUT PVOID ValueData,
- IN ULONG ValueLength);
-
-typedef BOOLEAN
-(NTAPI *PVIDEO_HW_RESET_HW)(
- IN PVOID HwDeviceExtension,
- IN ULONG Columns,
- IN ULONG Rows);
-
-typedef VP_STATUS
-(NTAPI *PVIDEO_HW_POWER_SET)(
- IN PVOID HwDeviceExtension,
- IN ULONG HwId,
- IN PVIDEO_POWER_MANAGEMENT VideoPowerControl);
-
-typedef struct _STATUS_BLOCK {
- _ANONYMOUS_UNION union {
- VP_STATUS Status;
- PVOID Pointer;
- } DUMMYUNIONNAME;
- ULONG_PTR Information;
-} STATUS_BLOCK, *PSTATUS_BLOCK;
-
-typedef struct _VIDEO_REQUEST_PACKET {
- ULONG IoControlCode;
- PSTATUS_BLOCK StatusBlock;
- PVOID InputBuffer;
- ULONG InputBufferLength;
- PVOID OutputBuffer;
- ULONG OutputBufferLength;
-} VIDEO_REQUEST_PACKET, *PVIDEO_REQUEST_PACKET;
-
-typedef BOOLEAN
-(NTAPI *PVIDEO_HW_START_IO)(
- IN PVOID HwDeviceExtension,
- IN PVIDEO_REQUEST_PACKET RequestPacket);
-
-typedef BOOLEAN
-(NTAPI *PMINIPORT_SYNCHRONIZE_ROUTINE)(
- IN PVOID Context);
-
-typedef VOID
-(NTAPI *PVIDEO_HW_TIMER)(
- IN PVOID HwDeviceExtension);
-
-typedef VOID
-(NTAPI *PMINIPORT_DPC_ROUTINE)(
- IN PVOID HwDeviceExtension,
- IN PVOID Context);
+typedef struct _VIDEO_X86_BIOS_ARGUMENTS {
+ ULONG Eax;
+ ULONG Ebx;
+ ULONG Ecx;
+ ULONG Edx;
+ ULONG Esi;
+ ULONG Edi;
+ ULONG Ebp;
+} VIDEO_X86_BIOS_ARGUMENTS, *PVIDEO_X86_BIOS_ARGUMENTS;
+
+typedef enum VIDEO_DEBUG_LEVEL {
+ Error = 0,
+ Warn,
+ Trace,
+ Info
+} VIDEO_DEBUG_LEVEL, *PVIDEO_DEBUG_LEVEL;
+
+#ifndef _NTOS_
typedef VP_STATUS
(NTAPI *PDRIVER_IO_PORT_UCHAR)(
- IN ULONG_PTR Context,
- IN ULONG Port,
- IN UCHAR AccessMode,
- IN PUCHAR Data);
+ IN ULONG_PTR Context,
+ IN ULONG Port,
+ IN UCHAR AccessMode,
+ IN PUCHAR Data);
typedef VP_STATUS
(NTAPI *PDRIVER_IO_PORT_UCHAR_STRING)(
- IN ULONG_PTR Context,
- IN ULONG Port,
- IN UCHAR AccessMode,
- IN PUCHAR Data,
- IN ULONG DataLength);
+ IN ULONG_PTR Context,
+ IN ULONG Port,
+ IN UCHAR AccessMode,
+ IN PUCHAR Data,
+ IN ULONG DataLength);
typedef VP_STATUS
(NTAPI *PDRIVER_IO_PORT_ULONG)(
- IN ULONG_PTR Context,
- IN ULONG Port,
- IN UCHAR AccessMode,
- IN PULONG Data);
+ IN ULONG_PTR Context,
+ IN ULONG Port,
+ IN UCHAR AccessMode,
+ IN PULONG Data);
typedef VP_STATUS
(NTAPI *PDRIVER_IO_PORT_ULONG_STRING)(
- IN ULONG_PTR Context,
- IN ULONG Port,
- IN UCHAR AccessMode,
- IN PULONG Data,
- IN ULONG DataLength);
+ IN ULONG_PTR Context,
+ IN ULONG Port,
+ IN UCHAR AccessMode,
+ IN PULONG Data,
+ IN ULONG DataLength);
typedef VP_STATUS
(NTAPI *PDRIVER_IO_PORT_USHORT)(
- IN ULONG_PTR Context,
- IN ULONG Port,
- IN UCHAR AccessMode,
- IN PUSHORT Data);
+ IN ULONG_PTR Context,
+ IN ULONG Port,
+ IN UCHAR AccessMode,
+ IN PUSHORT Data);
typedef VP_STATUS
(NTAPI *PDRIVER_IO_PORT_USHORT_STRING)(
- IN ULONG_PTR Context,
- IN ULONG Port,
- IN UCHAR AccessMode,
- IN PUSHORT Data,
- IN ULONG DataLength);
-
-
-
-typedef struct _INT10_BIOS_ARGUMENTS {
- ULONG Eax;
- ULONG Ebx;
- ULONG Ecx;
- ULONG Edx;
- ULONG Esi;
- ULONG Edi;
- ULONG Ebp;
- USHORT SegDs;
- USHORT SegEs;
-} INT10_BIOS_ARGUMENTS, *PINT10_BIOS_ARGUMENTS;
-
-typedef struct _VIDEO_CHILD_STATE {
- ULONG Id;
- ULONG State;
-} VIDEO_CHILD_STATE, *PVIDEO_CHILD_STATE;
-
-typedef struct _VIDEO_CHILD_STATE_CONFIGURATION {
- ULONG Count;
- VIDEO_CHILD_STATE ChildStateArray[ANYSIZE_ARRAY];
-} VIDEO_CHILD_STATE_CONFIGURATION, *PVIDEO_CHILD_STATE_CONFIGURATION;
-
-typedef struct _VIDEO_HW_INITIALIZATION_DATA {
- ULONG HwInitDataSize;
- INTERFACE_TYPE AdapterInterfaceType;
- PVIDEO_HW_FIND_ADAPTER HwFindAdapter;
- PVIDEO_HW_INITIALIZE HwInitialize;
- PVIDEO_HW_INTERRUPT HwInterrupt;
- PVIDEO_HW_START_IO HwStartIO;
- ULONG HwDeviceExtensionSize;
- ULONG StartingDeviceNumber;
- PVIDEO_HW_RESET_HW HwResetHw;
- PVIDEO_HW_TIMER HwTimer;
- PVIDEO_HW_START_DMA HwStartDma;
- PVIDEO_HW_POWER_SET HwSetPowerState;
- PVIDEO_HW_POWER_GET HwGetPowerState;
- PVIDEO_HW_GET_CHILD_DESCRIPTOR HwGetVideoChildDescriptor;
- PVIDEO_HW_QUERY_INTERFACE HwQueryInterface;
- ULONG HwChildDeviceExtensionSize;
- PVIDEO_ACCESS_RANGE HwLegacyResourceList;
- ULONG HwLegacyResourceCount;
- PVIDEO_HW_LEGACYRESOURCES HwGetLegacyResources;
- BOOLEAN AllowEarlyEnumeration;
- ULONG Reserved;
-} VIDEO_HW_INITIALIZATION_DATA, *PVIDEO_HW_INITIALIZATION_DATA;
-
-/* VIDEO_PORT_AGP_INTERFACE.Version contants */
-#define VIDEO_PORT_AGP_INTERFACE_VERSION_1 1
-
-typedef struct _VIDEO_PORT_AGP_INTERFACE {
- SHORT Size;
- SHORT Version;
- PVOID Context;
- PINTERFACE_REFERENCE InterfaceReference;
- PINTERFACE_DEREFERENCE InterfaceDereference;
- PAGP_RESERVE_PHYSICAL AgpReservePhysical;
- PAGP_RELEASE_PHYSICAL AgpReleasePhysical;
- PAGP_COMMIT_PHYSICAL AgpCommitPhysical;
- PAGP_FREE_PHYSICAL AgpFreePhysical;
- PAGP_RESERVE_VIRTUAL AgpReserveVirtual;
- PAGP_RELEASE_VIRTUAL AgpReleaseVirtual;
- PAGP_COMMIT_VIRTUAL AgpCommitVirtual;
- PAGP_FREE_VIRTUAL AgpFreeVirtual;
- ULONGLONG AgpAllocationLimit;
-} VIDEO_PORT_AGP_INTERFACE, *PVIDEO_PORT_AGP_INTERFACE;
-
-/* VIDEO_PORT_AGP_INTERFACE_2.Version constants */
-#define VIDEO_PORT_AGP_INTERFACE_VERSION_2 2
-
-typedef struct _VIDEO_PORT_AGP_INTERFACE_2 {
- IN USHORT Size;
- IN USHORT Version;
- OUT PVOID Context;
- OUT PINTERFACE_REFERENCE InterfaceReference;
- OUT PINTERFACE_DEREFERENCE InterfaceDereference;
- OUT PAGP_RESERVE_PHYSICAL AgpReservePhysical;
- OUT PAGP_RELEASE_PHYSICAL AgpReleasePhysical;
- OUT PAGP_COMMIT_PHYSICAL AgpCommitPhysical;
- OUT PAGP_FREE_PHYSICAL AgpFreePhysical;
- OUT PAGP_RESERVE_VIRTUAL AgpReserveVirtual;
- OUT PAGP_RELEASE_VIRTUAL AgpReleaseVirtual;
- OUT PAGP_COMMIT_VIRTUAL AgpCommitVirtual;
- OUT PAGP_FREE_VIRTUAL AgpFreeVirtual;
- OUT ULONGLONG AgpAllocationLimit;
- OUT PAGP_SET_RATE AgpSetRate;
-} VIDEO_PORT_AGP_INTERFACE_2, *PVIDEO_PORT_AGP_INTERFACE_2;
-
-#define VIDEO_PORT_I2C_INTERFACE_VERSION_1 1
-
-typedef VOID
-(NTAPI *PVIDEO_WRITE_CLOCK_LINE)(
- PVOID HwDeviceExtension,
- UCHAR Data);
-
-typedef VOID
-(NTAPI *PVIDEO_WRITE_DATA_LINE)(
- PVOID HwDeviceExtension,
- UCHAR Data);
-
-typedef BOOLEAN
-(NTAPI *PVIDEO_READ_CLOCK_LINE)(
- PVOID HwDeviceExtension);
-
-typedef BOOLEAN
-(NTAPI *PVIDEO_READ_DATA_LINE)(
- PVOID HwDeviceExtension);
-
-typedef struct _I2C_CALLBACKS
-{
- IN PVIDEO_WRITE_CLOCK_LINE WriteClockLine;
- IN PVIDEO_WRITE_DATA_LINE WriteDataLine;
- IN PVIDEO_READ_CLOCK_LINE ReadClockLine;
- IN PVIDEO_READ_DATA_LINE ReadDataLine;
-} I2C_CALLBACKS, *PI2C_CALLBACKS;
-
-typedef BOOLEAN
-(NTAPI *PI2C_START)(
- IN PVOID HwDeviceExtension,
- IN PI2C_CALLBACKS I2CCallbacks);
-
-typedef BOOLEAN
-(NTAPI *PI2C_STOP)(
- IN PVOID HwDeviceExtension,
- IN PI2C_CALLBACKS I2CCallbacks);
-
-typedef BOOLEAN
-(NTAPI *PI2C_WRITE)(
- IN PVOID HwDeviceExtension,
- IN PI2C_CALLBACKS I2CCallbacks,
- IN PUCHAR Buffer,
- IN ULONG Length);
-
-typedef BOOLEAN
-(NTAPI *PI2C_READ)(
- IN PVOID HwDeviceExtension,
- IN PI2C_CALLBACKS I2CCallbacks,
- OUT PUCHAR Buffer,
- IN ULONG Length);
-
-typedef struct _VIDEO_PORT_I2C_INTERFACE {
- USHORT Size;
- USHORT Version;
- PVOID Context;
- PINTERFACE_REFERENCE InterfaceReference;
- PINTERFACE_DEREFERENCE InterfaceDereference;
- PI2C_START I2CStart;
- PI2C_STOP I2CStop;
- PI2C_WRITE I2CWrite;
- PI2C_READ I2CRead;
-} VIDEO_PORT_I2C_INTERFACE, *PVIDEO_PORT_I2C_INTERFACE;
-
-/* VIDEO_PORT_INT10_INTERFACE.Version constants */
-#define VIDEO_PORT_INT10_INTERFACE_VERSION_1 1
-
-typedef VP_STATUS
-(NTAPI *PINT10_ALLOCATE_BUFFER)(
- IN PVOID Context,
- OUT PUSHORT Seg,
- OUT PUSHORT Off,
- IN OUT PULONG Length);
-
-typedef VP_STATUS
-(NTAPI *PINT10_CALL_BIOS)(
- IN PVOID Context,
- IN OUT PINT10_BIOS_ARGUMENTS BiosArguments);
-
-typedef VP_STATUS
-(NTAPI *PINT10_FREE_BUFFER)(
- IN PVOID Context,
- IN USHORT Seg,
- IN USHORT Off);
-
-typedef VP_STATUS
-(NTAPI *PINT10_READ_MEMORY)(
- IN PVOID Context,
- IN USHORT Seg,
- IN USHORT Off,
- OUT PVOID Buffer,
- IN ULONG Length);
-
-typedef VP_STATUS
-(NTAPI *PINT10_WRITE_MEMORY)(
- IN PVOID Context,
- IN USHORT Seg,
- IN USHORT Off,
- IN PVOID Buffer,
- IN ULONG Length);
-
-typedef struct _VIDEO_PORT_INT10_INTERFACE {
- IN USHORT Size;
- IN USHORT Version;
- OUT PVOID Context;
- OUT PINTERFACE_REFERENCE InterfaceReference;
- OUT PINTERFACE_DEREFERENCE InterfaceDereference;
- OUT PINT10_ALLOCATE_BUFFER Int10AllocateBuffer;
- OUT PINT10_FREE_BUFFER Int10FreeBuffer;
- OUT PINT10_READ_MEMORY Int10ReadMemory;
- OUT PINT10_WRITE_MEMORY Int10WriteMemory;
- OUT PINT10_CALL_BIOS Int10CallBios;
-} VIDEO_PORT_INT10_INTERFACE, *PVIDEO_PORT_INT10_INTERFACE;
-
-/* Flags for VideoPortGetDeviceBase and VideoPortMapMemory */
-#define VIDEO_MEMORY_SPACE_MEMORY 0x00
-#define VIDEO_MEMORY_SPACE_IO 0x01
-#define VIDEO_MEMORY_SPACE_USER_MODE 0x02
-#define VIDEO_MEMORY_SPACE_DENSE 0x04
-#define VIDEO_MEMORY_SPACE_P6CACHE 0x08
-
-typedef struct _VIDEO_X86_BIOS_ARGUMENTS {
- ULONG Eax;
- ULONG Ebx;
- ULONG Ecx;
- ULONG Edx;
- ULONG Esi;
- ULONG Edi;
- ULONG Ebp;
-} VIDEO_X86_BIOS_ARGUMENTS, *PVIDEO_X86_BIOS_ARGUMENTS;
-
-typedef struct _VP_DEVICE_DESCRIPTION {
- BOOLEAN ScatterGather;
- BOOLEAN Dma32BitAddresses;
- BOOLEAN Dma64BitAddresses;
- ULONG MaximumLength;
-} VP_DEVICE_DESCRIPTION, *PVP_DEVICE_DESCRIPTION;
-
-typedef struct _VPOSVERSIONINFO {
- IN ULONG Size;
- OUT ULONG MajorVersion;
- OUT ULONG MinorVersion;
- OUT ULONG BuildNumber;
- OUT USHORT ServicePackMajor;
- OUT USHORT ServicePackMinor;
-} VPOSVERSIONINFO, *PVPOSVERSIONINFO;
-
-
-
-/* Video port functions for miniports */
-
-VPAPI
-VOID
-NTAPI
-VideoPortAcquireDeviceLock(
- IN PVOID HwDeviceExtension);
-
-VPAPI
-VOID
-NTAPI
-VideoPortAcquireSpinLock(
- IN PVOID HwDeviceExtension,
- IN PSPIN_LOCK SpinLock,
- OUT PUCHAR OldIrql);
-
-VPAPI
-VOID
-NTAPI
-VideoPortAcquireSpinLockAtDpcLevel(
- IN PVOID HwDeviceExtension,
- IN PSPIN_LOCK SpinLock);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortAllocateBuffer(
- IN PVOID HwDeviceExtension,
- IN ULONG Size,
- OUT PVOID *Buffer);
-
-VPAPI
-PVOID
-NTAPI
-VideoPortAllocateCommonBuffer(
- IN PVOID HwDeviceExtension,
- IN PVP_DMA_ADAPTER VpDmaAdapter,
- IN ULONG DesiredLength,
- OUT PPHYSICAL_ADDRESS LogicalAddress,
- IN BOOLEAN CacheEnabled,
- PVOID Reserved);
-
-VPAPI
-PVOID
-NTAPI
-VideoPortAllocateContiguousMemory(
- IN PVOID HwDeviceExtension,
- IN ULONG NumberOfBytes,
- IN PHYSICAL_ADDRESS HighestAcceptableAddress);
-
-/* VideoPortAllocatePool.PoolType constants */
-typedef enum _VP_POOL_TYPE {
- VpNonPagedPool = 0,
- VpPagedPool,
- VpNonPagedPoolCacheAligned = 4,
- VpPagedPoolCacheAligned
-} VP_POOL_TYPE, *PVP_POOL_TYPE;
-
-VPAPI
-PVOID
-NTAPI
-VideoPortAllocatePool(
- IN PVOID HwDeviceExtension,
- IN VP_POOL_TYPE PoolType,
- IN SIZE_T NumberOfBytes,
- IN ULONG Tag);
-
-VPAPI
-PDMA
-NTAPI
-VideoPortAssociateEventsWithDmaHandle(
- IN PVOID HwDeviceExtension,
- IN OUT PVIDEO_REQUEST_PACKET pVrp,
- IN PVOID MappedUserEvent,
- IN PVOID DisplayDriverEvent);
-
-/* VideoPortCheckForDeviceExistence.Flags constants */
-#define CDE_USE_SUBSYSTEM_IDS 0x00000001
-#define CDE_USE_REVISION 0x00000002
-
-VPAPI
-BOOLEAN
-NTAPI
-VideoPortCheckForDeviceExistence(
- IN PVOID HwDeviceExtension,
- IN USHORT VendorId,
- IN USHORT DeviceId,
- IN UCHAR RevisionId,
- IN USHORT SubVendorId,
- IN USHORT SubSystemId,
- IN ULONG Flags);
-
-VPAPI
-VOID
-NTAPI
-VideoPortClearEvent(
- IN PVOID HwDeviceExtension,
- IN PEVENT pEvent);
-
-VPAPI
-ULONG
-NTAPI
-VideoPortCompareMemory(
- IN PVOID Source1,
- IN PVOID Source2,
- IN ULONG Length);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortCompleteDma(
- IN PVOID HwDeviceExtension,
- IN PVP_DMA_ADAPTER VpDmaAdapter,
- IN PVP_SCATTER_GATHER_LIST VpScatterGather,
- IN BOOLEAN WriteToDevice);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortCreateEvent(
- IN PVOID HwDeviceExtension,
- IN ULONG EventFlag,
- IN PVOID Unused,
- OUT PEVENT *ppEvent);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortCreateSecondaryDisplay(
- IN PVOID HwDeviceExtension,
- IN OUT PVOID *SecondaryDeviceExtension,
- IN ULONG ulFlag);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortCreateSpinLock(
- IN PVOID HwDeviceExtension,
- OUT PSPIN_LOCK *SpinLock);
-
-typedef struct _DDC_CONTROL {
- IN ULONG Size;
- IN I2C_CALLBACKS I2CCallbacks;
- IN UCHAR EdidSegment;
-} DDC_CONTROL, *PDDC_CONTROL;
-
-VPAPI
-BOOLEAN
-NTAPI
-VideoPortDDCMonitorHelper(
- IN PVOID HwDeviceExtension,
- IN PVOID DDCControl,
- IN OUT PUCHAR EdidBuffer,
- IN ULONG EdidBufferSize);
-
-VPAPI
-VOID
-__cdecl
-VideoPortDebugPrint(
- IN VIDEO_DEBUG_LEVEL DebugPrintLevel,
- IN PCHAR DebugMessage,
- IN ...);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortDeleteEvent(
- IN PVOID HwDeviceExtension,
- IN PEVENT pEvent);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortDeleteSpinLock(
- IN PVOID HwDeviceExtension,
- IN PSPIN_LOCK SpinLock);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortDisableInterrupt(
- IN PVOID HwDeviceExtension);
-
-VPAPI
-PDMA
-NTAPI
-VideoPortDoDma(
- IN PVOID HwDeviceExtension,
- IN PDMA pDma,
- IN DMA_FLAGS DmaFlags);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortEnableInterrupt(
- IN PVOID HwDeviceExtension);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortEnumerateChildren(
- IN PVOID HwDeviceExtension,
- IN PVOID Reserved);
-
-VPAPI
-VOID
-NTAPI
-VideoPortFreeCommonBuffer(
- IN PVOID HwDeviceExtension,
- IN ULONG Length,
- IN PVOID VirtualAddress,
- IN PHYSICAL_ADDRESS LogicalAddress,
- IN BOOLEAN CacheEnabled);
-
-VPAPI
-VOID
-NTAPI
-VideoPortFreeDeviceBase(
- IN PVOID HwDeviceExtension,
- IN PVOID MappedAddress);
-
-VPAPI
-VOID
-NTAPI
-VideoPortFreePool(
- IN PVOID HwDeviceExtension,
- IN PVOID Ptr);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortGetAccessRanges(
- IN PVOID HwDeviceExtension,
- IN ULONG NumRequestedResources,
- IN PIO_RESOURCE_DESCRIPTOR RequestedResources OPTIONAL,
- IN ULONG NumAccessRanges,
- OUT PVIDEO_ACCESS_RANGE AccessRanges,
- IN PVOID VendorId,
- IN PVOID DeviceId,
- OUT PULONG Slot);
-
-VPAPI
-PVOID
-NTAPI
-VideoPortGetAssociatedDeviceExtension(
- IN PVOID DeviceObject);
-
-VPAPI
-ULONG
-NTAPI
-VideoPortGetAssociatedDeviceID(
- IN PVOID DeviceObject);
-
-VPAPI
-ULONG
-NTAPI
-VideoPortGetBusData(
- IN PVOID HwDeviceExtension,
- IN BUS_DATA_TYPE BusDataType,
- IN ULONG SlotNumber,
- IN OUT PVOID Buffer,
- IN ULONG Offset,
- IN ULONG Length);
-
-VPAPI
-ULONG
-NTAPI
-VideoPortGetBytesUsed(
- IN PVOID HwDeviceExtension,
- IN PDMA pDma);
-
-VPAPI
-PVOID
-NTAPI
-VideoPortGetCommonBuffer(
- IN PVOID HwDeviceExtension,
- IN ULONG DesiredLength,
- IN ULONG Alignment,
- OUT PPHYSICAL_ADDRESS LogicalAddress,
- OUT PULONG pActualLength,
- IN BOOLEAN CacheEnabled);
-
-VPAPI
-UCHAR
-NTAPI
-VideoPortGetCurrentIrql(
- VOID);
-
-VPAPI
-PVOID
-NTAPI
-VideoPortGetDeviceBase(
- IN PVOID HwDeviceExtension,
- IN PHYSICAL_ADDRESS IoAddress,
- IN ULONG NumberOfUchars,
- IN UCHAR InIoSpace);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortGetDeviceData(
- IN PVOID HwDeviceExtension,
- IN VIDEO_DEVICE_DATA_TYPE DeviceDataType,
- IN PMINIPORT_QUERY_DEVICE_ROUTINE CallbackRoutine,
- IN PVOID Context);
-
-VPAPI
-PVP_DMA_ADAPTER
-NTAPI
-VideoPortGetDmaAdapter(
- IN PVOID HwDeviceExtension,
- IN PVP_DEVICE_DESCRIPTION VpDeviceDescription);
-
-VPAPI
-PVOID
-NTAPI
-VideoPortGetDmaContext(
- IN PVOID HwDeviceExtension,
- IN PDMA pDma);
-
-VPAPI
-PVOID
-NTAPI
-VideoPortGetMdl(
- IN PVOID HwDeviceExtension,
- IN PDMA pDma);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortGetRegistryParameters(
- IN PVOID HwDeviceExtension,
- IN PWSTR ParameterName,
- IN UCHAR IsParameterFileName,
- IN PMINIPORT_GET_REGISTRY_ROUTINE CallbackRoutine,
- IN PVOID Context);
-
-VPAPI
-PVOID
-NTAPI
-VideoPortGetRomImage(
- IN PVOID HwDeviceExtension,
- IN PVOID Unused1,
- IN ULONG Unused2,
- IN ULONG Length);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortGetVersion(
- IN PVOID HwDeviceExtension,
- IN OUT PVPOSVERSIONINFO pVpOsVersionInfo);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortGetVgaStatus(
- IN PVOID HwDeviceExtension,
- OUT PULONG VgaStatus);
-
-VPAPI
-ULONG
-NTAPI
-VideoPortInitialize(
- IN PVOID Argument1,
- IN PVOID Argument2,
- IN PVIDEO_HW_INITIALIZATION_DATA HwInitializationData,
- IN PVOID HwContext);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortInt10(
- IN PVOID HwDeviceExtension,
- IN PVIDEO_X86_BIOS_ARGUMENTS BiosArguments);
-
-VPAPI
-LONG
-FASTCALL
-VideoPortInterlockedDecrement(
- IN PLONG Addend);
-
-VPAPI
-LONG
-FASTCALL
-VideoPortInterlockedExchange(
- IN OUT PLONG Target,
- IN LONG Value);
-
-VPAPI
-LONG
-FASTCALL
-VideoPortInterlockedIncrement(
- IN PLONG Addend);
+ IN ULONG_PTR Context,
+ IN ULONG Port,
+ IN UCHAR AccessMode,
+ IN PUSHORT Data,
+ IN ULONG DataLength);
+
+#endif /* _NTOS_ */
+
+typedef struct __VRB_SG {
+ __int64 PhysicalAddress;
+ ULONG Length;
+} VRB_SG, *PVRB_SG;
typedef enum _VP_LOCK_OPERATION {
VpReadAccess = 0,
@@ -1027,100 +641,416 @@
VpModifyAccess
} VP_LOCK_OPERATION;
-VPAPI
-PVOID
-NTAPI
-VideoPortLockBuffer(
- IN PVOID HwDeviceExtension,
- IN PVOID BaseAddress,
- IN ULONG Length,
- IN VP_LOCK_OPERATION Operation);
-
-VPAPI
-BOOLEAN
-NTAPI
-VideoPortLockPages(
- IN PVOID HwDeviceExtension,
- IN OUT PVIDEO_REQUEST_PACKET pVrp,
- IN OUT PEVENT pUEvent,
- IN PEVENT pDisplayEvent,
- IN DMA_FLAGS DmaFlags);
-
-VPAPI
-VOID
-NTAPI
-VideoPortLogError(
- IN PVOID HwDeviceExtension,
- IN PVIDEO_REQUEST_PACKET Vrp OPTIONAL,
- IN VP_STATUS ErrorCode,
- IN ULONG UniqueId);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortMapBankedMemory(
- IN PVOID HwDeviceExtension,
- IN PHYSICAL_ADDRESS PhysicalAddress,
- IN OUT PULONG Length,
- PULONG InIoSpace,
- PVOID *VirtualAddress,
- ULONG BankLength,
- UCHAR ReadWriteBank,
- PBANKED_SECTION_ROUTINE BankRoutine,
- PVOID Context);
-
-VPAPI
-PDMA
-NTAPI
-VideoPortMapDmaMemory(
- IN PVOID HwDeviceExtension,
- IN PVIDEO_REQUEST_PACKET pVrp,
- IN PHYSICAL_ADDRESS BoardAddress,
- IN PULONG Length,
- IN PULONG InIoSpace,
- IN PVOID MappedUserEvent,
- IN PVOID DisplayDriverEvent,
- IN OUT PVOID *VirtualAddress);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortMapMemory(
- IN PVOID HwDeviceExtension,
- IN PHYSICAL_ADDRESS PhysicalAddress,
- IN OUT PULONG Length,
- IN PULONG InIoSpace,
- IN OUT PVOID *VirtualAddress);
-
-VPAPI
-VOID
-NTAPI
-VideoPortMoveMemory(
- IN PVOID Destination,
- IN PVOID Source,
- IN ULONG Length);
-
-VPAPI
-VOID
-NTAPI
-VideoPortPutDmaAdapter(
- IN PVOID HwDeviceExtension,
- IN PVP_DMA_ADAPTER VpDmaAdapter);
-
-VPAPI
-LONGLONG
-NTAPI
-VideoPortQueryPerformanceCounter(
- IN PVOID HwDeviceExtension,
- OUT PLONGLONG PerformanceFrequency OPTIONAL);
+typedef struct _VP_DEVICE_DESCRIPTION {
+ BOOLEAN ScatterGather;
+ BOOLEAN Dma32BitAddresses;
+ BOOLEAN Dma64BitAddresses;
+ ULONG MaximumLength;
+} VP_DEVICE_DESCRIPTION, *PVP_DEVICE_DESCRIPTION;
+
+typedef struct _VIDEO_CHILD_STATE {
+ ULONG Id;
+ ULONG State;
+} VIDEO_CHILD_STATE, *PVIDEO_CHILD_STATE;
+
+typedef struct _VIDEO_CHILD_STATE_CONFIGURATION {
+ ULONG Count;
+ VIDEO_CHILD_STATE ChildStateArray[ANYSIZE_ARRAY];
+} VIDEO_CHILD_STATE_CONFIGURATION, *PVIDEO_CHILD_STATE_CONFIGURATION;
+
+typedef struct _VIDEO_HW_INITIALIZATION_DATA {
+ ULONG HwInitDataSize;
+ INTERFACE_TYPE AdapterInterfaceType;
+ PVIDEO_HW_FIND_ADAPTER HwFindAdapter;
+ PVIDEO_HW_INITIALIZE HwInitialize;
+ PVIDEO_HW_INTERRUPT HwInterrupt;
+ PVIDEO_HW_START_IO HwStartIO;
+ ULONG HwDeviceExtensionSize;
+ ULONG StartingDeviceNumber;
+ PVIDEO_HW_RESET_HW HwResetHw;
+ PVIDEO_HW_TIMER HwTimer;
+ PVIDEO_HW_START_DMA HwStartDma;
+ PVIDEO_HW_POWER_SET HwSetPowerState;
+ PVIDEO_HW_POWER_GET HwGetPowerState;
+ PVIDEO_HW_GET_CHILD_DESCRIPTOR HwGetVideoChildDescriptor;
+ PVIDEO_HW_QUERY_INTERFACE HwQueryInterface;
+ ULONG HwChildDeviceExtensionSize;
+ PVIDEO_ACCESS_RANGE HwLegacyResourceList;
+ ULONG HwLegacyResourceCount;
+ PVIDEO_HW_LEGACYRESOURCES HwGetLegacyResources;
+ BOOLEAN AllowEarlyEnumeration;
+ ULONG Reserved;
+} VIDEO_HW_INITIALIZATION_DATA, *PVIDEO_HW_INITIALIZATION_DATA;
+
+typedef struct _I2C_FNC_TABLE {
+ IN ULONG Size;
+ IN PVIDEO_WRITE_CLOCK_LINE WriteClockLine;
+ IN PVIDEO_WRITE_DATA_LINE WriteDataLine;
+ IN PVIDEO_READ_CLOCK_LINE ReadClockLine;
+ IN PVIDEO_READ_DATA_LINE ReadDataLine;
+ IN PVIDEO_WAIT_VSYNC_ACTIVE WaitVsync;
+ PVOID Reserved;
+} I2C_FNC_TABLE, *PI2C_FNC_TABLE;
+
+typedef struct _DDC_CONTROL {
+ IN ULONG Size;
+ IN I2C_CALLBACKS I2CCallbacks;
+ IN UCHAR EdidSegment;
+} DDC_CONTROL, *PDDC_CONTROL;
/* VideoPortQueryServices.ServicesType constants */
typedef enum _VIDEO_PORT_SERVICES {
VideoPortServicesAGP = 1,
VideoPortServicesI2C,
VideoPortServicesHeadless,
- VideoPortServicesInt10
+ VideoPortServicesInt10,
+ VideoPortServicesDebugReport,
+ VideoPortServicesWCMemoryProtection
} VIDEO_PORT_SERVICES;
+
+typedef struct _VIDEO_PORT_AGP_INTERFACE {
+ SHORT Size;
+ SHORT Version;
+ PVOID Context;
+ PINTERFACE_REFERENCE InterfaceReference;
+ PINTERFACE_DEREFERENCE InterfaceDereference;
+ PAGP_RESERVE_PHYSICAL AgpReservePhysical;
+ PAGP_RELEASE_PHYSICAL AgpReleasePhysical;
+ PAGP_COMMIT_PHYSICAL AgpCommitPhysical;
+ PAGP_FREE_PHYSICAL AgpFreePhysical;
+ PAGP_RESERVE_VIRTUAL AgpReserveVirtual;
+ PAGP_RELEASE_VIRTUAL AgpReleaseVirtual;
+ PAGP_COMMIT_VIRTUAL AgpCommitVirtual;
+ PAGP_FREE_VIRTUAL AgpFreeVirtual;
+ ULONGLONG AgpAllocationLimit;
+} VIDEO_PORT_AGP_INTERFACE, *PVIDEO_PORT_AGP_INTERFACE;
+
+typedef struct _VIDEO_PORT_AGP_INTERFACE_2 {
+ IN USHORT Size;
+ IN USHORT Version;
+ OUT PVOID Context;
+ OUT PINTERFACE_REFERENCE InterfaceReference;
+ OUT PINTERFACE_DEREFERENCE InterfaceDereference;
+ OUT PAGP_RESERVE_PHYSICAL AgpReservePhysical;
+ OUT PAGP_RELEASE_PHYSICAL AgpReleasePhysical;
+ OUT PAGP_COMMIT_PHYSICAL AgpCommitPhysical;
+ OUT PAGP_FREE_PHYSICAL AgpFreePhysical;
+ OUT PAGP_RESERVE_VIRTUAL AgpReserveVirtual;
+ OUT PAGP_RELEASE_VIRTUAL AgpReleaseVirtual;
+ OUT PAGP_COMMIT_VIRTUAL AgpCommitVirtual;
+ OUT PAGP_FREE_VIRTUAL AgpFreeVirtual;
+ OUT ULONGLONG AgpAllocationLimit;
+ OUT PAGP_SET_RATE AgpSetRate;
+} VIDEO_PORT_AGP_INTERFACE_2, *PVIDEO_PORT_AGP_INTERFACE_2;
+
+typedef struct _VIDEO_PORT_I2C_INTERFACE {
+ USHORT Size;
+ USHORT Version;
+ PVOID Context;
+ PINTERFACE_REFERENCE InterfaceReference;
+ PINTERFACE_DEREFERENCE InterfaceDereference;
+ PI2C_START I2CStart;
+ PI2C_STOP I2CStop;
+ PI2C_WRITE I2CWrite;
+ PI2C_READ I2CRead;
+} VIDEO_PORT_I2C_INTERFACE, *PVIDEO_PORT_I2C_INTERFACE;
+
+typedef struct _VIDEO_PORT_I2C_INTERFACE_2 {
+ IN USHORT Size;
+ IN USHORT Version;
+ OUT PVOID Context;
+ OUT PINTERFACE_REFERENCE InterfaceReference;
+ OUT PINTERFACE_DEREFERENCE InterfaceDereference;
+ OUT PI2C_START_2 I2CStart;
+ OUT PI2C_STOP_2 I2CStop;
+ OUT PI2C_WRITE_2 I2CWrite;
+ OUT PI2C_READ_2 I2CRead;
+} VIDEO_PORT_I2C_INTERFACE_2, *PVIDEO_PORT_I2C_INTERFACE_2;
+
+typedef struct _VIDEO_PORT_INT10_INTERFACE {
+ IN USHORT Size;
+ IN USHORT Version;
+ OUT PVOID Context;
+ OUT PINTERFACE_REFERENCE InterfaceReference;
+ OUT PINTERFACE_DEREFERENCE InterfaceDereference;
+ OUT PINT10_ALLOCATE_BUFFER Int10AllocateBuffer;
+ OUT PINT10_FREE_BUFFER Int10FreeBuffer;
+ OUT PINT10_READ_MEMORY Int10ReadMemory;
+ OUT PINT10_WRITE_MEMORY Int10WriteMemory;
+ OUT PINT10_CALL_BIOS Int10CallBios;
+} VIDEO_PORT_INT10_INTERFACE, *PVIDEO_PORT_INT10_INTERFACE;
+
+typedef struct _VIDEO_PORT_WCMEMORYPROTECTION_INTERFACE {
+ IN USHORT Size;
+ IN USHORT Version;
+ OUT PVOID Context;
+ OUT PINTERFACE_REFERENCE InterfaceReference;
+ OUT PINTERFACE_DEREFERENCE InterfaceDereference;
+ OUT PROTECT_WC_MEMORY VideoPortProtectWCMemory;
+ OUT RESTORE_WC_MEMORY VideoPortRestoreWCMemory;
+} VIDEO_PORT_WCMEMORYPROTECTION_INTERFACE, *PVIDEO_PORT_WCMEMORYPROTECTION_INTERFACE;
+
+typedef struct _VPOSVERSIONINFO {
+ IN ULONG Size;
+ OUT ULONG MajorVersion;
+ OUT ULONG MinorVersion;
+ OUT ULONG BuildNumber;
+ OUT USHORT ServicePackMajor;
+ OUT USHORT ServicePackMinor;
+} VPOSVERSIONINFO, *PVPOSVERSIONINFO;
+
+typedef struct _VIDEO_PORT_DEBUG_REPORT_INTERFACE {
+ IN USHORT Size;
+ IN USHORT Version;
+ OUT PVOID Context;
+ OUT PINTERFACE_REFERENCE InterfaceReference;
+ OUT PINTERFACE_DEREFERENCE InterfaceDereference;
+ OUT PVIDEO_DEBUG_REPORT (*DbgReportCreate)(
+ IN PVOID HwDeviceExtension,
+ IN ULONG ulCode,
+ IN ULONG_PTR ulpArg1,
+ IN ULONG_PTR ulpArg2,
+ IN ULONG_PTR ulpArg3,
+ IN ULONG_PTR ulpArg4
+ );
+ OUT BOOLEAN (*DbgReportSecondaryData)(
+ IN OUT PVIDEO_DEBUG_REPORT pReport,
+ IN PVOID pvData,
+ IN ULONG ulDataSize
+ );
+ OUT VOID (*DbgReportComplete)(
+ IN OUT PVIDEO_DEBUG_REPORT pReport
+ );
+} VIDEO_PORT_DEBUG_REPORT_INTERFACE, *PVIDEO_PORT_DEBUG_REPORT_INTERFACE;
+
+/* Video port functions for miniports */
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortAllocateBuffer(
+ IN PVOID HwDeviceExtension,
+ IN ULONG Size,
+ OUT PVOID *Buffer);
+
+VPAPI
+VOID
+NTAPI
+VideoPortAcquireDeviceLock(
+ IN PVOID HwDeviceExtension);
+
+VPAPI
+ULONG
+NTAPI
+VideoPortCompareMemory(
+ IN PVOID Source1,
+ IN PVOID Source2,
+ IN SIZE_T Length);
+
+VPAPI
+BOOLEAN
+NTAPI
+VideoPortDDCMonitorHelper(
+ IN PVOID HwDeviceExtension,
+ IN PVOID DDCControl,
+ IN OUT PUCHAR EdidBuffer,
+ IN ULONG EdidBufferSize);
+
+VPAPI
+VOID
+__cdecl
+VideoPortDebugPrint(
+ IN VIDEO_DEBUG_LEVEL DebugPrintLevel,
+ IN PSTR DebugMessage,
+ IN ...);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortDisableInterrupt(
+ IN PVOID HwDeviceExtension);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortEnableInterrupt(
+ IN PVOID HwDeviceExtension);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortEnumerateChildren(
+ IN PVOID HwDeviceExtension,
+ IN PVOID Reserved);
+
+VPAPI
+VOID
+NTAPI
+VideoPortFreeDeviceBase(
+ IN PVOID HwDeviceExtension,
+ IN PVOID MappedAddress);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortGetAccessRanges(
+ IN PVOID HwDeviceExtension,
+ IN ULONG NumRequestedResources,
+ IN PIO_RESOURCE_DESCRIPTOR RequestedResources OPTIONAL,
+ IN ULONG NumAccessRanges,
+ OUT PVIDEO_ACCESS_RANGE AccessRanges,
+ IN PVOID VendorId,
+ IN PVOID DeviceId,
+ OUT PULONG Slot);
+
+VPAPI
+PVOID
+NTAPI
+VideoPortGetAssociatedDeviceExtension(
+ IN PVOID DeviceObject);
+
+VPAPI
+ULONG
+NTAPI
+VideoPortGetBusData(
+ IN PVOID HwDeviceExtension,
+ IN BUS_DATA_TYPE BusDataType,
+ IN ULONG SlotNumber,
+ IN OUT PVOID Buffer,
+ IN ULONG Offset,
+ IN ULONG Length);
+
+VPAPI
+UCHAR
+NTAPI
+VideoPortGetCurrentIrql(VOID);
+
+VPAPI
+PVOID
+NTAPI
+VideoPortGetDeviceBase(
+ IN PVOID HwDeviceExtension,
+ IN PHYSICAL_ADDRESS IoAddress,
+ IN ULONG NumberOfUchars,
+ IN UCHAR InIoSpace);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortGetDeviceData(
+ IN PVOID HwDeviceExtension,
+ IN VIDEO_DEVICE_DATA_TYPE DeviceDataType,
+ IN PMINIPORT_QUERY_DEVICE_ROUTINE CallbackRoutine,
+ IN PVOID Context);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortGetRegistryParameters(
+ IN PVOID HwDeviceExtension,
+ IN PWSTR ParameterName,
+ IN UCHAR IsParameterFileName,
+ IN PMINIPORT_GET_REGISTRY_ROUTINE CallbackRoutine,
+ IN PVOID Context);
+
+VPAPI
+PVOID
+NTAPI
+VideoPortGetRomImage(
+ IN PVOID HwDeviceExtension,
+ IN PVOID Unused1,
+ IN ULONG Unused2,
+ IN ULONG Length);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortGetVgaStatus(
+ IN PVOID HwDeviceExtension,
+ OUT PULONG VgaStatus);
+
+VPAPI
+LONG
+FASTCALL
+VideoPortInterlockedDecrement(
+ IN PLONG Addend);
+
+VPAPI
+LONG
+FASTCALL
+VideoPortInterlockedExchange(
+ IN OUT PLONG Target,
+ IN LONG Value);
+
+VPAPI
+LONG
+FASTCALL
+VideoPortInterlockedIncrement(
+ IN PLONG Addend);
+
+VPAPI
+ULONG
+NTAPI
+VideoPortInitialize(
+ IN PVOID Argument1,
+ IN PVOID Argument2,
+ IN PVIDEO_HW_INITIALIZATION_DATA HwInitializationData,
+ IN PVOID HwContext);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortInt10(
+ IN PVOID HwDeviceExtension,
+ IN PVIDEO_X86_BIOS_ARGUMENTS BiosArguments);
+
+VPAPI
+VOID
+NTAPI
+VideoPortLogError(
+ IN PVOID HwDeviceExtension,
+ IN PVIDEO_REQUEST_PACKET Vrp OPTIONAL,
+ IN VP_STATUS ErrorCode,
+ IN ULONG UniqueId);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortMapBankedMemory(
+ IN PVOID HwDeviceExtension,
+ IN PHYSICAL_ADDRESS PhysicalAddress,
+ IN OUT PULONG Length,
+ PULONG InIoSpace,
+ PVOID *VirtualAddress,
+ ULONG BankLength,
+ UCHAR ReadWriteBank,
+ PBANKED_SECTION_ROUTINE BankRoutine,
+ PVOID Context);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortMapMemory(
+ IN PVOID HwDeviceExtension,
+ IN PHYSICAL_ADDRESS PhysicalAddress,
+ IN OUT PULONG Length,
+ IN PULONG InIoSpace,
+ IN OUT PVOID *VirtualAddress);
+
+VPAPI
+VOID
+NTAPI
+VideoPortMoveMemory(
+ IN PVOID Destination,
+ IN PVOID Source,
+ IN ULONG Length);
+
+VPAPI
+LONGLONG
+NTAPI
+VideoPortQueryPerformanceCounter(
+ IN PVOID HwDeviceExtension,
+ OUT PLONGLONG PerformanceFrequency OPTIONAL);
VPAPI
VP_STATUS
@@ -1131,431 +1061,686 @@
IN OUT PINTERFACE Interface);
VPAPI
+BOOLEAN
+NTAPI
+VideoPortQueueDpc(
+ IN PVOID HwDeviceExtension,
+ IN PMINIPORT_DPC_ROUTINE CallbackRoutine,
+ IN PVOID Context);
+
+VPAPI
+VOID
+NTAPI
+VideoPortReadPortBufferUchar(
+ IN PUCHAR Port,
+ OUT PUCHAR Buffer,
+ IN ULONG Count);
+
+VPAPI
+VOID
+NTAPI
+VideoPortReadPortBufferUlong(
+ IN PULONG Port,
+ OUT PULONG Buffer,
+ IN ULONG Count);
+
+VPAPI
+VOID
+NTAPI
+VideoPortReadPortBufferUshort(
+ IN PUSHORT Port,
+ OUT PUSHORT Buffer,
+ IN ULONG Count);
+
+VPAPI
+UCHAR
+NTAPI
+VideoPortReadPortUchar(
+ IN PUCHAR Port);
+
+VPAPI
+ULONG
+NTAPI
+VideoPortReadPortUlong(
+ IN PULONG Port);
+
+VPAPI
+USHORT
+NTAPI
+VideoPortReadPortUshort(
+ IN PUSHORT Port);
+
+VPAPI
+VOID
+NTAPI
+VideoPortReadRegisterBufferUchar(
+ IN PUCHAR Register,
+ OUT PUCHAR Buffer,
+ IN ULONG Count);
+
+VPAPI
+VOID
+NTAPI
+VideoPortReadRegisterBufferUlong(
+ IN PULONG Register,
+ OUT PULONG Buffer,
+ IN ULONG Count);
+
+VPAPI
+VOID
+NTAPI
+VideoPortReadRegisterBufferUshort(
+ IN PUSHORT Register,
+ OUT PUSHORT Buffer,
+ IN ULONG Count);
+
+VPAPI
+UCHAR
+NTAPI
+VideoPortReadRegisterUchar(
+ IN PUCHAR Register);
+
+VPAPI
+ULONG
+NTAPI
+VideoPortReadRegisterUlong(
+ IN PULONG Register);
+
+VPAPI
+USHORT
+NTAPI
+VideoPortReadRegisterUshort(
+ IN PUSHORT Register);
+
+VPAPI
+VOID
+NTAPI
+VideoPortReleaseBuffer(
+ IN PVOID HwDeviceExtension,
+ IN PVOID Buffer);
+
+VPAPI
+VOID
+NTAPI
+VideoPortReleaseDeviceLock(
+ IN PVOID HwDeviceExtension);
+
+VPAPI
+BOOLEAN
+NTAPI
+VideoPortScanRom(
+ PVOID HwDeviceExtension,
+ PUCHAR RomBase,
+ ULONG RomLength,
+ PUCHAR String);
+
+VPAPI
+ULONG
+NTAPI
+VideoPortSetBusData(
+ IN PVOID HwDeviceExtension,
+ IN BUS_DATA_TYPE BusDataType,
+ IN ULONG SlotNumber,
+ IN PVOID Buffer,
+ IN ULONG Offset,
+ IN ULONG Length);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortSetRegistryParameters(
+ IN PVOID HwDeviceExtension,
+ IN PWSTR ValueName,
+ IN PVOID ValueData,
+ IN ULONG ValueLength);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortSetTrappedEmulatorPorts(
+ IN PVOID HwDeviceExtension,
+ IN ULONG NumAccessRanges,
+ IN PVIDEO_ACCESS_RANGE AccessRange);
+
+VPAPI
+VOID
+NTAPI
+VideoPortStallExecution(
+ IN ULONG Microseconds);
+
+VPAPI
+VOID
+NTAPI
+VideoPortStartTimer(
+ IN PVOID HwDeviceExtension);
+
+VPAPI
+VOID
+NTAPI
+VideoPortStopTimer(
+ IN PVOID HwDeviceExtension);
+
+VPAPI
+BOOLEAN
+NTAPI
+VideoPortSynchronizeExecution(
+ IN PVOID HwDeviceExtension,
+ IN VIDEO_SYNCHRONIZE_PRIORITY Priority,
+ IN PMINIPORT_SYNCHRONIZE_ROUTINE SynchronizeRoutine,
+ IN PVOID Context);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortUnmapMemory(
+ IN PVOID HwDeviceExtension,
+ IN OUT PVOID VirtualAddress,
+ IN HANDLE ProcessHandle);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortVerifyAccessRanges(
+ IN PVOID HwDeviceExtension,
+ IN ULONG NumAccessRanges,
+ IN PVIDEO_ACCESS_RANGE AccessRanges);
+
+VPAPI
+VOID
+NTAPI
+VideoPortWritePortBufferUchar(
+ IN PUCHAR Port,
+ IN PUCHAR Buffer,
+ IN ULONG Count);
+
+VPAPI
+VOID
+NTAPI
+VideoPortWritePortBufferUlong(
+ IN PULONG Port,
+ IN PULONG Buffer,
+ IN ULONG Count);
+
+VPAPI
+VOID
+NTAPI
+VideoPortWritePortBufferUshort(
+ IN PUSHORT Port,
+ IN PUSHORT Buffer,
+ IN ULONG Count);
+
+VPAPI
+VOID
+NTAPI
+VideoPortWritePortUchar(
+ IN PUCHAR Port,
+ IN UCHAR Value);
+
+VPAPI
+VOID
+NTAPI
+VideoPortWritePortUlong(
+ IN PULONG Port,
+ IN ULONG Value);
+
+VPAPI
+VOID
+NTAPI
+VideoPortWritePortUshort(
+ IN PUSHORT Port,
+ IN USHORT Value);
+
+VPAPI
+VOID
+NTAPI
+VideoPortWriteRegisterBufferUchar(
+ IN PUCHAR Register,
+ IN PUCHAR Buffer,
+ IN ULONG Count);
+
+VPAPI
+VOID
+NTAPI
+VideoPortWriteRegisterBufferUlong(
+ IN PULONG Register,
+ IN PULONG Buffer,
+ IN ULONG Count);
+
+VPAPI
+VOID
+NTAPI
+VideoPortWriteRegisterBufferUshort(
+ IN PUSHORT Register,
+ IN PUSHORT Buffer,
+ IN ULONG Count);
+
+VPAPI
+VOID
+NTAPI
+VideoPortWriteRegisterUchar(
+ IN PUCHAR Register,
+ IN UCHAR Value);
+
+VPAPI
+VOID
+NTAPI
+VideoPortWriteRegisterUlong(
+ IN PULONG Register,
+ IN ULONG Value);
+
+VPAPI
+VOID
+NTAPI
+VideoPortWriteRegisterUshort(
+ IN PUSHORT Register,
+ IN USHORT Value);
+
+VPAPI
+VOID
+NTAPI
+VideoPortZeroDeviceMemory(
+ IN PVOID Destination,
+ IN ULONG Length);
+
+VPAPI
+VOID
+NTAPI
+VideoPortZeroMemory(
+ IN PVOID Destination,
+ IN ULONG Length);
+
+VPAPI
+PVOID
+NTAPI
+VideoPortAllocateContiguousMemory(
+ IN PVOID HwDeviceExtension,
+ IN ULONG NumberOfBytes,
+ IN PHYSICAL_ADDRESS HighestAcceptableAddress);
+
+VPAPI
+PVOID
+NTAPI
+VideoPortGetCommonBuffer(
+ IN PVOID HwDeviceExtension,
+ IN ULONG DesiredLength,
+ IN ULONG Alignment,
+ OUT PPHYSICAL_ADDRESS LogicalAddress,
+ OUT PULONG pActualLength,
+ IN BOOLEAN CacheEnabled);
+
+VPAPI
+VOID
+NTAPI
+VideoPortFreeCommonBuffer(
+ IN PVOID HwDeviceExtension,
+ IN ULONG Length,
+ IN PVOID VirtualAddress,
+ IN PHYSICAL_ADDRESS LogicalAddress,
+ IN BOOLEAN CacheEnabled);
+
+VPAPI
+PDMA
+NTAPI
+VideoPortDoDma(
+ IN PVOID HwDeviceExtension,
+ IN PDMA pDma,
+ IN DMA_FLAGS DmaFlags);
+
+VPAPI
+BOOLEAN
+NTAPI
+VideoPortLockPages(
+ IN PVOID HwDeviceExtension,
+ IN OUT PVIDEO_REQUEST_PACKET pVrp,
+ IN OUT PEVENT pUEvent,
+ IN PEVENT pDisplayEvent,
+ IN DMA_FLAGS DmaFlags);
+
+VPAPI
+BOOLEAN
+NTAPI
+VideoPortUnlockPages(
+ IN PVOID hwDeviceExtension,
+ IN OUT PDMA pDma);
+
+VPAPI
+BOOLEAN
+NTAPI
+VideoPortSignalDmaComplete(
+ IN PVOID HwDeviceExtension,
+ IN PDMA pDmaHandle);
+
+VPAPI
+PVOID
+NTAPI
+VideoPortGetMdl(
+ IN PVOID HwDeviceExtension,
+ IN PDMA pDma);
+
+VPAPI
+PVOID
+NTAPI
+VideoPortGetDmaContext(
+ IN PVOID HwDeviceExtension,
+ IN PDMA pDma);
+
+VPAPI
+VOID
+NTAPI
+VideoPortSetDmaContext(
+ IN PVOID HwDeviceExtension,
+ OUT PDMA pDma,
+ IN PVOID InstanceContext);
+
+VPAPI
+ULONG
+NTAPI
+VideoPortGetBytesUsed(
+ IN PVOID HwDeviceExtension,
+ IN PDMA pDma);
+
+VPAPI
+VOID
+NTAPI
+VideoPortSetBytesUsed(
+ IN PVOID HwDeviceExtension,
+ IN OUT PDMA pDma,
+ IN ULONG BytesUsed);
+
+VPAPI
+PDMA
+NTAPI
+VideoPortAssociateEventsWithDmaHandle(
+ IN PVOID HwDeviceExtension,
+ IN OUT PVIDEO_REQUEST_PACKET pVrp,
+ IN PVOID MappedUserEvent,
+ IN PVOID DisplayDriverEvent);
+
+VPAPI
+PDMA
+NTAPI
+VideoPortMapDmaMemory(
+ IN PVOID HwDeviceExtension,
+ IN PVIDEO_REQUEST_PACKET pVrp,
+ IN PHYSICAL_ADDRESS BoardAddress,
+ IN PULONG Length,
+ IN PULONG InIoSpace,
+ IN PVOID MappedUserEvent,
+ IN PVOID DisplayDriverEvent,
+ IN OUT PVOID *VirtualAddress);
+
+VPAPI
+BOOLEAN
+NTAPI
+VideoPortUnmapDmaMemory(
+ IN PVOID HwDeviceExtension,
+ IN PVOID VirtualAddress,
+ IN HANDLE ProcessHandle,
+ IN PDMA BoardMemoryHandle);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortCreateSecondaryDisplay(
+ IN PVOID HwDeviceExtension,
+ IN OUT PVOID *SecondaryDeviceExtension,
+ IN ULONG ulFlag);
+
+VPAPI
+PVP_DMA_ADAPTER
+NTAPI
+VideoPortGetDmaAdapter(
+ IN PVOID HwDeviceExtension,
+ IN PVP_DEVICE_DESCRIPTION VpDeviceDescription);
+
+VPAPI
+VOID
+NTAPI
+VideoPortPutDmaAdapter(
+ IN PVOID HwDeviceExtension,
+ IN PVP_DMA_ADAPTER VpDmaAdapter);
+
+VPAPI
+PVOID
+NTAPI
+VideoPortAllocateCommonBuffer(
+ IN PVOID HwDeviceExtension,
+ IN PVP_DMA_ADAPTER VpDmaAdapter,
+ IN ULONG DesiredLength,
+ OUT PPHYSICAL_ADDRESS LogicalAddress,
+ IN BOOLEAN CacheEnabled,
+ PVOID Reserved);
+
+VPAPI
+VOID
+NTAPI
+VideoPortReleaseCommonBuffer(
+ IN PVOID HwDeviceExtension,
+ IN PVP_DMA_ADAPTER VpDmaAdapter,
+ IN ULONG Length,
+ IN PHYSICAL_ADDRESS LogicalAddress,
+ IN PVOID VirtualAddress,
+ IN BOOLEAN CacheEnabled);
+
+VPAPI
+PVOID
+NTAPI
+VideoPortLockBuffer(
+ IN PVOID HwDeviceExtension,
+ IN PVOID BaseAddress,
+ IN ULONG Length,
+ IN VP_LOCK_OPERATION Operation);
+
+VPAPI
+VOID
+NTAPI
+VideoPortUnLockBuffer(
+ IN PVOID HwDeviceExtension,
+ IN PVOID Mdl);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortStartDma(
+ IN PVOID HwDeviceExtension,
+ IN PVP_DMA_ADAPTER VpDmaAdapter,
+ IN PVOID Mdl,
+ IN ULONG Offset,
+ IN OUT PULONG pLength,
+ IN PEXECUTE_DMA ExecuteDmaRoutine,
+ IN PVOID Context,
+ IN BOOLEAN WriteToDevice);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortCompleteDma(
+ IN PVOID HwDeviceExtension,
+ IN PVP_DMA_ADAPTER VpDmaAdapter,
+ IN PVP_SCATTER_GATHER_LIST VpScatterGather,
+ IN BOOLEAN WriteToDevice);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortCreateEvent(
+ IN PVOID HwDeviceExtension,
+ IN ULONG EventFlag,
+ IN PVOID Unused,
+ OUT PEVENT *ppEvent);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortDeleteEvent(
+ IN PVOID HwDeviceExtension,
+ IN PEVENT pEvent);
+
+VPAPI
+LONG
+NTAPI
+VideoPortSetEvent(
+ IN PVOID HwDeviceExtension,
+ IN PEVENT pEvent);
+
+VPAPI
+VOID
+NTAPI
+VideoPortClearEvent(
+ IN PVOID HwDeviceExtension,
+ IN PEVENT pEvent);
+
+VPAPI
+LONG
+NTAPI
+VideoPortReadStateEvent(
+ IN PVOID HwDeviceExtension,
+ IN PEVENT pEvent);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortWaitForSingleObject(
+ IN PVOID HwDeviceExtension,
+ IN PVOID Object,
+ IN PLARGE_INTEGER Timeout OPTIONAL);
+
+VPAPI
+PVOID
+NTAPI
+VideoPortAllocatePool(
+ IN PVOID HwDeviceExtension,
+ IN VP_POOL_TYPE PoolType,
+ IN SIZE_T NumberOfBytes,
+ IN ULONG Tag);
+
+VPAPI
+VOID
+NTAPI
+VideoPortFreePool(
+ IN PVOID HwDeviceExtension,
+ IN PVOID Ptr);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortCreateSpinLock(
+ IN PVOID HwDeviceExtension,
+ OUT PSPIN_LOCK *SpinLock);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortDeleteSpinLock(
+ IN PVOID HwDeviceExtension,
+ IN PSPIN_LOCK SpinLock);
+
+VPAPI
+VOID
+NTAPI
+VideoPortAcquireSpinLock(
+ IN PVOID HwDeviceExtension,
+ IN PSPIN_LOCK SpinLock,
+ OUT PUCHAR OldIrql);
+
+VPAPI
+VOID
+NTAPI
+VideoPortAcquireSpinLockAtDpcLevel(
+ IN PVOID HwDeviceExtension,
+ IN PSPIN_LOCK SpinLock);
+
+VPAPI
+VOID
+NTAPI
+VideoPortReleaseSpinLock(
+ IN PVOID HwDeviceExtension,
+ IN PSPIN_LOCK SpinLock,
+ IN UCHAR NewIrql);
+
+VPAPI
+VOID
+NTAPI
+VideoPortReleaseSpinLockFromDpcLevel(
+ IN PVOID HwDeviceExtension,
+ IN PSPIN_LOCK SpinLock);
+
+VPAPI
VOID
NTAPI
VideoPortQuerySystemTime(
- OUT PLARGE_INTEGER CurrentTime);
+ OUT PLARGE_INTEGER CurrentTime);
VPAPI
BOOLEAN
NTAPI
-VideoPortIsNoVesa(
- VOID
-);
+VideoPortCheckForDeviceExistence(
+ IN PVOID HwDeviceExtension,
+ IN USHORT VendorId,
+ IN USHORT DeviceId,
+ IN UCHAR RevisionId,
+ IN USHORT SubVendorId,
+ IN USHORT SubSystemId,
+ IN ULONG Flags);
+
+VPAPI
+ULONG
+NTAPI
+VideoPortGetAssociatedDeviceID(
+ IN PVOID DeviceObject);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortFlushRegistry(
+ PVOID HwDeviceExtension);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortGetVersion(
+ IN PVOID HwDeviceExtension,
+ IN OUT PVPOSVERSIONINFO pVpOsVersionInfo);
VPAPI
BOOLEAN
NTAPI
-VideoPortQueueDpc(
- IN PVOID HwDeviceExtension,
- IN PMINIPORT_DPC_ROUTINE CallbackRoutine,
- IN PVOID Context);
-
-VPAPI
-VOID
-NTAPI
-VideoPortReadPortBufferUchar(
- IN PUCHAR Port,
- OUT PUCHAR Buffer,
- IN ULONG Count);
-
-VPAPI
-VOID
-NTAPI
-VideoPortReadPortBufferUlong(
- IN PULONG Port,
- OUT PULONG Buffer,
- IN ULONG Count);
-
-VPAPI
-VOID
-NTAPI
-VideoPortReadPortBufferUshort(
- IN PUSHORT Port,
- OUT PUSHORT Buffer,
- IN ULONG Count);
-
-VPAPI
-UCHAR
-NTAPI
-VideoPortReadPortUchar(
- IN PUCHAR Port);
-
-VPAPI
-ULONG
-NTAPI
-VideoPortReadPortUlong(
- IN PULONG Port);
-
-VPAPI
-USHORT
-NTAPI
-VideoPortReadPortUshort(
- IN PUSHORT Port);
-
-VPAPI
-VOID
-NTAPI
-VideoPortReadRegisterBufferUchar(
- IN PUCHAR Register,
- OUT PUCHAR Buffer,
- IN ULONG Count);
-
-VPAPI
-VOID
-NTAPI
-VideoPortReadRegisterBufferUlong(
- IN PULONG Register,
- OUT PULONG Buffer,
- IN ULONG Count);
-
-VPAPI
-VOID
-NTAPI
-VideoPortReadRegisterBufferUshort(
- IN PUSHORT Register,
- OUT PUSHORT Buffer,
- IN ULONG Count);
-
-VPAPI
-UCHAR
-NTAPI
-VideoPortReadRegisterUchar(
- IN PUCHAR Register);
-
-VPAPI
-ULONG
-NTAPI
-VideoPortReadRegisterUlong(
- IN PULONG Register);
-
-VPAPI
-USHORT
-NTAPI
-VideoPortReadRegisterUshort(
- IN PUSHORT Register);
-
-VPAPI
-LONG
-NTAPI
-VideoPortReadStateEvent(
- IN PVOID HwDeviceExtension,
- IN PEVENT pEvent);
-
-VPAPI
-VOID
-NTAPI
-VideoPortReleaseBuffer(
- IN PVOID HwDeviceExtension,
- IN PVOID Buffer);
-
-VPAPI
-VOID
-NTAPI
-VideoPortReleaseCommonBuffer(
- IN PVOID HwDeviceExtension,
- IN PVP_DMA_ADAPTER VpDmaAdapter,
- IN ULONG Length,
- IN PHYSICAL_ADDRESS LogicalAddress,
- IN PVOID VirtualAddress,
- IN BOOLEAN CacheEnabled);
-
-VPAPI
-VOID
-NTAPI
-VideoPortReleaseDeviceLock(
- IN PVOID HwDeviceExtension);
-
-VPAPI
-VOID
-NTAPI
-VideoPortReleaseSpinLock(
- IN PVOID HwDeviceExtension,
- IN PSPIN_LOCK SpinLock,
- IN UCHAR NewIrql);
-
-VPAPI
-VOID
-NTAPI
-VideoPortReleaseSpinLockFromDpcLevel(
- IN PVOID HwDeviceExtension,
- IN PSPIN_LOCK SpinLock);
+VideoPortIsNoVesa(VOID);
+
+VPAPI
+VP_STATUS
+NTAPI
+VideoPortRegisterBugcheckCallback(
+ IN PVOID HwDeviceExtension,
+ IN ULONG BugcheckCode,
+ IN PVIDEO_BUGCHECK_CALLBACK Callback,
+ IN ULONG BugcheckDataSize);
+
+VPAPI
+PVIDEO_DEBUG_REPORT
+NTAPI
+VideoPortDbgReportCreate(
+ IN PVOID HwDeviceExtension,
+ IN ULONG ulCode,
+ IN ULONG_PTR ulpArg1,
+ IN ULONG_PTR ulpArg2,
+ IN ULONG_PTR ulpArg3,
+ IN ULONG_PTR ulpArg4);
VPAPI
BOOLEAN
NTAPI
-VideoPortScanRom(
- PVOID HwDeviceExtension,
- PUCHAR RomBase,
- ULONG RomLength,
- PUCHAR String);
-
-VPAPI
-ULONG
-NTAPI
-VideoPortSetBusData(
- IN PVOID HwDeviceExtension,
- IN BUS_DATA_TYPE BusDataType,
- IN ULONG SlotNumber,
- IN PVOID Buffer,
- IN ULONG Offset,
- IN ULONG Length);
-
-VPAPI
-VOID
-NTAPI
-VideoPortSetBytesUsed(
- IN PVOID HwDeviceExtension,
- IN OUT PDMA pDma,
- IN ULONG BytesUsed);
-
-VPAPI
-VOID
-NTAPI
-VideoPortSetDmaContext(
- IN PVOID HwDeviceExtension,
- OUT PDMA pDma,
- IN PVOID InstanceContext);
-
-VPAPI
-LONG
-NTAPI
-VideoPortSetEvent(
- IN PVOID HwDeviceExtension,
- IN PEVENT pEvent);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortSetRegistryParameters(
- IN PVOID HwDeviceExtension,
- IN PWSTR ValueName,
- IN PVOID ValueData,
- IN ULONG ValueLength);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortSetTrappedEmulatorPorts(
- IN PVOID HwDeviceExtension,
- IN ULONG NumAccessRanges,
- IN PVIDEO_ACCESS_RANGE AccessRange);
-
-VPAPI
-BOOLEAN
-NTAPI
-VideoPortSignalDmaComplete(
- IN PVOID HwDeviceExtension,
- IN PDMA pDmaHandle);
-
-VPAPI
-VOID
-NTAPI
-VideoPortStallExecution(
- IN ULONG Microseconds);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortStartDma(
- IN PVOID HwDeviceExtension,
- IN PVP_DMA_ADAPTER VpDmaAdapter,
- IN PVOID Mdl,
- IN ULONG Offset,
- IN OUT PULONG pLength,
- IN PEXECUTE_DMA ExecuteDmaRoutine,
- IN PVOID Context,
- IN BOOLEAN WriteToDevice);
-
-VPAPI
-VOID
-NTAPI
-VideoPortStartTimer(
- IN PVOID HwDeviceExtension);
-
-VPAPI
-VOID
-NTAPI
-VideoPortStopTimer(
- IN PVOID HwDeviceExtension);
-
-/* VideoPortSynchronizeExecution.Priority constants */
-typedef enum VIDEO_SYNCHRONIZE_PRIORITY {
- VpLowPriority = 0,
- VpMediumPriority,
- VpHighPriority
-} VIDEO_SYNCHRONIZE_PRIORITY, *PVIDEO_SYNCHRONIZE_PRIORITY;
-
-VPAPI
-BOOLEAN
-NTAPI
-VideoPortSynchronizeExecution(
- IN PVOID HwDeviceExtension,
- IN VIDEO_SYNCHRONIZE_PRIORITY Priority,
- IN PMINIPORT_SYNCHRONIZE_ROUTINE SynchronizeRoutine,
- IN PVOID Context);
-
-VPAPI
-VOID
-NTAPI
-VideoPortUnLockBuffer(
- IN PVOID HwDeviceExtension,
- IN PVOID Mdl);
-
-VPAPI
-BOOLEAN
-NTAPI
-VideoPortUnlockPages(
- IN PVOID hwDeviceExtension,
- IN OUT PDMA pDma);
-
-VPAPI
-BOOLEAN
-NTAPI
-VideoPortUnmapDmaMemory(
- IN PVOID HwDeviceExtension,
- IN PVOID VirtualAddress,
- IN HANDLE ProcessHandle,
- IN PDMA BoardMemoryHandle);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortUnmapMemory(
- IN PVOID HwDeviceExtension,
- IN OUT PVOID VirtualAddress,
- IN HANDLE ProcessHandle);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortVerifyAccessRanges(
- IN PVOID HwDeviceExtension,
- IN ULONG NumAccessRanges,
- IN PVIDEO_ACCESS_RANGE AccessRanges);
-
-VPAPI
-VP_STATUS
-NTAPI
-VideoPortWaitForSingleObject(
- IN PVOID HwDeviceExtension,
- IN PVOID Object,
- IN PLARGE_INTEGER Timeout OPTIONAL);
-
-VPAPI
-VOID
-NTAPI
-VideoPortWritePortBufferUchar(
- IN PUCHAR Port,
- IN PUCHAR Buffer,
- IN ULONG Count);
-
-VPAPI
-VOID
-NTAPI
-VideoPortWritePortBufferUlong(
- IN PULONG Port,
- IN PULONG Buffer,
- IN ULONG Count);
-
-VPAPI
-VOID
-NTAPI
-VideoPortWritePortBufferUshort(
- IN PUSHORT Port,
- IN PUSHORT Buffer,
- IN ULONG Count);
-
-VPAPI
-VOID
-NTAPI
-VideoPortWritePortUchar(
- IN PUCHAR Port,
- IN UCHAR Value);
-
-VPAPI
-VOID
-NTAPI
-VideoPortWritePortUlong(
- IN PULONG Port,
- IN ULONG Value);
-
-VPAPI
-VOID
-NTAPI
-VideoPortWritePortUshort(
- IN PUSHORT Port,
- IN USHORT Value);
-
-VPAPI
-VOID
-NTAPI
-VideoPortWriteRegisterBufferUchar(
- IN PUCHAR Register,
- IN PUCHAR Buffer,
- IN ULONG Count);
-
-VPAPI
-VOID
-NTAPI
-VideoPortWriteRegisterBufferUlong(
- IN PULONG Register,
- IN PULONG Buffer,
- IN ULONG Count);
-
-VPAPI
-VOID
-NTAPI
-VideoPortWriteRegisterBufferUshort(
- IN PUSHORT Register,
- IN PUSHORT Buffer,
- IN ULONG Count);
-
-VPAPI
-VOID
-NTAPI
-VideoPortWriteRegisterUchar(
- IN PUCHAR Register,
- IN UCHAR Value);
-
-VPAPI
-VOID
-NTAPI
-VideoPortWriteRegisterUlong(
- IN PULONG Register,
- IN ULONG Value);
-
-VPAPI
-VOID
-NTAPI
-VideoPortWriteRegisterUshort(
- IN PUSHORT Register,
- IN USHORT Value);
-
-VPAPI
-VOID
-NTAPI
-VideoPortZeroDeviceMemory(
- IN PVOID Destination,
- IN ULONG Length);
-
-VPAPI
-VOID
-NTAPI
-VideoPortZeroMemory(
- IN PVOID Destination,
- IN ULONG Length);
-
-#if DBG
-#define VideoDebugPrint(x) VideoPortDebugPrint x
-#else
-#define VideoDebugPrint(x)
-#endif
+VideoPortDbgReportSecondaryData(
+ IN OUT PVIDEO_DEBUG_REPORT pReport,
+ IN PVOID pvData,
+ IN ULONG ulDataSize);
+
+VPAPI
+VOID
+NTAPI
+VideoPortDbgReportComplete(
+ IN OUT PVIDEO_DEBUG_REPORT pReport);
#ifdef __cplusplus
}
#endif
-
-#endif /* defined _WINDDI_ */
-
-#endif /* __VIDEO_H__ */
Modified: branches/header-work/include/ddk/videoagp.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/videoag…
==============================================================================
--- branches/header-work/include/ddk/videoagp.h [iso-8859-1] (original)
+++ branches/header-work/include/ddk/videoagp.h [iso-8859-1] Wed Apr 21 03:33:08 2010
@@ -20,10 +20,7 @@
*
*/
-#ifndef __VIDEOAGP_H__
-#define __VIDEOAGP_H__
-
-#include "video.h"
+#pragma once
#ifdef __cplusplus
extern "C" {
@@ -42,82 +39,79 @@
typedef BOOLEAN
(NTAPI *PAGP_COMMIT_PHYSICAL)(
- IN PVOID HwDeviceExtension,
- IN PVOID PhysicalReserveContext,
- IN ULONG Pages,
- IN ULONG Offset);
+ IN PVOID HwDeviceExtension,
+ IN PVOID PhysicalReserveContext,
+ IN ULONG Pages,
+ IN ULONG Offset);
typedef PVOID
(NTAPI *PAGP_COMMIT_VIRTUAL)(
- IN PVOID HwDeviceExtension,
- IN PVOID VirtualReserveContext,
- IN ULONG Pages,
- IN ULONG Offset);
+ IN PVOID HwDeviceExtension,
+ IN PVOID VirtualReserveContext,
+ IN ULONG Pages,
+ IN ULONG Offset);
typedef VOID
(NTAPI *PAGP_FREE_PHYSICAL)(
- IN PVOID HwDeviceExtension,
- IN PVOID PhysicalReserveContext,
- IN ULONG Pages,
- IN ULONG Offset);
+ IN PVOID HwDeviceExtension,
+ IN PVOID PhysicalReserveContext,
+ IN ULONG Pages,
+ IN ULONG Offset);
typedef VOID
(NTAPI *PAGP_FREE_VIRTUAL)(
- IN PVOID HwDeviceExtension,
- IN PVOID VirtualReserveContext,
- IN ULONG Pages,
- IN ULONG Offset);
+ IN PVOID HwDeviceExtension,
+ IN PVOID VirtualReserveContext,
+ IN ULONG Pages,
+ IN ULONG Offset);
typedef VOID
(NTAPI *PAGP_RELEASE_PHYSICAL)(
- IN PVOID HwDeviceExtension,
- IN PVOID PhysicalReserveContext);
+ IN PVOID HwDeviceExtension,
+ IN PVOID PhysicalReserveContext);
typedef VOID
(NTAPI *PAGP_RELEASE_VIRTUAL)(
- IN PVOID HwDeviceExtension,
- IN PVOID VirtualReserveContext);
+ IN PVOID HwDeviceExtension,
+ IN PVOID VirtualReserveContext);
typedef PHYSICAL_ADDRESS
(NTAPI *PAGP_RESERVE_PHYSICAL)(
- IN PVOID HwDeviceExtension,
- IN ULONG Pages,
+ IN PVOID HwDeviceExtension,
+ IN ULONG Pages,
IN VIDEO_PORT_CACHE_TYPE Caching,
- OUT PVOID *PhysicalReserveContext);
+ OUT PVOID *PhysicalReserveContext);
typedef PVOID
(NTAPI *PAGP_RESERVE_VIRTUAL)(
- IN PVOID HwDeviceExtension,
- IN HANDLE ProcessHandle,
- IN PVOID PhysicalReserveContext,
- OUT PVOID *VirtualReserveContext);
+ IN PVOID HwDeviceExtension,
+ IN HANDLE ProcessHandle,
+ IN PVOID PhysicalReserveContext,
+ OUT PVOID *VirtualReserveContext);
typedef BOOLEAN
(NTAPI *PAGP_SET_RATE)(
- IN PVOID HwDeviceExtension,
- IN ULONG AgpRate);
+ IN PVOID HwDeviceExtension,
+ IN ULONG AgpRate);
typedef struct _VIDEO_PORT_AGP_SERVICES {
- PAGP_RESERVE_PHYSICAL AgpReservePhysical;
- PAGP_RELEASE_PHYSICAL AgpReleasePhysical;
- PAGP_COMMIT_PHYSICAL AgpCommitPhysical;
- PAGP_FREE_PHYSICAL AgpFreePhysical;
- PAGP_RESERVE_VIRTUAL AgpReserveVirtual;
- PAGP_RELEASE_VIRTUAL AgpReleaseVirtual;
- PAGP_COMMIT_VIRTUAL AgpCommitVirtual;
- PAGP_FREE_VIRTUAL AgpFreeVirtual;
- ULONGLONG AllocationLimit;
+ PAGP_RESERVE_PHYSICAL AgpReservePhysical;
+ PAGP_RELEASE_PHYSICAL AgpReleasePhysical;
+ PAGP_COMMIT_PHYSICAL AgpCommitPhysical;
+ PAGP_FREE_PHYSICAL AgpFreePhysical;
+ PAGP_RESERVE_VIRTUAL AgpReserveVirtual;
+ PAGP_RELEASE_VIRTUAL AgpReleaseVirtual;
+ PAGP_COMMIT_VIRTUAL AgpCommitVirtual;
+ PAGP_FREE_VIRTUAL AgpFreeVirtual;
+ ULONGLONG AllocationLimit;
} VIDEO_PORT_AGP_SERVICES, *PVIDEO_PORT_AGP_SERVICES;
-VPAPI
BOOLEAN
NTAPI
VideoPortGetAgpServices(
- IN PVOID HwDeviceExtension,
- IN PVIDEO_PORT_AGP_SERVICES AgpServices);
+ IN PVOID HwDeviceExtension,
+ IN PVIDEO_PORT_AGP_SERVICES AgpServices);
#ifdef __cplusplus
}
#endif
-
-#endif /* __VIDEOAGP_H__ */