diff options
Diffstat (limited to 'winsup/w32api/include/ddk/video.h')
-rw-r--r-- | winsup/w32api/include/ddk/video.h | 1570 |
1 files changed, 0 insertions, 1570 deletions
diff --git a/winsup/w32api/include/ddk/video.h b/winsup/w32api/include/ddk/video.h deleted file mode 100644 index a614acd84..000000000 --- a/winsup/w32api/include/ddk/video.h +++ /dev/null @@ -1,1570 +0,0 @@ -/* - * video.h - * - * Video port and miniport driver interface - * - * This file is part of the w32api package. - * - * Contributors: - * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __VIDEO_H -#define __VIDEO_H - - -#if __GNUC__ >=3 -#pragma GCC system_header -#endif - -#ifdef __WINDDI_H -#error winddi.h cannot be included with video.h -#else - -#ifdef __cplusplus -extern "C" { -#endif - -#pragma pack(push,4) - -#include "ntddk.h" - -#if defined(_VIDEOPORT_) - #define VPAPI DECLSPEC_EXPORT -#else - #define VPAPI DECLSPEC_IMPORT -#endif - -#include "videoagp.h" -#include "ntddvdeo.h" - - -typedef LONG VP_STATUS; -typedef VP_STATUS *PVP_STATUS; -typedef struct __DMA_PARAMETERS * PDMA; -typedef struct _VIDEO_PORT_EVENT *PEVENT; -typedef struct _VIDEO_PORT_SPIN_LOCK *PSPIN_LOCK; -typedef struct __VP_DMA_ADAPTER *PVP_DMA_ADAPTER; - -#define DISPLAY_ADAPTER_HW_ID 0xFFFFFFFF - -#define EVENT_TYPE_MASK 1 -#define SYNCHRONIZATION_EVENT 0 -#define NOTIFICATION_EVENT 1 - -#define INITIAL_EVENT_STATE_MASK 2 -#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 { - VideoPortUnlockAfterDma = 1, - VideoPortKeepPagesLocked, - VideoPortDmaInitOnly -} DMA_FLAGS; - -typedef enum _HW_DMA_RETURN { - DmaAsyncReturn, - DmaSyncReturn -} HW_DMA_RETURN, *PHW_DMA_RETURN; - -typedef HW_DMA_RETURN -(*PVIDEO_HW_START_DMA)( - PVOID HwDeviceExtension, - PDMA pDma); - - -#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; - ULONG BusNumber; - USHORT Version; - USHORT Revision; - USHORT Irql; - USHORT Vector; - ULONG ControlBase; - ULONG ControlSize; - ULONG CursorBase; - ULONG CursorSize; - ULONG FrameBase; - 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 DDKAPI -(*PEXECUTE_DMA)( - IN PVOID HwDeviceExtension, - IN PVP_DMA_ADAPTER VpDmaAdapter, - IN PVP_SCATTER_GATHER_LIST SGList, - IN PVOID Context); - -typedef PVOID DDKAPI -(*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 DDKAPI -(*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 DDKAPI -(*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 DDKAPI -(*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 DDKAPI -(*PVIDEO_HW_INITIALIZE)( - IN PVOID HwDeviceExtension); - -typedef BOOLEAN DDKAPI -(*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 DDKAPI -(*PVIDEO_HW_LEGACYRESOURCES)( - IN ULONG VendorId, - IN ULONG DeviceId, - IN OUT PVIDEO_ACCESS_RANGE *LegacyResourceList, - IN OUT PULONG LegacyResourceCount); - -typedef VP_STATUS DDKAPI -(*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 DDKAPI -(*PVIDEO_HW_QUERY_INTERFACE)( - IN PVOID HwDeviceExtension, - IN OUT PQUERY_INTERFACE QueryInterface); - -typedef VP_STATUS DDKAPI -(*PMINIPORT_GET_REGISTRY_ROUTINE)( - IN PVOID HwDeviceExtension, - IN PVOID Context, - IN OUT PWSTR ValueName, - IN OUT PVOID ValueData, - IN ULONG ValueLength); - -typedef BOOLEAN DDKAPI -(*PVIDEO_HW_RESET_HW)( - IN PVOID HwDeviceExtension, - IN ULONG Columns, - IN ULONG Rows); - -typedef VP_STATUS DDKAPI -(*PVIDEO_HW_POWER_SET)( - IN PVOID HwDeviceExtension, - IN ULONG HwId, - IN PVIDEO_POWER_MANAGEMENT VideoPowerControl); - -typedef struct _STATUS_BLOCK { - union { - VP_STATUS Status; - PVOID Pointer; - }; - 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 DDKAPI -(*PVIDEO_HW_START_IO)( - IN PVOID HwDeviceExtension, - IN PVIDEO_REQUEST_PACKET RequestPacket); - -typedef BOOLEAN DDKAPI -(*PMINIPORT_SYNCHRONIZE_ROUTINE)( - IN PVOID Context); - -typedef VOID DDKAPI -(*PVIDEO_HW_TIMER)( - IN PVOID HwDeviceExtension); - -typedef VOID DDKAPI -(*PMINIPORT_DPC_ROUTINE)( - IN PVOID HwDeviceExtension, - IN PVOID Context); - -typedef VP_STATUS DDKAPI -(*PDRIVER_IO_PORT_UCHAR)( - IN ULONG_PTR Context, - IN ULONG Port, - IN UCHAR AccessMode, - IN PUCHAR Data); - -typedef VP_STATUS DDKAPI -(*PDRIVER_IO_PORT_UCHAR_STRING)( - IN ULONG_PTR Context, - IN ULONG Port, - IN UCHAR AccessMode, - IN PUCHAR Data, - IN ULONG DataLength); - -typedef VP_STATUS DDKAPI -(*PDRIVER_IO_PORT_ULONG)( - IN ULONG_PTR Context, - IN ULONG Port, - IN UCHAR AccessMode, - IN PULONG Data); - -typedef VP_STATUS DDKAPI -(*PDRIVER_IO_PORT_ULONG_STRING)( - IN ULONG_PTR Context, - IN ULONG Port, - IN UCHAR AccessMode, - IN PULONG Data, - IN ULONG DataLength); - -typedef VP_STATUS DDKAPI -(*PDRIVER_IO_PORT_USHORT)( - IN ULONG_PTR Context, - IN ULONG Port, - IN UCHAR AccessMode, - IN PUSHORT Data); - -typedef VP_STATUS DDKAPI -(*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 DDKAPI -(*PVIDEO_WRITE_CLOCK_LINE)( - PVOID HwDeviceExtension, - UCHAR Data); - -typedef VOID DDKAPI -(*PVIDEO_WRITE_DATA_LINE)( - PVOID HwDeviceExtension, - UCHAR Data); - -typedef BOOLEAN DDKAPI -(*PVIDEO_READ_CLOCK_LINE)( - PVOID HwDeviceExtension); - -typedef BOOLEAN DDKAPI -(*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 DDKAPI -(*PI2C_START)( - IN PVOID HwDeviceExtension, - IN PI2C_CALLBACKS I2CCallbacks); - -typedef BOOLEAN DDKAPI -(*PI2C_STOP)( - IN PVOID HwDeviceExtension, - IN PI2C_CALLBACKS I2CCallbacks); - -typedef BOOLEAN DDKAPI -(*PI2C_WRITE)( - 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, - 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, - IN ULONG Length); - -#if DBG -#define VideoDebugPrint(x) VideoPortDebugPrint x -#else -#define VideoDebugPrint(x) -#endif - -#pragma pack(pop) - -#ifdef __cplusplus -} -#endif - -#endif /* defined __WINDDI_H */ - -#endif /* __VIDEO_H */ |