⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 video.h

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
  /*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 1

typedef 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        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
DDKAPI
VideoDebugPrint(
  /*IN*/ ULONG  DebugPrintLevel,
  /*IN*/ PCHAR  DebugMessage,
  /*IN*/ ...);

VPAPI
VOID
DDKAPI
VideoPortAcquireDeviceLock(
  /*IN*/ PVOID  HwDeviceExtension);

VPAPI
VOID
DDKAPI
VideoPortAcquireSpinLock(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PSPIN_LOCK  SpinLock,
  /*OUT*/ PUCHAR  OldIrql);

VPAPI
VOID
DDKAPI
VideoPortAcquireSpinLockAtDpcLevel(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PSPIN_LOCK  SpinLock);

VPAPI
VP_STATUS
DDKAPI
VideoPortAllocateBuffer(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ ULONG  Size,
  /*OUT*/ PVOID  *Buffer);

VPAPI
PVOID
DDKAPI
VideoPortAllocateCommonBuffer(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PVP_DMA_ADAPTER  VpDmaAdapter,
  /*IN*/ ULONG  DesiredLength,
  /*OUT*/ PPHYSICAL_ADDRESS  LogicalAddress,
  /*IN*/ BOOLEAN  CacheEnabled,
  PVOID  Reserved);

VPAPI
PVOID
DDKAPI
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
DDKAPI
VideoPortAllocatePool(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ VP_POOL_TYPE  PoolType,
  /*IN*/ SIZE_T  NumberOfBytes,
  /*IN*/ ULONG  Tag);

VPAPI
PDMA
DDKAPI
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
DDKAPI
VideoPortCheckForDeviceExistence(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ USHORT  VendorId,
  /*IN*/ USHORT  DeviceId,
  /*IN*/ UCHAR  RevisionId,
  /*IN*/ USHORT  SubVendorId,
  /*IN*/ USHORT  SubSystemId,
  /*IN*/ ULONG  Flags);

VPAPI
VOID
DDKAPI
VideoPortClearEvent(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PEVENT  pEvent);

VPAPI
ULONG
DDKAPI
VideoPortCompareMemory(
  /*IN*/ PVOID  Source1,
  /*IN*/ PVOID  Source2,
  /*IN*/ ULONG  Length);

VPAPI
VP_STATUS
DDKAPI
VideoPortCompleteDma(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PVP_DMA_ADAPTER  VpDmaAdapter,
  /*IN*/ PVP_SCATTER_GATHER_LIST  VpScatterGather,
  /*IN*/ BOOLEAN  WriteToDevice);

VPAPI
VP_STATUS
DDKAPI
VideoPortCreateEvent(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ ULONG  EventFlag,
  /*IN*/ PVOID  Unused,
  /*OUT*/ PEVENT  *ppEvent);

VPAPI
VP_STATUS
DDKAPI
VideoPortCreateSecondaryDisplay(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN OUT*/ PVOID  *SecondaryDeviceExtension,
  /*IN*/ ULONG  ulFlag);

VPAPI
VP_STATUS
DDKAPI
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
DDKAPI
VideoPortDDCMonitorHelper(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PVOID  DDCControl,
  /*IN OUT*/ PUCHAR  EdidBuffer,
  /*IN*/ ULONG  EdidBufferSize);

VPAPI
VOID
DDKCDECLAPI
VideoPortDebugPrint(
  /*IN*/ VIDEO_DEBUG_LEVEL  DebugPrintLevel,
  /*IN*/ PCHAR  DebugMessage,
  /*IN*/ ...);

VPAPI
VP_STATUS
DDKAPI
VideoPortDeleteEvent(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PEVENT  pEvent);

VPAPI
VP_STATUS
DDKAPI
VideoPortDeleteSpinLock(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PSPIN_LOCK  SpinLock);

VPAPI
VP_STATUS
DDKAPI
VideoPortDisableInterrupt(
  /*IN*/ PVOID  HwDeviceExtension);

VPAPI
PDMA
DDKAPI
VideoPortDoDma(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PDMA  pDma,
  /*IN*/ DMA_FLAGS  DmaFlags);

VPAPI
VP_STATUS
DDKAPI
VideoPortEnableInterrupt(
  /*IN*/ PVOID  HwDeviceExtension);

VPAPI
VP_STATUS
DDKAPI
VideoPortEnumerateChildren(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PVOID  Reserved);

VPAPI
VOID
DDKAPI
VideoPortFreeCommonBuffer(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ ULONG  Length,
  /*IN*/ PVOID  VirtualAddress,
  /*IN*/ PHYSICAL_ADDRESS  LogicalAddress,
  /*IN*/ BOOLEAN  CacheEnabled);

VPAPI
VOID
DDKAPI
VideoPortFreeDeviceBase(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PVOID  MappedAddress);

VPAPI
VOID
DDKAPI
VideoPortFreePool(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PVOID  Ptr);

VPAPI
VP_STATUS
DDKAPI
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
DDKAPI
VideoPortGetAssociatedDeviceExtension(
  /*IN*/ PVOID  DeviceObject);

VPAPI
ULONG
DDKAPI
VideoPortGetAssociatedDeviceID(
  /*IN*/ PVOID DeviceObject);

VPAPI
ULONG
DDKAPI
VideoPortGetBusData(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ BUS_DATA_TYPE  BusDataType,
  /*IN*/ ULONG  SlotNumber,
  /*IN OUT*/ PVOID  Buffer,
  /*IN*/ ULONG  Offset,
  /*IN*/ ULONG  Length);

VPAPI
ULONG
DDKAPI
VideoPortGetBytesUsed(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PDMA  pDma);

VPAPI
PVOID
DDKAPI
VideoPortGetCommonBuffer(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ ULONG  DesiredLength,
  /*IN*/ ULONG  Alignment,
  /*OUT*/ PPHYSICAL_ADDRESS  LogicalAddress,
  /*OUT*/ PULONG  pActualLength,
  /*IN*/ BOOLEAN  CacheEnabled);

VPAPI
UCHAR
DDKAPI
VideoPortGetCurrentIrql(
  VOID);

VPAPI
PVOID
DDKAPI
VideoPortGetDeviceBase(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PHYSICAL_ADDRESS  IoAddress,
  /*IN*/ ULONG  NumberOfUchars,
  /*IN*/ UCHAR  InIoSpace);

VPAPI
VP_STATUS
DDKAPI
VideoPortGetDeviceData(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ VIDEO_DEVICE_DATA_TYPE  DeviceDataType,
  /*IN*/ PMINIPORT_QUERY_DEVICE_ROUTINE  CallbackRoutine,
  /*IN*/ PVOID  Context);

VPAPI
PVP_DMA_ADAPTER
DDKAPI
VideoPortGetDmaAdapter(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PVP_DEVICE_DESCRIPTION  VpDeviceDescription);

VPAPI
PVOID
DDKAPI
VideoPortGetDmaContext(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PDMA  pDma);

VPAPI
PVOID
DDKAPI
VideoPortGetMdl(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PDMA  pDma);

VPAPI
VP_STATUS
DDKAPI
VideoPortGetRegistryParameters(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PWSTR  ParameterName,
  /*IN*/ UCHAR  IsParameterFileName,
  /*IN*/ PMINIPORT_GET_REGISTRY_ROUTINE  CallbackRoutine,
  /*IN*/ PVOID  Context);

VPAPI
PVOID
DDKAPI
VideoPortGetRomImage(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PVOID  Unused1,
  /*IN*/ ULONG  Unused2,
  /*IN*/ ULONG  Length);

VPAPI
VP_STATUS
DDKAPI
VideoPortGetVersion(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN OUT*/ PVPOSVERSIONINFO  pVpOsVersionInfo);

VPAPI
VP_STATUS
DDKAPI
VideoPortGetVgaStatus(
  /*IN*/ PVOID  HwDeviceExtension,
  /*OUT*/ PULONG  VgaStatus);

VPAPI
ULONG
DDKAPI
VideoPortInitialize(
  /*IN*/ PVOID  Argument1,
  /*IN*/ PVOID  Argument2,
  /*IN*/ PVIDEO_HW_INITIALIZATION_DATA  HwInitializationData,
  /*IN*/ PVOID  HwContext);

VPAPI
VP_STATUS
DDKAPI
VideoPortInt10(
  /*IN*/ PVOID  HwDeviceExtension,
  /*IN*/ PVIDEO_X86_BIOS_ARGUMENTS  BiosArguments);

VPAPI
LONG
DDKFASTAPI
VideoPortInterlockedDecrement(
  /*IN*/ PLONG  Addend);

VPAPI
LONG
DDKFASTAPI
VideoPortInterlockedExchange(
  /*IN OUT*/ PLONG  Target,
  /*IN*/ LONG  Value);

VPAPI
LONG
DDKFASTAPI
VideoPortInterlockedIncrement(
  /*IN*/ PLONG  Addend);

typedef enum _VP_LOCK_OPERATION {
  VpReadAccess = 0,
  VpWriteAccess,
  VpModifyAccess
} VP_LOCK_OPERATION;

VPAPI
PVOID
DDKAPI
VideoPortLockBuffer(
  /*IN*/ PVOID  HwDeviceExtension,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -