📄 video.h
字号:
/*IN*/ PVOID HwDeviceExtension, /*IN*/ PI2C_CALLBACKS I2CCallbacks, /*IN*/ PUCHAR Buffer, /*IN*/ ULONG Length);typedef BOOLEAN DDKAPI(*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 1typedef VP_STATUS DDKAPI(*PINT10_ALLOCATE_BUFFER)( /*IN*/ PVOID Context, /*OUT*/ PUSHORT Seg, /*OUT*/ PUSHORT Off, /*IN OUT*/ PULONG Length);typedef VP_STATUS DDKAPI(*PINT10_CALL_BIOS)( /*IN*/ PVOID Context, /*IN OUT*/ PINT10_BIOS_ARGUMENTS BiosArguments);typedef VP_STATUS DDKAPI(*PINT10_FREE_BUFFER)( /*IN*/ PVOID Context, /*IN*/ USHORT Seg, /*IN*/ USHORT Off);typedef VP_STATUS DDKAPI(*PINT10_READ_MEMORY)( /*IN*/ PVOID Context, /*IN*/ USHORT Seg, /*IN*/ USHORT Off, /*OUT*/ PVOID Buffer, /*IN*/ ULONG Length);typedef VP_STATUS DDKAPI(*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 0x08typedef 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 */VPAPIVOIDDDKAPIVideoDebugPrint( /*IN*/ ULONG DebugPrintLevel, /*IN*/ PCHAR DebugMessage, /*IN*/ ...);VPAPIVOIDDDKAPIVideoPortAcquireDeviceLock( /*IN*/ PVOID HwDeviceExtension);VPAPIVOIDDDKAPIVideoPortAcquireSpinLock( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PSPIN_LOCK SpinLock, /*OUT*/ PUCHAR OldIrql);VPAPIVOIDDDKAPIVideoPortAcquireSpinLockAtDpcLevel( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PSPIN_LOCK SpinLock);VPAPIVP_STATUSDDKAPIVideoPortAllocateBuffer( /*IN*/ PVOID HwDeviceExtension, /*IN*/ ULONG Size, /*OUT*/ PVOID *Buffer);VPAPIPVOIDDDKAPIVideoPortAllocateCommonBuffer( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PVP_DMA_ADAPTER VpDmaAdapter, /*IN*/ ULONG DesiredLength, /*OUT*/ PPHYSICAL_ADDRESS LogicalAddress, /*IN*/ BOOLEAN CacheEnabled, PVOID Reserved);VPAPIPVOIDDDKAPIVideoPortAllocateContiguousMemory( /*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;VPAPIPVOIDDDKAPIVideoPortAllocatePool( /*IN*/ PVOID HwDeviceExtension, /*IN*/ VP_POOL_TYPE PoolType, /*IN*/ SIZE_T NumberOfBytes, /*IN*/ ULONG Tag);VPAPIPDMADDKAPIVideoPortAssociateEventsWithDmaHandle( /*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 0x00000002VPAPIBOOLEANDDKAPIVideoPortCheckForDeviceExistence( /*IN*/ PVOID HwDeviceExtension, /*IN*/ USHORT VendorId, /*IN*/ USHORT DeviceId, /*IN*/ UCHAR RevisionId, /*IN*/ USHORT SubVendorId, /*IN*/ USHORT SubSystemId, /*IN*/ ULONG Flags);VPAPIVOIDDDKAPIVideoPortClearEvent( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PEVENT pEvent);VPAPIULONGDDKAPIVideoPortCompareMemory( /*IN*/ PVOID Source1, /*IN*/ PVOID Source2, /*IN*/ ULONG Length);VPAPIVP_STATUSDDKAPIVideoPortCompleteDma( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PVP_DMA_ADAPTER VpDmaAdapter, /*IN*/ PVP_SCATTER_GATHER_LIST VpScatterGather, /*IN*/ BOOLEAN WriteToDevice);VPAPIVP_STATUSDDKAPIVideoPortCreateEvent( /*IN*/ PVOID HwDeviceExtension, /*IN*/ ULONG EventFlag, /*IN*/ PVOID Unused, /*OUT*/ PEVENT *ppEvent);VPAPIVP_STATUSDDKAPIVideoPortCreateSecondaryDisplay( /*IN*/ PVOID HwDeviceExtension, /*IN OUT*/ PVOID *SecondaryDeviceExtension, /*IN*/ ULONG ulFlag);VPAPIVP_STATUSDDKAPIVideoPortCreateSpinLock( /*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;VPAPIBOOLEANDDKAPIVideoPortDDCMonitorHelper( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PVOID DDCControl, /*IN OUT*/ PUCHAR EdidBuffer, /*IN*/ ULONG EdidBufferSize);VPAPIVOIDDDKCDECLAPIVideoPortDebugPrint( /*IN*/ VIDEO_DEBUG_LEVEL DebugPrintLevel, /*IN*/ PCHAR DebugMessage, /*IN*/ ...);VPAPIVP_STATUSDDKAPIVideoPortDeleteEvent( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PEVENT pEvent);VPAPIVP_STATUSDDKAPIVideoPortDeleteSpinLock( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PSPIN_LOCK SpinLock);VPAPIVP_STATUSDDKAPIVideoPortDisableInterrupt( /*IN*/ PVOID HwDeviceExtension);VPAPIPDMADDKAPIVideoPortDoDma( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PDMA pDma, /*IN*/ DMA_FLAGS DmaFlags);VPAPIVP_STATUSDDKAPIVideoPortEnableInterrupt( /*IN*/ PVOID HwDeviceExtension);VPAPIVP_STATUSDDKAPIVideoPortEnumerateChildren( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PVOID Reserved);VPAPIVOIDDDKAPIVideoPortFreeCommonBuffer( /*IN*/ PVOID HwDeviceExtension, /*IN*/ ULONG Length, /*IN*/ PVOID VirtualAddress, /*IN*/ PHYSICAL_ADDRESS LogicalAddress, /*IN*/ BOOLEAN CacheEnabled);VPAPIVOIDDDKAPIVideoPortFreeDeviceBase( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PVOID MappedAddress);VPAPIVOIDDDKAPIVideoPortFreePool( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PVOID Ptr);VPAPIVP_STATUSDDKAPIVideoPortGetAccessRanges( /*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);VPAPIPVOIDDDKAPIVideoPortGetAssociatedDeviceExtension( /*IN*/ PVOID DeviceObject);VPAPIULONGDDKAPIVideoPortGetAssociatedDeviceID( /*IN*/ PVOID DeviceObject);VPAPIULONGDDKAPIVideoPortGetBusData( /*IN*/ PVOID HwDeviceExtension, /*IN*/ BUS_DATA_TYPE BusDataType, /*IN*/ ULONG SlotNumber, /*IN OUT*/ PVOID Buffer, /*IN*/ ULONG Offset, /*IN*/ ULONG Length);VPAPIULONGDDKAPIVideoPortGetBytesUsed( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PDMA pDma);VPAPIPVOIDDDKAPIVideoPortGetCommonBuffer( /*IN*/ PVOID HwDeviceExtension, /*IN*/ ULONG DesiredLength, /*IN*/ ULONG Alignment, /*OUT*/ PPHYSICAL_ADDRESS LogicalAddress, /*OUT*/ PULONG pActualLength, /*IN*/ BOOLEAN CacheEnabled);VPAPIUCHARDDKAPIVideoPortGetCurrentIrql( VOID);VPAPIPVOIDDDKAPIVideoPortGetDeviceBase( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PHYSICAL_ADDRESS IoAddress, /*IN*/ ULONG NumberOfUchars, /*IN*/ UCHAR InIoSpace);VPAPIVP_STATUSDDKAPIVideoPortGetDeviceData( /*IN*/ PVOID HwDeviceExtension, /*IN*/ VIDEO_DEVICE_DATA_TYPE DeviceDataType, /*IN*/ PMINIPORT_QUERY_DEVICE_ROUTINE CallbackRoutine, /*IN*/ PVOID Context);VPAPIPVP_DMA_ADAPTERDDKAPIVideoPortGetDmaAdapter( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PVP_DEVICE_DESCRIPTION VpDeviceDescription);VPAPIPVOIDDDKAPIVideoPortGetDmaContext( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PDMA pDma);VPAPIPVOIDDDKAPIVideoPortGetMdl( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PDMA pDma);VPAPIVP_STATUSDDKAPIVideoPortGetRegistryParameters( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PWSTR ParameterName, /*IN*/ UCHAR IsParameterFileName, /*IN*/ PMINIPORT_GET_REGISTRY_ROUTINE CallbackRoutine, /*IN*/ PVOID Context);VPAPIPVOIDDDKAPIVideoPortGetRomImage( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PVOID Unused1, /*IN*/ ULONG Unused2, /*IN*/ ULONG Length);VPAPIVP_STATUSDDKAPIVideoPortGetVersion( /*IN*/ PVOID HwDeviceExtension, /*IN OUT*/ PVPOSVERSIONINFO pVpOsVersionInfo);VPAPIVP_STATUSDDKAPIVideoPortGetVgaStatus( /*IN*/ PVOID HwDeviceExtension, /*OUT*/ PULONG VgaStatus);VPAPIULONGDDKAPIVideoPortInitialize( /*IN*/ PVOID Argument1, /*IN*/ PVOID Argument2, /*IN*/ PVIDEO_HW_INITIALIZATION_DATA HwInitializationData, /*IN*/ PVOID HwContext);VPAPIVP_STATUSDDKAPIVideoPortInt10( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PVIDEO_X86_BIOS_ARGUMENTS BiosArguments);VPAPILONGDDKFASTAPIVideoPortInterlockedDecrement( /*IN*/ PLONG Addend);VPAPILONGDDKFASTAPIVideoPortInterlockedExchange( /*IN OUT*/ PLONG Target, /*IN*/ LONG Value);VPAPILONGDDKFASTAPIVideoPortInterlockedIncrement( /*IN*/ PLONG Addend);typedef enum _VP_LOCK_OPERATION { VpReadAccess = 0, VpWriteAccess, VpModifyAccess} VP_LOCK_OPERATION;VPAPIPVOIDDDKAPIVideoPortLockBuffer( /*IN*/ PVOID HwDeviceExtension,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -