📄 video.h
字号:
/*IN*/ PVOID BaseAddress,
/*IN*/ ULONG Length,
/*IN*/ VP_LOCK_OPERATION Operation);
VPAPI
BOOLEAN
DDKAPI
VideoPortLockPages(
/*IN*/ PVOID HwDeviceExtension,
/*IN OUT*/ PVIDEO_REQUEST_PACKET pVrp,
/*IN OUT*/ PEVENT pUEvent,
/*IN*/ PEVENT pDisplayEvent,
/*IN*/ DMA_FLAGS DmaFlags);
VPAPI
VOID
DDKAPI
VideoPortLogError(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ PVIDEO_REQUEST_PACKET Vrp /*OPTIONAL*/,
/*IN*/ VP_STATUS ErrorCode,
/*IN*/ ULONG UniqueId);
VPAPI
VP_STATUS
DDKAPI
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
DDKAPI
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
DDKAPI
VideoPortMapMemory(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ PHYSICAL_ADDRESS PhysicalAddress,
/*IN OUT*/ PULONG Length,
/*IN*/ PULONG InIoSpace,
/*IN OUT*/ PVOID *VirtualAddress);
VPAPI
VOID
DDKAPI
VideoPortMoveMemory(
/*IN*/ PVOID Destination,
/*IN*/ PVOID Source,
/*IN*/ ULONG Length);
VPAPI
VOID
DDKAPI
VideoPortPutDmaAdapter(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ PVP_DMA_ADAPTER VpDmaAdapter);
VPAPI
LONGLONG
DDKAPI
VideoPortQueryPerformanceCounter(
/*IN*/ PVOID HwDeviceExtension,
/*OUT*/ PLONGLONG PerformanceFrequency /*OPTIONAL*/);
/* VideoPortQueryServices.ServicesType constants */
typedef enum _VIDEO_PORT_SERVICES {
VideoPortServicesAGP = 1,
VideoPortServicesI2C,
VideoPortServicesHeadless,
VideoPortServicesInt10
} VIDEO_PORT_SERVICES;
VPAPI
VP_STATUS
DDKAPI
VideoPortQueryServices(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ VIDEO_PORT_SERVICES ServicesType,
/*IN OUT*/ PINTERFACE Interface);
VPAPI
VOID
DDKAPI
VideoPortQuerySystemTime(
/*OUT*/ PLARGE_INTEGER CurrentTime);
VPAPI
BOOLEAN
DDKAPI
VideoPortQueueDpc(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ PMINIPORT_DPC_ROUTINE CallbackRoutine,
/*IN*/ PVOID Context);
VPAPI
VOID
DDKAPI
VideoPortReadPortBufferUchar(
/*IN*/ PUCHAR Port,
/*OUT*/ PUCHAR Buffer,
/*IN*/ ULONG Count);
VPAPI
VOID
DDKAPI
VideoPortReadPortBufferUlong(
/*IN*/ PULONG Port,
/*OUT*/ PULONG Buffer,
/*IN*/ ULONG Count);
VPAPI
VOID
DDKAPI
VideoPortReadPortBufferUshort(
/*IN*/ PUSHORT Port,
/*OUT*/ PUSHORT Buffer,
/*IN*/ ULONG Count);
VPAPI
UCHAR
DDKAPI
VideoPortReadPortUchar(
/*IN*/ PUCHAR Port);
VPAPI
ULONG
DDKAPI
VideoPortReadPortUlong(
/*IN*/ PULONG Port);
VPAPI
USHORT
DDKAPI
VideoPortReadPortUshort(
/*IN*/ PUSHORT Port);
VPAPI
VOID
DDKAPI
VideoPortReadRegisterBufferUchar(
/*IN*/ PUCHAR Register,
/*OUT*/ PUCHAR Buffer,
/*IN*/ ULONG Count);
VPAPI
VOID
DDKAPI
VideoPortReadRegisterBufferUlong(
/*IN*/ PULONG Register,
/*OUT*/ PULONG Buffer,
/*IN*/ ULONG Count);
VPAPI
VOID
DDKAPI
VideoPortReadRegisterBufferUshort(
/*IN*/ PUSHORT Register,
/*OUT*/ PUSHORT Buffer,
/*IN*/ ULONG Count);
VPAPI
UCHAR
DDKAPI
VideoPortReadRegisterUchar(
/*IN*/ PUCHAR Register);
VPAPI
ULONG
DDKAPI
VideoPortReadRegisterUlong(
/*IN*/ PULONG Register);
VPAPI
USHORT
DDKAPI
VideoPortReadRegisterUshort(
/*IN*/ PUSHORT Register);
VPAPI
LONG
DDKAPI
VideoPortReadStateEvent(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ PEVENT pEvent);
VPAPI
VOID
DDKAPI
VideoPortReleaseBuffer(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ PVOID Buffer);
VPAPI
VOID
DDKAPI
VideoPortReleaseCommonBuffer(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ PVP_DMA_ADAPTER VpDmaAdapter,
/*IN*/ ULONG Length,
/*IN*/ PHYSICAL_ADDRESS LogicalAddress,
/*IN*/ PVOID VirtualAddress,
/*IN*/ BOOLEAN CacheEnabled);
VPAPI
VOID
DDKAPI
VideoPortReleaseDeviceLock(
/*IN*/ PVOID HwDeviceExtension);
VPAPI
VOID
DDKAPI
VideoPortReleaseSpinLock(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ PSPIN_LOCK SpinLock,
/*IN*/ UCHAR NewIrql);
VPAPI
VOID
DDKAPI
VideoPortReleaseSpinLockFromDpcLevel(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ PSPIN_LOCK SpinLock);
VPAPI
BOOLEAN
DDKAPI
VideoPortScanRom(
PVOID HwDeviceExtension,
PUCHAR RomBase,
ULONG RomLength,
PUCHAR String);
VPAPI
ULONG
DDKAPI
VideoPortSetBusData(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ BUS_DATA_TYPE BusDataType,
/*IN*/ ULONG SlotNumber,
/*IN*/ PVOID Buffer,
/*IN*/ ULONG Offset,
/*IN*/ ULONG Length);
VPAPI
VOID
DDKAPI
VideoPortSetBytesUsed(
/*IN*/ PVOID HwDeviceExtension,
/*IN OUT*/ PDMA pDma,
/*IN*/ ULONG BytesUsed);
VPAPI
VOID
DDKAPI
VideoPortSetDmaContext(
/*IN*/ PVOID HwDeviceExtension,
/*OUT*/ PDMA pDma,
/*IN*/ PVOID InstanceContext);
VPAPI
LONG
DDKAPI
VideoPortSetEvent(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ PEVENT pEvent);
VPAPI
VP_STATUS
DDKAPI
VideoPortSetRegistryParameters(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ PWSTR ValueName,
/*IN*/ PVOID ValueData,
/*IN*/ ULONG ValueLength);
VPAPI
VP_STATUS
DDKAPI
VideoPortSetTrappedEmulatorPorts(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ ULONG NumAccessRanges,
/*IN*/ PVIDEO_ACCESS_RANGE AccessRange);
VPAPI
BOOLEAN
DDKAPI
VideoPortSignalDmaComplete(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ PVOID pDmaHandle);
VPAPI
VOID
DDKAPI
VideoPortStallExecution(
/*IN*/ ULONG Microseconds);
VPAPI
VP_STATUS
DDKAPI
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
DDKAPI
VideoPortStartTimer(
/*IN*/ PVOID HwDeviceExtension);
VPAPI
VOID
DDKAPI
VideoPortStopTimer(
/*IN*/ PVOID HwDeviceExtension);
/* VideoPortSynchronizeExecution.Priority constants */
typedef enum VIDEO_SYNCHRONIZE_PRIORITY {
VpLowPriority = 0,
VpMediumPriority,
VpHighPriority
} VIDEO_SYNCHRONIZE_PRIORITY, *PVIDEO_SYNCHRONIZE_PRIORITY;
VPAPI
BOOLEAN
DDKAPI
VideoPortSynchronizeExecution(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ VIDEO_SYNCHRONIZE_PRIORITY Priority,
/*IN*/ PMINIPORT_SYNCHRONIZE_ROUTINE SynchronizeRoutine,
/*IN*/ PVOID Context);
VPAPI
VOID
DDKAPI
VideoPortUnLockBuffer(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ PVOID Mdl);
VPAPI
BOOLEAN
DDKAPI
VideoPortUnlockPages(
/*IN*/ PVOID hwDeviceExtension,
/*IN OUT*/ PDMA pDma);
VPAPI
BOOLEAN
DDKAPI
VideoPortUnmapDmaMemory(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ PVOID VirtualAddress,
/*IN*/ HANDLE ProcessHandle,
/*IN*/ PDMA BoardMemoryHandle);
VPAPI
VP_STATUS
DDKAPI
VideoPortUnmapMemory(
/*IN*/ PVOID HwDeviceExtension,
/*IN OUT*/ PVOID VirtualAddress,
/*IN*/ HANDLE ProcessHandle);
VPAPI
VP_STATUS
DDKAPI
VideoPortVerifyAccessRanges(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ ULONG NumAccessRanges,
/*IN*/ PVIDEO_ACCESS_RANGE AccessRanges);
VPAPI
VP_STATUS
DDKAPI
VideoPortWaitForSingleObject(
/*IN*/ PVOID HwDeviceExtension,
/*IN*/ PVOID Object,
/*IN*/ PLARGE_INTEGER Timeout /*OPTIONAL*/);
VPAPI
VOID
DDKAPI
VideoPortWritePortBufferUchar(
/*IN*/ PUCHAR Port,
/*IN*/ PUCHAR Buffer,
/*IN*/ ULONG Count);
VPAPI
VOID
DDKAPI
VideoPortWritePortBufferUlong(
/*IN*/ PULONG Port,
/*IN*/ PULONG Buffer,
/*IN*/ ULONG Count);
VPAPI
VOID
DDKAPI
VideoPortWritePortBufferUshort(
/*IN*/ PUSHORT Port,
/*IN*/ PUSHORT Buffer,
/*IN*/ ULONG Count);
VPAPI
VOID
DDKAPI
VideoPortWritePortUchar(
/*IN*/ PUCHAR Port,
/*IN*/ UCHAR Value);
VPAPI
VOID
DDKAPI
VideoPortWritePortUlong(
/*IN*/ PULONG Port,
/*IN*/ ULONG Value);
VPAPI
VOID
DDKAPI
VideoPortWritePortUshort(
/*IN*/ PUSHORT Port,
/*IN*/ USHORT Value);
VPAPI
VOID
DDKAPI
VideoPortWriteRegisterBufferUchar(
/*IN*/ PUCHAR Register,
/*IN*/ PUCHAR Buffer,
/*IN*/ ULONG Count);
VPAPI
VOID
DDKAPI
VideoPortWriteRegisterBufferUlong(
/*IN*/ PULONG Register,
/*IN*/ PULONG Buffer,
/*IN*/ ULONG Count);
VPAPI
VOID
DDKAPI
VideoPortWriteRegisterBufferUshort(
/*IN*/ PUSHORT Register,
/*IN*/ PUSHORT Buffer,
/*IN*/ ULONG Count);
VPAPI
VOID
DDKAPI
VideoPortWriteRegisterUchar(
/*IN*/ PUCHAR Register,
/*IN*/ UCHAR Value);
VPAPI
VOID
DDKAPI
VideoPortWriteRegisterUlong(
/*IN*/ PULONG Register,
/*IN*/ ULONG Value);
VPAPI
VOID
DDKAPI
VideoPortWriteRegisterUshort(
/*IN*/ PUSHORT Register,
/*IN*/ USHORT Value);
VPAPI
VOID
DDKAPI
VideoPortZeroDeviceMemory(
/*IN*/ PVOID Destination,
/*IN*/ ULONG Length);
VPAPI
VOID
DDKAPI
VideoPortZeroMemory(
/*IN*/ PVOID Destination,
/*2IN*/ ULONG Length);
#ifdef DBG
#define VideoDebugPrint(x) VideoPortDebugPrint x
#else
#define VideoDebugPrint(x)
#endif
#ifdef __cplusplus
}
#endif
#endif /* defined __WINDDI_H */
#endif /* __VIDEO_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -