diff options
Diffstat (limited to 'winsup/w32api/include/ddk/video.h')
-rw-r--r-- | winsup/w32api/include/ddk/video.h | 1566 |
1 files changed, 0 insertions, 1566 deletions
diff --git a/winsup/w32api/include/ddk/video.h b/winsup/w32api/include/ddk/video.h deleted file mode 100644 index 52e821221..000000000 --- a/winsup/w32api/include/ddk/video.h +++ /dev/null @@ -1,1566 +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 - -#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); - - -#ifdef 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 { - _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 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, - /*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 */ |