ReactOS 0.4.16-dev-1946-g52006dd
video.h File Reference
#include "ntddvdeo.h"
#include "videoagp.h"
Include dependency graph for video.h:

Go to the source code of this file.

Classes

struct  _VIDEO_PORT_CONFIG_INFO
 
struct  _VIDEO_ACCESS_RANGE
 
struct  _VP_SCATTER_GATHER_ELEMENT
 
struct  _VP_SCATTER_GATHER_LIST
 
struct  _VIDEO_CHILD_ENUM_INFO
 
struct  _QUERY_INTERFACE
 
struct  _STATUS_BLOCK
 
struct  _VIDEO_REQUEST_PACKET
 
struct  _I2C_CALLBACKS
 
struct  _VIDEO_I2C_CONTROL
 
struct  _INT10_BIOS_ARGUMENTS
 
struct  _VIDEO_HARDWARE_CONFIGURATION_DATA
 
struct  _VIDEO_X86_BIOS_ARGUMENTS
 
struct  __VRB_SG
 
struct  _VP_DEVICE_DESCRIPTION
 
struct  _VIDEO_CHILD_STATE
 
struct  _VIDEO_CHILD_STATE_CONFIGURATION
 
struct  _VIDEO_HW_INITIALIZATION_DATA
 
struct  _I2C_FNC_TABLE
 
struct  _DDC_CONTROL
 
struct  _VIDEO_PORT_AGP_INTERFACE
 
struct  _VIDEO_PORT_AGP_INTERFACE_2
 
struct  _VIDEO_PORT_I2C_INTERFACE
 
struct  _VIDEO_PORT_I2C_INTERFACE_2
 
struct  _VIDEO_PORT_INT10_INTERFACE
 
struct  _VIDEO_PORT_WCMEMORYPROTECTION_INTERFACE
 
struct  _VPOSVERSIONINFO
 
struct  _VIDEO_PORT_DEBUG_REPORT_INTERFACE
 

Macros

#define __VIDEO_H__
 
#define VPAPI   DECLSPEC_IMPORT
 
#define PAGED_CODE()
 
#define VideoDebugPrint(x)
 
#define GET_VIDEO_PHYSICAL_ADDRESS(scatterList, VirtualAddress, InputBuffer, pLength, Address)
 
#define GET_VIDEO_SCATTERGATHER(ppDma)   (**(PVRB_SG **)ppDma)
 
#define VIDEO_RANGE_PASSIVE_DECODE   1
 
#define VIDEO_RANGE_10_BIT_DECODE   2
 
#define SIZE_OF_NT4_VIDEO_PORT_CONFIG_INFO   FIELD_OFFSET(VIDEO_PORT_CONFIG_INFO, Master)
 
#define SIZE_OF_WXP_VIDEO_PORT_CONFIG_INFO   sizeof(VIDEO_PORT_CONFIG_INFO)
 
#define SET_USER_EVENT   0x01
 
#define SET_DISPLAY_EVENT   0x02
 
#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
 
#define DISPLAY_ADAPTER_HW_ID   0xFFFFFFFF
 
#define VIDEO_INVALID_CHILD_ID   0xFFFFFFFF
 
#define SIZE_OF_NT4_VIDEO_HW_INITIALIZATION_DATA   FIELD_OFFSET(VIDEO_HW_INITIALIZATION_DATA, HwStartDma)
 
#define SIZE_OF_W2K_VIDEO_HW_INITIALIZATION_DATA   FIELD_OFFSET(VIDEO_HW_INITIALIZATION_DATA, Reserved)
 
#define SIZE_OF_WXP_VIDEO_HW_INITIALIZATION_DATA   (SIZE_OF_W2K_VIDEO_HW_INITIALIZATION_DATA + sizeof(ULONG))
 
#define VIDEO_PORT_AGP_INTERFACE_VERSION_1   1
 
#define VIDEO_PORT_AGP_INTERFACE_VERSION_2   2
 
#define VIDEO_PORT_I2C_INTERFACE_VERSION_1   1
 
#define VIDEO_PORT_I2C_INTERFACE_VERSION_2   2
 
#define VIDEO_PORT_INT10_INTERFACE_VERSION_1   1
 
#define VIDEO_PORT_WCMEMORYPROTECTION_INTERFACE_VERSION_1   1
 
#define VIDEO_PORT_DEBUG_REPORT_INTERFACE_VERSION_1   1
 
#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
 
#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
 
#define DEVICE_VGA_ENABLED   1
 
#define CDE_USE_SUBSYSTEM_IDS   0x00000001
 
#define CDE_USE_REVISION   0x00000002
 
#define BUGCHECK_DATA_SIZE_RESERVED   48
 
#define VIDEO_DEBUG_REPORT_MAX_SIZE   0x8000
 

Typedefs

typedef LONG VP_STATUS
 
typedef LONGPVP_STATUS
 
typedef ULONG DMA_EVENT_FLAGS
 
typedef struct _VIDEO_PORT_SPIN_LOCK * PSPIN_LOCK
 
typedef struct _VIDEO_DEBUG_REPORT * PVIDEO_DEBUG_REPORT
 
typedef struct __DMA_PARAMETERS * PDMA
 
typedef struct __VP_DMA_ADAPTER * PVP_DMA_ADAPTER
 
typedef PVOID(NTAPIPVIDEO_PORT_GET_PROC_ADDRESS) (IN PVOID HwDeviceExtension, IN PUCHAR FunctionName)
 
typedef struct _VIDEO_PORT_CONFIG_INFO VIDEO_PORT_CONFIG_INFO
 
typedef struct _VIDEO_PORT_CONFIG_INFOPVIDEO_PORT_CONFIG_INFO
 
typedef VP_STATUS(NTAPIPVIDEO_HW_FIND_ADAPTER) (IN PVOID HwDeviceExtension, IN PVOID HwContext, IN PWSTR ArgumentString, IN OUT PVIDEO_PORT_CONFIG_INFO ConfigInfo, OUT PUCHAR Again)
 
typedef BOOLEAN(NTAPIPVIDEO_HW_INITIALIZE) (IN PVOID HwDeviceExtension)
 
typedef BOOLEAN(NTAPIPVIDEO_HW_INTERRUPT) (IN PVOID HwDeviceExtension)
 
typedef struct _VIDEO_ACCESS_RANGE VIDEO_ACCESS_RANGE
 
typedef struct _VIDEO_ACCESS_RANGEPVIDEO_ACCESS_RANGE
 
typedef VOID(NTAPIPVIDEO_HW_LEGACYRESOURCES) (IN ULONG VendorId, IN ULONG DeviceId, IN OUT PVIDEO_ACCESS_RANGE *LegacyResourceList, IN OUT PULONG LegacyResourceCount)
 
typedef enum _HW_DMA_RETURN HW_DMA_RETURN
 
typedef enum _HW_DMA_RETURNPHW_DMA_RETURN
 
typedef HW_DMA_RETURN(NTAPIPVIDEO_HW_START_DMA) (PVOID HwDeviceExtension, PDMA pDma)
 
typedef struct _VP_SCATTER_GATHER_ELEMENT VP_SCATTER_GATHER_ELEMENT
 
typedef struct _VP_SCATTER_GATHER_ELEMENTPVP_SCATTER_GATHER_ELEMENT
 
typedef struct _VP_SCATTER_GATHER_LIST VP_SCATTER_GATHER_LIST
 
typedef struct _VP_SCATTER_GATHER_LISTPVP_SCATTER_GATHER_LIST
 
typedef VOID(NTAPIPEXECUTE_DMA) (IN PVOID HwDeviceExtension, IN PVP_DMA_ADAPTER VpDmaAdapter, IN PVP_SCATTER_GATHER_LIST SGList, IN PVOID Context)
 
typedef struct _VIDEO_CHILD_ENUM_INFO VIDEO_CHILD_ENUM_INFO
 
typedef struct _VIDEO_CHILD_ENUM_INFOPVIDEO_CHILD_ENUM_INFO
 
typedef enum _VIDEO_CHILD_TYPE VIDEO_CHILD_TYPE
 
typedef enum _VIDEO_CHILD_TYPEPVIDEO_CHILD_TYPE
 
typedef VP_STATUS(NTAPIPVIDEO_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 VP_STATUS(NTAPIPVIDEO_HW_POWER_SET) (IN PVOID HwDeviceExtension, IN ULONG HwId, IN PVIDEO_POWER_MANAGEMENT VideoPowerControl)
 
typedef VP_STATUS(NTAPIPVIDEO_HW_POWER_GET) (IN PVOID HwDeviceExtension, IN ULONG HwId, IN OUT PVIDEO_POWER_MANAGEMENT VideoPowerControl)
 
typedef struct _QUERY_INTERFACE QUERY_INTERFACE
 
typedef struct _QUERY_INTERFACEPQUERY_INTERFACE
 
typedef VP_STATUS(NTAPIPVIDEO_HW_QUERY_INTERFACE) (IN PVOID HwDeviceExtension, IN OUT PQUERY_INTERFACE QueryInterface)
 
typedef VP_STATUS(NTAPIPVIDEO_HW_CHILD_CALLBACK) (PVOID HwDeviceExtension, PVOID ChildDeviceExtension)
 
typedef BOOLEAN(NTAPIPVIDEO_HW_RESET_HW) (IN PVOID HwDeviceExtension, IN ULONG Columns, IN ULONG Rows)
 
typedef struct _STATUS_BLOCK STATUS_BLOCK
 
typedef struct _STATUS_BLOCKPSTATUS_BLOCK
 
typedef struct _VIDEO_REQUEST_PACKET VIDEO_REQUEST_PACKET
 
typedef struct _VIDEO_REQUEST_PACKETPVIDEO_REQUEST_PACKET
 
typedef BOOLEAN(NTAPIPVIDEO_HW_START_IO) (IN PVOID HwDeviceExtension, IN PVIDEO_REQUEST_PACKET RequestPacket)
 
typedef VOID(NTAPIPVIDEO_HW_TIMER) (IN PVOID HwDeviceExtension)
 
typedef VOID(NTAPIPVIDEO_WRITE_CLOCK_LINE) (PVOID HwDeviceExtension, UCHAR Data)
 
typedef VOID(NTAPIPVIDEO_WRITE_DATA_LINE) (PVOID HwDeviceExtension, UCHAR Data)
 
typedef BOOLEAN(NTAPIPVIDEO_READ_CLOCK_LINE) (PVOID HwDeviceExtension)
 
typedef BOOLEAN(NTAPIPVIDEO_READ_DATA_LINE) (PVOID HwDeviceExtension)
 
typedef VOID(NTAPIPVIDEO_WAIT_VSYNC_ACTIVE) (PVOID HwDeviceExtension)
 
typedef struct _I2C_CALLBACKS I2C_CALLBACKS
 
typedef struct _I2C_CALLBACKSPI2C_CALLBACKS
 
typedef BOOLEAN(NTAPIPI2C_START) (IN PVOID HwDeviceExtension, IN PI2C_CALLBACKS I2CCallbacks)
 
typedef BOOLEAN(NTAPIPI2C_STOP) (IN PVOID HwDeviceExtension, IN PI2C_CALLBACKS I2CCallbacks)
 
typedef BOOLEAN(NTAPIPI2C_WRITE) (IN PVOID HwDeviceExtension, IN PI2C_CALLBACKS I2CCallbacks, IN PUCHAR Buffer, IN ULONG Length)
 
typedef BOOLEAN(NTAPIPI2C_READ) (IN PVOID HwDeviceExtension, IN PI2C_CALLBACKS I2CCallbacks, OUT PUCHAR Buffer, IN ULONG Length)
 
typedef struct _VIDEO_I2C_CONTROL VIDEO_I2C_CONTROL
 
typedef struct _VIDEO_I2C_CONTROLPVIDEO_I2C_CONTROL
 
typedef BOOLEAN(NTAPIPI2C_START_2) (IN PVOID HwDeviceExtension, IN PVIDEO_I2C_CONTROL I2CControl)
 
typedef BOOLEAN(NTAPIPI2C_STOP_2) (IN PVOID HwDeviceExtension, IN PVIDEO_I2C_CONTROL I2CControl)
 
typedef BOOLEAN(NTAPIPI2C_WRITE_2) (IN PVOID HwDeviceExtension, IN PVIDEO_I2C_CONTROL I2CControl, IN PUCHAR Buffer, IN ULONG Length)
 
typedef BOOLEAN(NTAPIPI2C_READ_2) (IN PVOID HwDeviceExtension, IN PVIDEO_I2C_CONTROL I2CControl, OUT PUCHAR Buffer, IN ULONG Length, IN BOOLEAN EndOfRead)
 
typedef struct _INT10_BIOS_ARGUMENTS INT10_BIOS_ARGUMENTS
 
typedef struct _INT10_BIOS_ARGUMENTSPINT10_BIOS_ARGUMENTS
 
typedef VP_STATUS(NTAPIPINT10_CALL_BIOS) (IN PVOID Context, IN OUT PINT10_BIOS_ARGUMENTS BiosArguments)
 
typedef VP_STATUS(NTAPIPINT10_ALLOCATE_BUFFER) (IN PVOID Context, OUT PUSHORT Seg, OUT PUSHORT Off, IN OUT PULONG Length)
 
typedef VP_STATUS(NTAPIPINT10_FREE_BUFFER) (IN PVOID Context, IN USHORT Seg, IN USHORT Off)
 
typedef VP_STATUS(NTAPIPINT10_READ_MEMORY) (IN PVOID Context, IN USHORT Seg, IN USHORT Off, OUT PVOID Buffer, IN ULONG Length)
 
typedef VP_STATUS(NTAPIPINT10_WRITE_MEMORY) (IN PVOID Context, IN USHORT Seg, IN USHORT Off, IN PVOID Buffer, IN ULONG Length)
 
typedef VP_STATUS(NTAPIPROTECT_WC_MEMORY) (IN PVOID Context, IN PVOID HwDeviceExtension)
 
typedef VP_STATUS(NTAPIRESTORE_WC_MEMORY) (IN PVOID Context, IN PVOID HwDeviceExtension)
 
typedef enum _VIDEO_DEVICE_DATA_TYPE VIDEO_DEVICE_DATA_TYPE
 
typedef enum _VIDEO_DEVICE_DATA_TYPEPVIDEO_DEVICE_DATA_TYPE
 
typedef VP_STATUS(NTAPIPMINIPORT_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 VP_STATUS(NTAPIPMINIPORT_GET_REGISTRY_ROUTINE) (IN PVOID HwDeviceExtension, IN PVOID Context, IN OUT PWSTR ValueName, IN OUT PVOID ValueData, IN ULONG ValueLength)
 
typedef VOID(NTAPIPMINIPORT_DPC_ROUTINE) (IN PVOID HwDeviceExtension, IN PVOID Context)
 
typedef BOOLEAN(NTAPIPMINIPORT_SYNCHRONIZE_ROUTINE) (IN PVOID Context)
 
typedef VOID(NTAPIPVIDEO_BUGCHECK_CALLBACK) (IN PVOID HwDeviceExtension, IN ULONG BugcheckCode, IN PUCHAR Buffer, IN ULONG BufferSize)
 
typedef enum VIDEO_SYNCHRONIZE_PRIORITY VIDEO_SYNCHRONIZE_PRIORITY
 
typedef enum VIDEO_SYNCHRONIZE_PRIORITYPVIDEO_SYNCHRONIZE_PRIORITY
 
typedef enum _VP_POOL_TYPE VP_POOL_TYPE
 
typedef enum _VP_POOL_TYPEPVP_POOL_TYPE
 
typedef enum _DMA_FLAGS DMA_FLAGS
 
typedef struct _VIDEO_HARDWARE_CONFIGURATION_DATA VIDEO_HARDWARE_CONFIGURATION_DATA
 
typedef struct _VIDEO_HARDWARE_CONFIGURATION_DATAPVIDEO_HARDWARE_CONFIGURATION_DATA
 
typedef struct _VIDEO_X86_BIOS_ARGUMENTS VIDEO_X86_BIOS_ARGUMENTS
 
typedef struct _VIDEO_X86_BIOS_ARGUMENTSPVIDEO_X86_BIOS_ARGUMENTS
 
typedef enum VIDEO_DEBUG_LEVEL VIDEO_DEBUG_LEVEL
 
typedef enum VIDEO_DEBUG_LEVELPVIDEO_DEBUG_LEVEL
 
typedef VP_STATUS(NTAPIPDRIVER_IO_PORT_UCHAR) (IN ULONG_PTR Context, IN ULONG Port, IN UCHAR AccessMode, IN PUCHAR Data)
 
typedef VP_STATUS(NTAPIPDRIVER_IO_PORT_UCHAR_STRING) (IN ULONG_PTR Context, IN ULONG Port, IN UCHAR AccessMode, IN PUCHAR Data, IN ULONG DataLength)
 
typedef VP_STATUS(NTAPIPDRIVER_IO_PORT_ULONG) (IN ULONG_PTR Context, IN ULONG Port, IN UCHAR AccessMode, IN PULONG Data)
 
typedef VP_STATUS(NTAPIPDRIVER_IO_PORT_ULONG_STRING) (IN ULONG_PTR Context, IN ULONG Port, IN UCHAR AccessMode, IN PULONG Data, IN ULONG DataLength)
 
typedef VP_STATUS(NTAPIPDRIVER_IO_PORT_USHORT) (IN ULONG_PTR Context, IN ULONG Port, IN UCHAR AccessMode, IN PUSHORT Data)
 
typedef VP_STATUS(NTAPIPDRIVER_IO_PORT_USHORT_STRING) (IN ULONG_PTR Context, IN ULONG Port, IN UCHAR AccessMode, IN PUSHORT Data, IN ULONG DataLength)
 
typedef struct __VRB_SG VRB_SG
 
typedef struct __VRB_SGPVRB_SG
 
typedef enum _VP_LOCK_OPERATION VP_LOCK_OPERATION
 
typedef struct _VP_DEVICE_DESCRIPTION VP_DEVICE_DESCRIPTION
 
typedef struct _VP_DEVICE_DESCRIPTIONPVP_DEVICE_DESCRIPTION
 
typedef struct _VIDEO_CHILD_STATE VIDEO_CHILD_STATE
 
typedef struct _VIDEO_CHILD_STATEPVIDEO_CHILD_STATE
 
typedef struct _VIDEO_CHILD_STATE_CONFIGURATION VIDEO_CHILD_STATE_CONFIGURATION
 
typedef struct _VIDEO_CHILD_STATE_CONFIGURATIONPVIDEO_CHILD_STATE_CONFIGURATION
 
typedef struct _VIDEO_HW_INITIALIZATION_DATA VIDEO_HW_INITIALIZATION_DATA
 
typedef struct _VIDEO_HW_INITIALIZATION_DATAPVIDEO_HW_INITIALIZATION_DATA
 
typedef struct _I2C_FNC_TABLE I2C_FNC_TABLE
 
typedef struct _I2C_FNC_TABLEPI2C_FNC_TABLE
 
typedef struct _DDC_CONTROL DDC_CONTROL
 
typedef struct _DDC_CONTROLPDDC_CONTROL
 
typedef enum _VIDEO_PORT_SERVICES VIDEO_PORT_SERVICES
 
typedef struct _VIDEO_PORT_AGP_INTERFACE VIDEO_PORT_AGP_INTERFACE
 
typedef struct _VIDEO_PORT_AGP_INTERFACEPVIDEO_PORT_AGP_INTERFACE
 
typedef struct _VIDEO_PORT_AGP_INTERFACE_2 VIDEO_PORT_AGP_INTERFACE_2
 
typedef struct _VIDEO_PORT_AGP_INTERFACE_2PVIDEO_PORT_AGP_INTERFACE_2
 
typedef struct _VIDEO_PORT_I2C_INTERFACE VIDEO_PORT_I2C_INTERFACE
 
typedef struct _VIDEO_PORT_I2C_INTERFACEPVIDEO_PORT_I2C_INTERFACE
 
typedef struct _VIDEO_PORT_I2C_INTERFACE_2 VIDEO_PORT_I2C_INTERFACE_2
 
typedef struct _VIDEO_PORT_I2C_INTERFACE_2PVIDEO_PORT_I2C_INTERFACE_2
 
typedef struct _VIDEO_PORT_INT10_INTERFACE VIDEO_PORT_INT10_INTERFACE
 
typedef struct _VIDEO_PORT_INT10_INTERFACEPVIDEO_PORT_INT10_INTERFACE
 
typedef struct _VIDEO_PORT_WCMEMORYPROTECTION_INTERFACE VIDEO_PORT_WCMEMORYPROTECTION_INTERFACE
 
typedef struct _VIDEO_PORT_WCMEMORYPROTECTION_INTERFACEPVIDEO_PORT_WCMEMORYPROTECTION_INTERFACE
 
typedef struct _VPOSVERSIONINFO VPOSVERSIONINFO
 
typedef struct _VPOSVERSIONINFOPVPOSVERSIONINFO
 
typedef struct _VIDEO_PORT_DEBUG_REPORT_INTERFACE VIDEO_PORT_DEBUG_REPORT_INTERFACE
 
typedef struct _VIDEO_PORT_DEBUG_REPORT_INTERFACEPVIDEO_PORT_DEBUG_REPORT_INTERFACE
 

Enumerations

enum  _HW_DMA_RETURN { DmaAsyncReturn , DmaSyncReturn }
 
enum  _VIDEO_CHILD_TYPE { Monitor = 1 , NonPrimaryChip , VideoChip , Other }
 
enum  _VIDEO_DEVICE_DATA_TYPE {
  VpMachineData = 0 , VpCmosData , VpBusData , VpControllerData ,
  VpMonitorData
}
 
enum  VIDEO_SYNCHRONIZE_PRIORITY { VpLowPriority = 0 , VpMediumPriority , VpHighPriority }
 
enum  _VP_POOL_TYPE { VpNonPagedPool = 0 , VpPagedPool , VpNonPagedPoolCacheAligned = 4 , VpPagedPoolCacheAligned }
 
enum  _DMA_FLAGS { VideoPortUnlockAfterDma = 1 , VideoPortKeepPagesLocked , VideoPortDmaInitOnly }
 
enum  VIDEO_DEBUG_LEVEL { Error = 0 , Warn , Trace , Info }
 
enum  _VP_LOCK_OPERATION { VpReadAccess = 0 , VpWriteAccess , VpModifyAccess }
 
enum  _VIDEO_PORT_SERVICES {
  VideoPortServicesAGP = 1 , VideoPortServicesI2C , VideoPortServicesHeadless , VideoPortServicesInt10 ,
  VideoPortServicesDebugReport , VideoPortServicesWCMemoryProtection
}
 

Functions

ULONG NTAPI DriverEntry (PVOID Context1, PVOID Context2)
 
VPAPI VP_STATUS NTAPI VideoPortAllocateBuffer (IN PVOID HwDeviceExtension, IN ULONG Size, OUT PVOID *Buffer)
 
VPAPI VOID NTAPI VideoPortAcquireDeviceLock (IN PVOID HwDeviceExtension)
 
VPAPI ULONG NTAPI VideoPortCompareMemory (IN PVOID Source1, IN PVOID Source2, IN SIZE_T Length)
 
VPAPI BOOLEAN NTAPI VideoPortDDCMonitorHelper (IN PVOID HwDeviceExtension, IN PVOID DDCControl, IN OUT PUCHAR EdidBuffer, IN ULONG EdidBufferSize)
 
VPAPI VOID __cdecl VideoPortDebugPrint (IN VIDEO_DEBUG_LEVEL DebugPrintLevel, IN PSTR DebugMessage, IN ...)
 
VPAPI VP_STATUS NTAPI VideoPortDisableInterrupt (IN PVOID HwDeviceExtension)
 
VPAPI VP_STATUS NTAPI VideoPortEnableInterrupt (IN PVOID HwDeviceExtension)
 
VPAPI VP_STATUS NTAPI VideoPortEnumerateChildren (IN PVOID HwDeviceExtension, IN PVOID Reserved)
 
VPAPI VOID NTAPI VideoPortFreeDeviceBase (IN PVOID HwDeviceExtension, IN PVOID MappedAddress)
 
VPAPI VP_STATUS NTAPI VideoPortGetAccessRanges (_In_ PVOID HwDeviceExtension, _In_opt_ ULONG NumRequestedResources, _In_reads_opt_(NumRequestedResources) PIO_RESOURCE_DESCRIPTOR RequestedResources, _In_ ULONG NumAccessRanges, _Out_writes_(NumAccessRanges) PVIDEO_ACCESS_RANGE AccessRanges, _In_ PVOID VendorId, _In_ PVOID DeviceId, _Out_ PULONG Slot)
 Retrieves bus-relative (mainly PCI) hardware resources access ranges and, if possible, claims these resources for the caller.
 
VPAPI PVOID NTAPI VideoPortGetAssociatedDeviceExtension (IN PVOID DeviceObject)
 
VPAPI ULONG NTAPI VideoPortGetBusData (IN PVOID HwDeviceExtension, IN BUS_DATA_TYPE BusDataType, IN ULONG SlotNumber, IN OUT PVOID Buffer, IN ULONG Offset, IN ULONG Length)
 
VPAPI UCHAR NTAPI VideoPortGetCurrentIrql (VOID)
 
VPAPI PVOID NTAPI VideoPortGetDeviceBase (IN PVOID HwDeviceExtension, IN PHYSICAL_ADDRESS IoAddress, IN ULONG NumberOfUchars, IN UCHAR InIoSpace)
 
VPAPI VP_STATUS NTAPI VideoPortGetDeviceData (IN PVOID HwDeviceExtension, IN VIDEO_DEVICE_DATA_TYPE DeviceDataType, IN PMINIPORT_QUERY_DEVICE_ROUTINE CallbackRoutine, IN PVOID Context)
 
VPAPI VP_STATUS NTAPI VideoPortGetRegistryParameters (IN PVOID HwDeviceExtension, IN PWSTR ParameterName, IN UCHAR IsParameterFileName, IN PMINIPORT_GET_REGISTRY_ROUTINE CallbackRoutine, IN PVOID Context)
 
VPAPI PVOID NTAPI VideoPortGetRomImage (IN PVOID HwDeviceExtension, IN PVOID Unused1, IN ULONG Unused2, IN ULONG Length)
 
VPAPI VP_STATUS NTAPI VideoPortGetVgaStatus (IN PVOID HwDeviceExtension, OUT PULONG VgaStatus)
 
VPAPI LONG FASTCALL VideoPortInterlockedDecrement (IN PLONG Addend)
 
VPAPI LONG FASTCALL VideoPortInterlockedExchange (IN OUT PLONG Target, IN LONG Value)
 
VPAPI LONG FASTCALL VideoPortInterlockedIncrement (IN PLONG Addend)
 
VPAPI ULONG NTAPI VideoPortInitialize (IN PVOID Argument1, IN PVOID Argument2, IN PVIDEO_HW_INITIALIZATION_DATA HwInitializationData, IN PVOID HwContext)
 
VPAPI VP_STATUS NTAPI VideoPortInt10 (IN PVOID HwDeviceExtension, IN PVIDEO_X86_BIOS_ARGUMENTS BiosArguments)
 
VPAPI VOID NTAPI VideoPortLogError (IN PVOID HwDeviceExtension, IN PVIDEO_REQUEST_PACKET Vrp OPTIONAL, IN VP_STATUS ErrorCode, IN ULONG UniqueId)
 
VPAPI VP_STATUS NTAPI 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 VP_STATUS NTAPI VideoPortMapMemory (IN PVOID HwDeviceExtension, IN PHYSICAL_ADDRESS PhysicalAddress, IN OUT PULONG Length, IN PULONG InIoSpace, IN OUT PVOID *VirtualAddress)
 
VPAPI VOID NTAPI VideoPortMoveMemory (IN PVOID Destination, IN PVOID Source, IN ULONG Length)
 
VPAPI LONGLONG NTAPI VideoPortQueryPerformanceCounter (IN PVOID HwDeviceExtension, OUT PLONGLONG PerformanceFrequency OPTIONAL)
 
VPAPI VP_STATUS NTAPI VideoPortQueryServices (_In_ PVOID HwDeviceExtension, _In_ VIDEO_PORT_SERVICES ServicesType, _Inout_ PINTERFACE Interface)
 
VPAPI BOOLEAN NTAPI VideoPortQueueDpc (IN PVOID HwDeviceExtension, IN PMINIPORT_DPC_ROUTINE CallbackRoutine, IN PVOID Context)
 
VPAPI VOID NTAPI VideoPortReadPortBufferUchar (IN PUCHAR Port, OUT PUCHAR Buffer, IN ULONG Count)
 
VPAPI VOID NTAPI VideoPortReadPortBufferUlong (IN PULONG Port, OUT PULONG Buffer, IN ULONG Count)
 
VPAPI VOID NTAPI VideoPortReadPortBufferUshort (IN PUSHORT Port, OUT PUSHORT Buffer, IN ULONG Count)
 
VPAPI UCHAR NTAPI VideoPortReadPortUchar (IN PUCHAR Port)
 
VPAPI ULONG NTAPI VideoPortReadPortUlong (IN PULONG Port)
 
VPAPI USHORT NTAPI VideoPortReadPortUshort (IN PUSHORT Port)
 
VPAPI VOID NTAPI VideoPortReadRegisterBufferUchar (IN PUCHAR Register, OUT PUCHAR Buffer, IN ULONG Count)
 
VPAPI VOID NTAPI VideoPortReadRegisterBufferUlong (IN PULONG Register, OUT PULONG Buffer, IN ULONG Count)
 
VPAPI VOID NTAPI VideoPortReadRegisterBufferUshort (IN PUSHORT Register, OUT PUSHORT Buffer, IN ULONG Count)
 
VPAPI UCHAR NTAPI VideoPortReadRegisterUchar (IN PUCHAR Register)
 
VPAPI ULONG NTAPI VideoPortReadRegisterUlong (IN PULONG Register)
 
VPAPI USHORT NTAPI VideoPortReadRegisterUshort (IN PUSHORT Register)
 
VPAPI VOID NTAPI VideoPortReleaseBuffer (IN PVOID HwDeviceExtension, IN PVOID Buffer)
 
VPAPI VOID NTAPI VideoPortReleaseDeviceLock (IN PVOID HwDeviceExtension)
 
VPAPI BOOLEAN NTAPI VideoPortScanRom (PVOID HwDeviceExtension, PUCHAR RomBase, ULONG RomLength, PUCHAR String)
 
VPAPI ULONG NTAPI VideoPortSetBusData (IN PVOID HwDeviceExtension, IN BUS_DATA_TYPE BusDataType, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
 
VPAPI VP_STATUS NTAPI VideoPortSetRegistryParameters (IN PVOID HwDeviceExtension, IN PWSTR ValueName, IN PVOID ValueData, IN ULONG ValueLength)
 
VPAPI VP_STATUS NTAPI VideoPortSetTrappedEmulatorPorts (IN PVOID HwDeviceExtension, IN ULONG NumAccessRanges, IN PVIDEO_ACCESS_RANGE AccessRange)
 
VPAPI VOID NTAPI VideoPortStallExecution (IN ULONG Microseconds)
 
VPAPI VOID NTAPI VideoPortStartTimer (IN PVOID HwDeviceExtension)
 
VPAPI VOID NTAPI VideoPortStopTimer (IN PVOID HwDeviceExtension)
 
VPAPI BOOLEAN NTAPI VideoPortSynchronizeExecution (IN PVOID HwDeviceExtension, IN VIDEO_SYNCHRONIZE_PRIORITY Priority, IN PMINIPORT_SYNCHRONIZE_ROUTINE SynchronizeRoutine, IN PVOID Context)
 
VPAPI VP_STATUS NTAPI VideoPortUnmapMemory (IN PVOID HwDeviceExtension, IN OUT PVOID VirtualAddress, IN HANDLE ProcessHandle)
 
VPAPI VP_STATUS NTAPI VideoPortVerifyAccessRanges (_In_ PVOID HwDeviceExtension, _In_opt_ ULONG NumAccessRanges, _In_reads_opt_(NumAccessRanges) PVIDEO_ACCESS_RANGE AccessRanges)
 Claims or releases a range of hardware resources and checks for conflicts.
 
VPAPI VOID NTAPI VideoPortWritePortBufferUchar (IN PUCHAR Port, IN PUCHAR Buffer, IN ULONG Count)
 
VPAPI VOID NTAPI VideoPortWritePortBufferUlong (IN PULONG Port, IN PULONG Buffer, IN ULONG Count)
 
VPAPI VOID NTAPI VideoPortWritePortBufferUshort (IN PUSHORT Port, IN PUSHORT Buffer, IN ULONG Count)
 
VPAPI VOID NTAPI VideoPortWritePortUchar (IN PUCHAR Port, IN UCHAR Value)
 
VPAPI VOID NTAPI VideoPortWritePortUlong (IN PULONG Port, IN ULONG Value)
 
VPAPI VOID NTAPI VideoPortWritePortUshort (IN PUSHORT Port, IN USHORT Value)
 
VPAPI VOID NTAPI VideoPortWriteRegisterBufferUchar (IN PUCHAR Register, IN PUCHAR Buffer, IN ULONG Count)
 
VPAPI VOID NTAPI VideoPortWriteRegisterBufferUlong (IN PULONG Register, IN PULONG Buffer, IN ULONG Count)
 
VPAPI VOID NTAPI VideoPortWriteRegisterBufferUshort (IN PUSHORT Register, IN PUSHORT Buffer, IN ULONG Count)
 
VPAPI VOID NTAPI VideoPortWriteRegisterUchar (IN PUCHAR Register, IN UCHAR Value)
 
VPAPI VOID NTAPI VideoPortWriteRegisterUlong (IN PULONG Register, IN ULONG Value)
 
VPAPI VOID NTAPI VideoPortWriteRegisterUshort (IN PUSHORT Register, IN USHORT Value)
 
VPAPI VOID NTAPI VideoPortZeroDeviceMemory (IN PVOID Destination, IN ULONG Length)
 
VPAPI VOID NTAPI VideoPortZeroMemory (IN PVOID Destination, IN ULONG Length)
 
VPAPI PVOID NTAPI VideoPortAllocateContiguousMemory (IN PVOID HwDeviceExtension, IN ULONG NumberOfBytes, IN PHYSICAL_ADDRESS HighestAcceptableAddress)
 
VPAPI PVOID NTAPI VideoPortGetCommonBuffer (IN PVOID HwDeviceExtension, IN ULONG DesiredLength, IN ULONG Alignment, OUT PPHYSICAL_ADDRESS LogicalAddress, OUT PULONG pActualLength, IN BOOLEAN CacheEnabled)
 
VPAPI VOID NTAPI VideoPortFreeCommonBuffer (IN PVOID HwDeviceExtension, IN ULONG Length, IN PVOID VirtualAddress, IN PHYSICAL_ADDRESS LogicalAddress, IN BOOLEAN CacheEnabled)
 
VPAPI PDMA NTAPI VideoPortDoDma (IN PVOID HwDeviceExtension, IN PDMA pDma, IN DMA_FLAGS DmaFlags)
 
VPAPI BOOLEAN NTAPI VideoPortLockPages (IN PVOID HwDeviceExtension, IN OUT PVIDEO_REQUEST_PACKET pVrp, IN OUT PEVENT pUEvent, IN PEVENT pDisplayEvent, IN DMA_FLAGS DmaFlags)
 
VPAPI BOOLEAN NTAPI VideoPortUnlockPages (IN PVOID hwDeviceExtension, IN OUT PDMA pDma)
 
VPAPI BOOLEAN NTAPI VideoPortSignalDmaComplete (IN PVOID HwDeviceExtension, IN PDMA pDmaHandle)
 
VPAPI PVOID NTAPI VideoPortGetMdl (IN PVOID HwDeviceExtension, IN PDMA pDma)
 
VPAPI PVOID NTAPI VideoPortGetDmaContext (IN PVOID HwDeviceExtension, IN PDMA pDma)
 
VPAPI VOID NTAPI VideoPortSetDmaContext (IN PVOID HwDeviceExtension, OUT PDMA pDma, IN PVOID InstanceContext)
 
VPAPI ULONG NTAPI VideoPortGetBytesUsed (IN PVOID HwDeviceExtension, IN PDMA pDma)
 
VPAPI VOID NTAPI VideoPortSetBytesUsed (IN PVOID HwDeviceExtension, IN OUT PDMA pDma, IN ULONG BytesUsed)
 
VPAPI PDMA NTAPI VideoPortAssociateEventsWithDmaHandle (IN PVOID HwDeviceExtension, IN OUT PVIDEO_REQUEST_PACKET pVrp, IN PVOID MappedUserEvent, IN PVOID DisplayDriverEvent)
 
VPAPI PDMA NTAPI 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 BOOLEAN NTAPI VideoPortUnmapDmaMemory (IN PVOID HwDeviceExtension, IN PVOID VirtualAddress, IN HANDLE ProcessHandle, IN PDMA BoardMemoryHandle)
 
VPAPI VP_STATUS NTAPI VideoPortCreateSecondaryDisplay (IN PVOID HwDeviceExtension, IN OUT PVOID *SecondaryDeviceExtension, IN ULONG ulFlag)
 
VPAPI PVP_DMA_ADAPTER NTAPI VideoPortGetDmaAdapter (IN PVOID HwDeviceExtension, IN PVP_DEVICE_DESCRIPTION VpDeviceDescription)
 
VPAPI VOID NTAPI VideoPortPutDmaAdapter (IN PVOID HwDeviceExtension, IN PVP_DMA_ADAPTER VpDmaAdapter)
 
VPAPI PVOID NTAPI VideoPortAllocateCommonBuffer (IN PVOID HwDeviceExtension, IN PVP_DMA_ADAPTER VpDmaAdapter, IN ULONG DesiredLength, OUT PPHYSICAL_ADDRESS LogicalAddress, IN BOOLEAN CacheEnabled, PVOID Reserved)
 
VPAPI VOID NTAPI VideoPortReleaseCommonBuffer (IN PVOID HwDeviceExtension, IN PVP_DMA_ADAPTER VpDmaAdapter, IN ULONG Length, IN PHYSICAL_ADDRESS LogicalAddress, IN PVOID VirtualAddress, IN BOOLEAN CacheEnabled)
 
VPAPI PVOID NTAPI VideoPortLockBuffer (IN PVOID HwDeviceExtension, IN PVOID BaseAddress, IN ULONG Length, IN VP_LOCK_OPERATION Operation)
 
VPAPI VOID NTAPI VideoPortUnlockBuffer (IN PVOID HwDeviceExtension, IN PVOID Mdl)
 
VPAPI VP_STATUS NTAPI 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 VP_STATUS NTAPI VideoPortCompleteDma (IN PVOID HwDeviceExtension, IN PVP_DMA_ADAPTER VpDmaAdapter, IN PVP_SCATTER_GATHER_LIST VpScatterGather, IN BOOLEAN WriteToDevice)
 
VPAPI VP_STATUS NTAPI VideoPortCreateEvent (IN PVOID HwDeviceExtension, IN ULONG EventFlag, IN PVOID Unused, OUT PEVENT *ppEvent)
 
VPAPI VP_STATUS NTAPI VideoPortDeleteEvent (IN PVOID HwDeviceExtension, IN PEVENT pEvent)
 
VPAPI LONG NTAPI VideoPortSetEvent (IN PVOID HwDeviceExtension, IN PEVENT pEvent)
 
VPAPI VOID NTAPI VideoPortClearEvent (IN PVOID HwDeviceExtension, IN PEVENT pEvent)
 
VPAPI LONG NTAPI VideoPortReadStateEvent (IN PVOID HwDeviceExtension, IN PEVENT pEvent)
 
VPAPI VP_STATUS NTAPI VideoPortWaitForSingleObject (IN PVOID HwDeviceExtension, IN PVOID Object, IN PLARGE_INTEGER Timeout OPTIONAL)
 
VPAPI PVOID NTAPI VideoPortAllocatePool (IN PVOID HwDeviceExtension, IN VP_POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag)
 
VPAPI VOID NTAPI VideoPortFreePool (IN PVOID HwDeviceExtension, IN PVOID Ptr)
 
VPAPI VP_STATUS NTAPI VideoPortCreateSpinLock (IN PVOID HwDeviceExtension, OUT PSPIN_LOCK *SpinLock)
 
VPAPI VP_STATUS NTAPI VideoPortDeleteSpinLock (IN PVOID HwDeviceExtension, IN PSPIN_LOCK SpinLock)
 
VPAPI VOID NTAPI VideoPortAcquireSpinLock (IN PVOID HwDeviceExtension, IN PSPIN_LOCK SpinLock, OUT PUCHAR OldIrql)
 
VPAPI VOID NTAPI VideoPortAcquireSpinLockAtDpcLevel (IN PVOID HwDeviceExtension, IN PSPIN_LOCK SpinLock)
 
VPAPI VOID NTAPI VideoPortReleaseSpinLock (IN PVOID HwDeviceExtension, IN PSPIN_LOCK SpinLock, IN UCHAR NewIrql)
 
VPAPI VOID NTAPI VideoPortReleaseSpinLockFromDpcLevel (IN PVOID HwDeviceExtension, IN PSPIN_LOCK SpinLock)
 
VPAPI VOID NTAPI VideoPortQuerySystemTime (OUT PLARGE_INTEGER CurrentTime)
 
VPAPI BOOLEAN NTAPI VideoPortCheckForDeviceExistence (IN PVOID HwDeviceExtension, IN USHORT VendorId, IN USHORT DeviceId, IN UCHAR RevisionId, IN USHORT SubVendorId, IN USHORT SubSystemId, IN ULONG Flags)
 
VPAPI ULONG NTAPI VideoPortGetAssociatedDeviceID (IN PVOID DeviceObject)
 
VPAPI VP_STATUS NTAPI VideoPortFlushRegistry (PVOID HwDeviceExtension)
 
VPAPI VP_STATUS NTAPI VideoPortGetVersion (IN PVOID HwDeviceExtension, IN OUT PVPOSVERSIONINFO pVpOsVersionInfo)
 
VPAPI BOOLEAN NTAPI VideoPortIsNoVesa (VOID)
 
VPAPI VP_STATUS NTAPI VideoPortRegisterBugcheckCallback (IN PVOID HwDeviceExtension, IN ULONG BugcheckCode, IN PVIDEO_BUGCHECK_CALLBACK Callback, IN ULONG BugcheckDataSize)
 
VPAPI PVIDEO_DEBUG_REPORT NTAPI VideoPortDbgReportCreate (IN PVOID HwDeviceExtension, IN ULONG ulCode, IN ULONG_PTR ulpArg1, IN ULONG_PTR ulpArg2, IN ULONG_PTR ulpArg3, IN ULONG_PTR ulpArg4)
 
VPAPI BOOLEAN NTAPI VideoPortDbgReportSecondaryData (IN OUT PVIDEO_DEBUG_REPORT pReport, IN PVOID pvData, IN ULONG ulDataSize)
 
VPAPI VOID NTAPI VideoPortDbgReportComplete (IN OUT PVIDEO_DEBUG_REPORT pReport)
 

Macro Definition Documentation

◆ __VIDEO_H__

#define __VIDEO_H__

Definition at line 25 of file video.h.

◆ BUGCHECK_DATA_SIZE_RESERVED

#define BUGCHECK_DATA_SIZE_RESERVED   48

Definition at line 149 of file video.h.

◆ CDE_USE_REVISION

#define CDE_USE_REVISION   0x00000002

Definition at line 147 of file video.h.

◆ CDE_USE_SUBSYSTEM_IDS

#define CDE_USE_SUBSYSTEM_IDS   0x00000001

Definition at line 146 of file video.h.

◆ DEVICE_VGA_ENABLED

#define DEVICE_VGA_ENABLED   1

Definition at line 143 of file video.h.

◆ DISPLAY_ADAPTER_HW_ID

#define DISPLAY_ADAPTER_HW_ID   0xFFFFFFFF

Definition at line 115 of file video.h.

◆ EVENT_TYPE_MASK

#define EVENT_TYPE_MASK   1

Definition at line 107 of file video.h.

◆ GET_VIDEO_PHYSICAL_ADDRESS

#define GET_VIDEO_PHYSICAL_ADDRESS (   scatterList,
  VirtualAddress,
  InputBuffer,
  pLength,
  Address 
)
Value:
do { \
ULONG_PTR byteOffset; \
\
byteOffset = (PCHAR) VirtualAddress - (PCHAR)InputBuffer; \
while (byteOffset >= scatterList->Length) { \
byteOffset -= scatterList->Length; \
scatterList++; \
} \
*pLength = scatterList->Length - byteOffset; \
Address = (ULONG_PTR) (scatterList->PhysicalAddress + byteOffset); \
} while (0)
#define ULONG_PTR
Definition: config.h:101
#define PCHAR
Definition: match.c:90
static WCHAR Address[46]
Definition: ping.c:68
uint32_t ULONG_PTR
Definition: typedefs.h:65
char * PCHAR
Definition: typedefs.h:51
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
Definition: wdfiotarget.h:953

Definition at line 78 of file video.h.

◆ GET_VIDEO_SCATTERGATHER

#define GET_VIDEO_SCATTERGATHER (   ppDma)    (**(PVRB_SG **)ppDma)

Definition at line 95 of file video.h.

◆ INITIAL_EVENT_NOT_SIGNALED

#define INITIAL_EVENT_NOT_SIGNALED   0

Definition at line 112 of file video.h.

◆ INITIAL_EVENT_SIGNALED

#define INITIAL_EVENT_SIGNALED   2

Definition at line 113 of file video.h.

◆ INITIAL_EVENT_STATE_MASK

#define INITIAL_EVENT_STATE_MASK   2

Definition at line 111 of file video.h.

◆ NOTIFICATION_EVENT

#define NOTIFICATION_EVENT   1

Definition at line 109 of file video.h.

◆ PAGED_CODE

#define PAGED_CODE ( )

Definition at line 57 of file video.h.

◆ SET_DISPLAY_EVENT

#define SET_DISPLAY_EVENT   0x02

Definition at line 105 of file video.h.

◆ SET_USER_EVENT

#define SET_USER_EVENT   0x01

Definition at line 104 of file video.h.

◆ SIZE_OF_NT4_VIDEO_HW_INITIALIZATION_DATA

#define SIZE_OF_NT4_VIDEO_HW_INITIALIZATION_DATA   FIELD_OFFSET(VIDEO_HW_INITIALIZATION_DATA, HwStartDma)

Definition at line 119 of file video.h.

◆ SIZE_OF_NT4_VIDEO_PORT_CONFIG_INFO

#define SIZE_OF_NT4_VIDEO_PORT_CONFIG_INFO   FIELD_OFFSET(VIDEO_PORT_CONFIG_INFO, Master)

Definition at line 101 of file video.h.

◆ SIZE_OF_W2K_VIDEO_HW_INITIALIZATION_DATA

#define SIZE_OF_W2K_VIDEO_HW_INITIALIZATION_DATA   FIELD_OFFSET(VIDEO_HW_INITIALIZATION_DATA, Reserved)

Definition at line 120 of file video.h.

◆ SIZE_OF_WXP_VIDEO_HW_INITIALIZATION_DATA

#define SIZE_OF_WXP_VIDEO_HW_INITIALIZATION_DATA   (SIZE_OF_W2K_VIDEO_HW_INITIALIZATION_DATA + sizeof(ULONG))

Definition at line 121 of file video.h.

◆ SIZE_OF_WXP_VIDEO_PORT_CONFIG_INFO

#define SIZE_OF_WXP_VIDEO_PORT_CONFIG_INFO   sizeof(VIDEO_PORT_CONFIG_INFO)

Definition at line 102 of file video.h.

◆ SYNCHRONIZATION_EVENT

#define SYNCHRONIZATION_EVENT   0

Definition at line 108 of file video.h.

◆ VIDEO_DEBUG_REPORT_MAX_SIZE

#define VIDEO_DEBUG_REPORT_MAX_SIZE   0x8000

Definition at line 151 of file video.h.

◆ VIDEO_ENUM_INVALID_DEVICE

#define VIDEO_ENUM_INVALID_DEVICE   ERROR_INVALID_NAME

Definition at line 141 of file video.h.

◆ VIDEO_ENUM_MORE_DEVICES

#define VIDEO_ENUM_MORE_DEVICES   ERROR_CONTINUE

Definition at line 139 of file video.h.

◆ VIDEO_ENUM_NO_MORE_DEVICES

#define VIDEO_ENUM_NO_MORE_DEVICES   ERROR_NO_MORE_DEVICES

Definition at line 140 of file video.h.

◆ VIDEO_INVALID_CHILD_ID

#define VIDEO_INVALID_CHILD_ID   0xFFFFFFFF

Definition at line 117 of file video.h.

◆ VIDEO_MEMORY_SPACE_DENSE

#define VIDEO_MEMORY_SPACE_DENSE   0x04

Definition at line 135 of file video.h.

◆ VIDEO_MEMORY_SPACE_IO

#define VIDEO_MEMORY_SPACE_IO   0x01

Definition at line 133 of file video.h.

◆ VIDEO_MEMORY_SPACE_MEMORY

#define VIDEO_MEMORY_SPACE_MEMORY   0x00

Definition at line 132 of file video.h.

◆ VIDEO_MEMORY_SPACE_P6CACHE

#define VIDEO_MEMORY_SPACE_P6CACHE   0x08

Definition at line 136 of file video.h.

◆ VIDEO_MEMORY_SPACE_USER_MODE

#define VIDEO_MEMORY_SPACE_USER_MODE   0x02

Definition at line 134 of file video.h.

◆ VIDEO_PORT_AGP_INTERFACE_VERSION_1

#define VIDEO_PORT_AGP_INTERFACE_VERSION_1   1

Definition at line 123 of file video.h.

◆ VIDEO_PORT_AGP_INTERFACE_VERSION_2

#define VIDEO_PORT_AGP_INTERFACE_VERSION_2   2

Definition at line 124 of file video.h.

◆ VIDEO_PORT_DEBUG_REPORT_INTERFACE_VERSION_1

#define VIDEO_PORT_DEBUG_REPORT_INTERFACE_VERSION_1   1

Definition at line 129 of file video.h.

◆ VIDEO_PORT_I2C_INTERFACE_VERSION_1

#define VIDEO_PORT_I2C_INTERFACE_VERSION_1   1

Definition at line 125 of file video.h.

◆ VIDEO_PORT_I2C_INTERFACE_VERSION_2

#define VIDEO_PORT_I2C_INTERFACE_VERSION_2   2

Definition at line 126 of file video.h.

◆ VIDEO_PORT_INT10_INTERFACE_VERSION_1

#define VIDEO_PORT_INT10_INTERFACE_VERSION_1   1

Definition at line 127 of file video.h.

◆ VIDEO_PORT_WCMEMORYPROTECTION_INTERFACE_VERSION_1

#define VIDEO_PORT_WCMEMORYPROTECTION_INTERFACE_VERSION_1   1

Definition at line 128 of file video.h.

◆ VIDEO_RANGE_10_BIT_DECODE

#define VIDEO_RANGE_10_BIT_DECODE   2

Definition at line 99 of file video.h.

◆ VIDEO_RANGE_PASSIVE_DECODE

#define VIDEO_RANGE_PASSIVE_DECODE   1

Definition at line 98 of file video.h.

◆ VideoDebugPrint

#define VideoDebugPrint (   x)

Definition at line 75 of file video.h.

◆ VPAPI

#define VPAPI   DECLSPEC_IMPORT

Definition at line 47 of file video.h.

Typedef Documentation

◆ DDC_CONTROL

◆ DMA_EVENT_FLAGS

Definition at line 154 of file video.h.

◆ DMA_FLAGS

◆ HW_DMA_RETURN

◆ I2C_CALLBACKS

◆ I2C_FNC_TABLE

◆ INT10_BIOS_ARGUMENTS

◆ PDDC_CONTROL

◆ PDMA

typedef struct __DMA_PARAMETERS* PDMA

Definition at line 158 of file video.h.

◆ PDRIVER_IO_PORT_UCHAR

typedef VP_STATUS(NTAPI * PDRIVER_IO_PORT_UCHAR) (IN ULONG_PTR Context, IN ULONG Port, IN UCHAR AccessMode, IN PUCHAR Data)

Definition at line 596 of file video.h.

◆ PDRIVER_IO_PORT_UCHAR_STRING

typedef VP_STATUS(NTAPI * PDRIVER_IO_PORT_UCHAR_STRING) (IN ULONG_PTR Context, IN ULONG Port, IN UCHAR AccessMode, IN PUCHAR Data, IN ULONG DataLength)

Definition at line 603 of file video.h.

◆ PDRIVER_IO_PORT_ULONG

typedef VP_STATUS(NTAPI * PDRIVER_IO_PORT_ULONG) (IN ULONG_PTR Context, IN ULONG Port, IN UCHAR AccessMode, IN PULONG Data)

Definition at line 611 of file video.h.

◆ PDRIVER_IO_PORT_ULONG_STRING

typedef VP_STATUS(NTAPI * PDRIVER_IO_PORT_ULONG_STRING) (IN ULONG_PTR Context, IN ULONG Port, IN UCHAR AccessMode, IN PULONG Data, IN ULONG DataLength)

Definition at line 618 of file video.h.

◆ PDRIVER_IO_PORT_USHORT

typedef VP_STATUS(NTAPI * PDRIVER_IO_PORT_USHORT) (IN ULONG_PTR Context, IN ULONG Port, IN UCHAR AccessMode, IN PUSHORT Data)

Definition at line 626 of file video.h.

◆ PDRIVER_IO_PORT_USHORT_STRING

typedef VP_STATUS(NTAPI * PDRIVER_IO_PORT_USHORT_STRING) (IN ULONG_PTR Context, IN ULONG Port, IN UCHAR AccessMode, IN PUSHORT Data, IN ULONG DataLength)

Definition at line 633 of file video.h.

◆ PEXECUTE_DMA

typedef VOID(NTAPI * PEXECUTE_DMA) (IN PVOID HwDeviceExtension, IN PVP_DMA_ADAPTER VpDmaAdapter, IN PVP_SCATTER_GATHER_LIST SGList, IN PVOID Context)

Definition at line 252 of file video.h.

◆ PHW_DMA_RETURN

◆ PI2C_CALLBACKS

◆ PI2C_FNC_TABLE

◆ PI2C_READ

typedef BOOLEAN(NTAPI * PI2C_READ) (IN PVOID HwDeviceExtension, IN PI2C_CALLBACKS I2CCallbacks, OUT PUCHAR Buffer, IN ULONG Length)

Definition at line 393 of file video.h.

◆ PI2C_READ_2

typedef BOOLEAN(NTAPI * PI2C_READ_2) (IN PVOID HwDeviceExtension, IN PVIDEO_I2C_CONTROL I2CControl, OUT PUCHAR Buffer, IN ULONG Length, IN BOOLEAN EndOfRead)

Definition at line 425 of file video.h.

◆ PI2C_START

typedef BOOLEAN(NTAPI * PI2C_START) (IN PVOID HwDeviceExtension, IN PI2C_CALLBACKS I2CCallbacks)

Definition at line 376 of file video.h.

◆ PI2C_START_2

typedef BOOLEAN(NTAPI * PI2C_START_2) (IN PVOID HwDeviceExtension, IN PVIDEO_I2C_CONTROL I2CControl)

Definition at line 408 of file video.h.

◆ PI2C_STOP

typedef BOOLEAN(NTAPI * PI2C_STOP) (IN PVOID HwDeviceExtension, IN PI2C_CALLBACKS I2CCallbacks)

Definition at line 381 of file video.h.

◆ PI2C_STOP_2

typedef BOOLEAN(NTAPI * PI2C_STOP_2) (IN PVOID HwDeviceExtension, IN PVIDEO_I2C_CONTROL I2CControl)

Definition at line 413 of file video.h.

◆ PI2C_WRITE

typedef BOOLEAN(NTAPI * PI2C_WRITE) (IN PVOID HwDeviceExtension, IN PI2C_CALLBACKS I2CCallbacks, IN PUCHAR Buffer, IN ULONG Length)

Definition at line 386 of file video.h.

◆ PI2C_WRITE_2

typedef BOOLEAN(NTAPI * PI2C_WRITE_2) (IN PVOID HwDeviceExtension, IN PVIDEO_I2C_CONTROL I2CControl, IN PUCHAR Buffer, IN ULONG Length)

Definition at line 418 of file video.h.

◆ PINT10_ALLOCATE_BUFFER

typedef VP_STATUS(NTAPI * PINT10_ALLOCATE_BUFFER) (IN PVOID Context, OUT PUSHORT Seg, OUT PUSHORT Off, IN OUT PULONG Length)

Definition at line 450 of file video.h.

◆ PINT10_BIOS_ARGUMENTS

◆ PINT10_CALL_BIOS

typedef VP_STATUS(NTAPI * PINT10_CALL_BIOS) (IN PVOID Context, IN OUT PINT10_BIOS_ARGUMENTS BiosArguments)

Definition at line 445 of file video.h.

◆ PINT10_FREE_BUFFER

typedef VP_STATUS(NTAPI * PINT10_FREE_BUFFER) (IN PVOID Context, IN USHORT Seg, IN USHORT Off)

Definition at line 457 of file video.h.

◆ PINT10_READ_MEMORY

typedef VP_STATUS(NTAPI * PINT10_READ_MEMORY) (IN PVOID Context, IN USHORT Seg, IN USHORT Off, OUT PVOID Buffer, IN ULONG Length)

Definition at line 463 of file video.h.

◆ PINT10_WRITE_MEMORY

typedef VP_STATUS(NTAPI * PINT10_WRITE_MEMORY) (IN PVOID Context, IN USHORT Seg, IN USHORT Off, IN PVOID Buffer, IN ULONG Length)

Definition at line 471 of file video.h.

◆ PMINIPORT_DPC_ROUTINE

typedef VOID(NTAPI * PMINIPORT_DPC_ROUTINE) (IN PVOID HwDeviceExtension, IN PVOID Context)

Definition at line 517 of file video.h.

◆ PMINIPORT_GET_REGISTRY_ROUTINE

typedef VP_STATUS(NTAPI * PMINIPORT_GET_REGISTRY_ROUTINE) (IN PVOID HwDeviceExtension, IN PVOID Context, IN OUT PWSTR ValueName, IN OUT PVOID ValueData, IN ULONG ValueLength)

Definition at line 509 of file video.h.

◆ PMINIPORT_QUERY_DEVICE_ROUTINE

typedef VP_STATUS(NTAPI * 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)

Definition at line 497 of file video.h.

◆ PMINIPORT_SYNCHRONIZE_ROUTINE

typedef BOOLEAN(NTAPI * PMINIPORT_SYNCHRONIZE_ROUTINE) (IN PVOID Context)

Definition at line 522 of file video.h.

◆ PQUERY_INTERFACE

◆ PROTECT_WC_MEMORY

typedef VP_STATUS(NTAPI * PROTECT_WC_MEMORY) (IN PVOID Context, IN PVOID HwDeviceExtension)

Definition at line 479 of file video.h.

◆ PSPIN_LOCK

typedef struct _VIDEO_PORT_SPIN_LOCK* PSPIN_LOCK

Definition at line 156 of file video.h.

◆ PSTATUS_BLOCK

◆ PVIDEO_ACCESS_RANGE

◆ PVIDEO_BUGCHECK_CALLBACK

typedef VOID(NTAPI * PVIDEO_BUGCHECK_CALLBACK) (IN PVOID HwDeviceExtension, IN ULONG BugcheckCode, IN PUCHAR Buffer, IN ULONG BufferSize)

Definition at line 526 of file video.h.

◆ PVIDEO_CHILD_ENUM_INFO

◆ PVIDEO_CHILD_STATE

◆ PVIDEO_CHILD_STATE_CONFIGURATION

◆ PVIDEO_CHILD_TYPE

◆ PVIDEO_DEBUG_LEVEL

◆ PVIDEO_DEBUG_REPORT

typedef struct _VIDEO_DEBUG_REPORT* PVIDEO_DEBUG_REPORT

Definition at line 157 of file video.h.

◆ PVIDEO_DEVICE_DATA_TYPE

◆ PVIDEO_HARDWARE_CONFIGURATION_DATA

◆ PVIDEO_HW_CHILD_CALLBACK

typedef VP_STATUS(NTAPI * PVIDEO_HW_CHILD_CALLBACK) (PVOID HwDeviceExtension, PVOID ChildDeviceExtension)

Definition at line 310 of file video.h.

◆ PVIDEO_HW_FIND_ADAPTER

typedef VP_STATUS(NTAPI * PVIDEO_HW_FIND_ADAPTER) (IN PVOID HwDeviceExtension, IN PVOID HwContext, IN PWSTR ArgumentString, IN OUT PVIDEO_PORT_CONFIG_INFO ConfigInfo, OUT PUCHAR Again)

Definition at line 198 of file video.h.

◆ PVIDEO_HW_GET_CHILD_DESCRIPTOR

typedef VP_STATUS(NTAPI * 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)

Definition at line 276 of file video.h.

◆ PVIDEO_HW_INITIALIZATION_DATA

◆ PVIDEO_HW_INITIALIZE

typedef BOOLEAN(NTAPI * PVIDEO_HW_INITIALIZE) (IN PVOID HwDeviceExtension)

Definition at line 206 of file video.h.

◆ PVIDEO_HW_INTERRUPT

typedef BOOLEAN(NTAPI * PVIDEO_HW_INTERRUPT) (IN PVOID HwDeviceExtension)

Definition at line 210 of file video.h.

◆ PVIDEO_HW_LEGACYRESOURCES

typedef VOID(NTAPI * PVIDEO_HW_LEGACYRESOURCES) (IN ULONG VendorId, IN ULONG DeviceId, IN OUT PVIDEO_ACCESS_RANGE *LegacyResourceList, IN OUT PULONG LegacyResourceCount)

Definition at line 223 of file video.h.

◆ PVIDEO_HW_POWER_GET

typedef VP_STATUS(NTAPI * PVIDEO_HW_POWER_GET) (IN PVOID HwDeviceExtension, IN ULONG HwId, IN OUT PVIDEO_POWER_MANAGEMENT VideoPowerControl)

Definition at line 291 of file video.h.

◆ PVIDEO_HW_POWER_SET

typedef VP_STATUS(NTAPI * PVIDEO_HW_POWER_SET) (IN PVOID HwDeviceExtension, IN ULONG HwId, IN PVIDEO_POWER_MANAGEMENT VideoPowerControl)

Definition at line 285 of file video.h.

◆ PVIDEO_HW_QUERY_INTERFACE

typedef VP_STATUS(NTAPI * PVIDEO_HW_QUERY_INTERFACE) (IN PVOID HwDeviceExtension, IN OUT PQUERY_INTERFACE QueryInterface)

Definition at line 305 of file video.h.

◆ PVIDEO_HW_RESET_HW

typedef BOOLEAN(NTAPI * PVIDEO_HW_RESET_HW) (IN PVOID HwDeviceExtension, IN ULONG Columns, IN ULONG Rows)

Definition at line 315 of file video.h.

◆ PVIDEO_HW_START_DMA

typedef HW_DMA_RETURN(NTAPI * PVIDEO_HW_START_DMA) (PVOID HwDeviceExtension, PDMA pDma)

Definition at line 235 of file video.h.

◆ PVIDEO_HW_START_IO

typedef BOOLEAN(NTAPI * PVIDEO_HW_START_IO) (IN PVOID HwDeviceExtension, IN PVIDEO_REQUEST_PACKET RequestPacket)

Definition at line 338 of file video.h.

◆ PVIDEO_HW_TIMER

typedef VOID(NTAPI * PVIDEO_HW_TIMER) (IN PVOID HwDeviceExtension)

Definition at line 343 of file video.h.

◆ PVIDEO_I2C_CONTROL

◆ PVIDEO_PORT_AGP_INTERFACE

◆ PVIDEO_PORT_AGP_INTERFACE_2

◆ PVIDEO_PORT_CONFIG_INFO

◆ PVIDEO_PORT_DEBUG_REPORT_INTERFACE

◆ PVIDEO_PORT_GET_PROC_ADDRESS

typedef PVOID(NTAPI * PVIDEO_PORT_GET_PROC_ADDRESS) (IN PVOID HwDeviceExtension, IN PUCHAR FunctionName)

Definition at line 161 of file video.h.

◆ PVIDEO_PORT_I2C_INTERFACE

◆ PVIDEO_PORT_I2C_INTERFACE_2

◆ PVIDEO_PORT_INT10_INTERFACE

◆ PVIDEO_PORT_WCMEMORYPROTECTION_INTERFACE

◆ PVIDEO_READ_CLOCK_LINE

typedef BOOLEAN(NTAPI * PVIDEO_READ_CLOCK_LINE) (PVOID HwDeviceExtension)

Definition at line 357 of file video.h.

◆ PVIDEO_READ_DATA_LINE

typedef BOOLEAN(NTAPI * PVIDEO_READ_DATA_LINE) (PVOID HwDeviceExtension)

Definition at line 361 of file video.h.

◆ PVIDEO_REQUEST_PACKET

◆ PVIDEO_SYNCHRONIZE_PRIORITY

◆ PVIDEO_WAIT_VSYNC_ACTIVE

typedef VOID(NTAPI * PVIDEO_WAIT_VSYNC_ACTIVE) (PVOID HwDeviceExtension)

Definition at line 365 of file video.h.

◆ PVIDEO_WRITE_CLOCK_LINE

typedef VOID(NTAPI * PVIDEO_WRITE_CLOCK_LINE) (PVOID HwDeviceExtension, UCHAR Data)

Definition at line 347 of file video.h.

◆ PVIDEO_WRITE_DATA_LINE

typedef VOID(NTAPI * PVIDEO_WRITE_DATA_LINE) (PVOID HwDeviceExtension, UCHAR Data)

Definition at line 352 of file video.h.

◆ PVIDEO_X86_BIOS_ARGUMENTS

◆ PVP_DEVICE_DESCRIPTION

◆ PVP_DMA_ADAPTER

typedef struct __VP_DMA_ADAPTER* PVP_DMA_ADAPTER

Definition at line 159 of file video.h.

◆ PVP_POOL_TYPE

◆ PVP_SCATTER_GATHER_ELEMENT

◆ PVP_SCATTER_GATHER_LIST

◆ PVP_STATUS

typedef LONG * PVP_STATUS

Definition at line 153 of file video.h.

◆ PVPOSVERSIONINFO

◆ PVRB_SG

typedef struct __VRB_SG * PVRB_SG

◆ QUERY_INTERFACE

◆ RESTORE_WC_MEMORY

typedef VP_STATUS(NTAPI * RESTORE_WC_MEMORY) (IN PVOID Context, IN PVOID HwDeviceExtension)

Definition at line 484 of file video.h.

◆ STATUS_BLOCK

◆ VIDEO_ACCESS_RANGE

◆ VIDEO_CHILD_ENUM_INFO

◆ VIDEO_CHILD_STATE

◆ VIDEO_CHILD_STATE_CONFIGURATION

◆ VIDEO_CHILD_TYPE

◆ VIDEO_DEBUG_LEVEL

◆ VIDEO_DEVICE_DATA_TYPE

◆ VIDEO_HARDWARE_CONFIGURATION_DATA

◆ VIDEO_HW_INITIALIZATION_DATA

◆ VIDEO_I2C_CONTROL

◆ VIDEO_PORT_AGP_INTERFACE

◆ VIDEO_PORT_AGP_INTERFACE_2

◆ VIDEO_PORT_CONFIG_INFO

◆ VIDEO_PORT_DEBUG_REPORT_INTERFACE

◆ VIDEO_PORT_I2C_INTERFACE

◆ VIDEO_PORT_I2C_INTERFACE_2

◆ VIDEO_PORT_INT10_INTERFACE

◆ VIDEO_PORT_SERVICES

◆ VIDEO_PORT_WCMEMORYPROTECTION_INTERFACE

◆ VIDEO_REQUEST_PACKET

◆ VIDEO_SYNCHRONIZE_PRIORITY

◆ VIDEO_X86_BIOS_ARGUMENTS

◆ VP_DEVICE_DESCRIPTION

◆ VP_LOCK_OPERATION

◆ VP_POOL_TYPE

◆ VP_SCATTER_GATHER_ELEMENT

◆ VP_SCATTER_GATHER_LIST

◆ VP_STATUS

typedef LONG VP_STATUS

Definition at line 153 of file video.h.

◆ VPOSVERSIONINFO

◆ VRB_SG

Enumeration Type Documentation

◆ _DMA_FLAGS

Enumerator
VideoPortUnlockAfterDma 
VideoPortKeepPagesLocked 
VideoPortDmaInitOnly 

Definition at line 548 of file video.h.

548 {
552} DMA_FLAGS;
@ VideoPortUnlockAfterDma
Definition: video.h:549
@ VideoPortKeepPagesLocked
Definition: video.h:550
@ VideoPortDmaInitOnly
Definition: video.h:551
enum _DMA_FLAGS DMA_FLAGS

◆ _HW_DMA_RETURN

Enumerator
DmaAsyncReturn 
DmaSyncReturn 

Definition at line 230 of file video.h.

230 {
enum _HW_DMA_RETURN HW_DMA_RETURN
enum _HW_DMA_RETURN * PHW_DMA_RETURN
@ DmaSyncReturn
Definition: video.h:232
@ DmaAsyncReturn
Definition: video.h:231

◆ _VIDEO_CHILD_TYPE

Enumerator
Monitor 
NonPrimaryChip 
VideoChip 
Other 

Definition at line 269 of file video.h.

269 {
270 Monitor = 1,
272 VideoChip,
273 Other
enum _VIDEO_CHILD_TYPE * PVIDEO_CHILD_TYPE
@ Monitor
Definition: video.h:270
@ VideoChip
Definition: video.h:272
@ NonPrimaryChip
Definition: video.h:271
@ Other
Definition: video.h:273
enum _VIDEO_CHILD_TYPE VIDEO_CHILD_TYPE

◆ _VIDEO_DEVICE_DATA_TYPE

Enumerator
VpMachineData 
VpCmosData 
VpBusData 
VpControllerData 
VpMonitorData 

Definition at line 489 of file video.h.

489 {
490 VpMachineData = 0,
492 VpBusData,
@ VpMachineData
Definition: video.h:490
@ VpBusData
Definition: video.h:492
@ VpControllerData
Definition: video.h:493
@ VpMonitorData
Definition: video.h:494
@ VpCmosData
Definition: video.h:491
enum _VIDEO_DEVICE_DATA_TYPE * PVIDEO_DEVICE_DATA_TYPE
enum _VIDEO_DEVICE_DATA_TYPE VIDEO_DEVICE_DATA_TYPE

◆ _VIDEO_PORT_SERVICES

Enumerator
VideoPortServicesAGP 
VideoPortServicesI2C 
VideoPortServicesHeadless 
VideoPortServicesInt10 
VideoPortServicesDebugReport 
VideoPortServicesWCMemoryProtection 

Definition at line 712 of file video.h.

712 {
enum _VIDEO_PORT_SERVICES VIDEO_PORT_SERVICES
@ VideoPortServicesWCMemoryProtection
Definition: video.h:718
@ VideoPortServicesAGP
Definition: video.h:713
@ VideoPortServicesI2C
Definition: video.h:714
@ VideoPortServicesHeadless
Definition: video.h:715
@ VideoPortServicesDebugReport
Definition: video.h:717
@ VideoPortServicesInt10
Definition: video.h:716

◆ _VP_LOCK_OPERATION

Enumerator
VpReadAccess 
VpWriteAccess 
VpModifyAccess 

Definition at line 648 of file video.h.

648 {
649 VpReadAccess = 0,
@ VpReadAccess
Definition: video.h:649
@ VpWriteAccess
Definition: video.h:650
@ VpModifyAccess
Definition: video.h:651
enum _VP_LOCK_OPERATION VP_LOCK_OPERATION

◆ _VP_POOL_TYPE

Enumerator
VpNonPagedPool 
VpPagedPool 
VpNonPagedPoolCacheAligned 
VpPagedPoolCacheAligned 

Definition at line 541 of file video.h.

541 {
542 VpNonPagedPool = 0,
enum _VP_POOL_TYPE VP_POOL_TYPE
enum _VP_POOL_TYPE * PVP_POOL_TYPE
@ VpNonPagedPool
Definition: video.h:542
@ VpPagedPool
Definition: video.h:543
@ VpPagedPoolCacheAligned
Definition: video.h:545
@ VpNonPagedPoolCacheAligned
Definition: video.h:544

◆ VIDEO_DEBUG_LEVEL

Enumerator
Error 
Warn 
Trace 
Info 

Definition at line 587 of file video.h.

587 {
588 Error = 0,
589 Warn,
590 Trace,
591 Info
VIDEO_DEBUG_LEVEL
Definition: video.h:587
@ Error
Definition: video.h:588
@ Warn
Definition: video.h:589
@ Trace
Definition: video.h:590
enum VIDEO_DEBUG_LEVEL * PVIDEO_DEBUG_LEVEL
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:690

◆ VIDEO_SYNCHRONIZE_PRIORITY

Enumerator
VpLowPriority 
VpMediumPriority 
VpHighPriority 

Definition at line 534 of file video.h.

534 {
535 VpLowPriority = 0,
VIDEO_SYNCHRONIZE_PRIORITY
Definition: video.h:534
@ VpMediumPriority
Definition: video.h:536
@ VpLowPriority
Definition: video.h:535
@ VpHighPriority
Definition: video.h:537
enum VIDEO_SYNCHRONIZE_PRIORITY * PVIDEO_SYNCHRONIZE_PRIORITY

Function Documentation

◆ DriverEntry()

ULONG NTAPI DriverEntry ( PVOID  Context1,
PVOID  Context2 
)

Definition at line 383 of file ParaNdis5-Driver.c.

384{
388
390
391 DEBUG_ENTRY(0);
392 _LogOutString(0, __DATE__ " " __TIME__);
393
397 NULL
398 );
399
400 if (DriverHandle)
401 {
402 NdisZeroMemory(&chars, sizeof(chars));
403 //NDIS version of the miniport
404 chars.MajorNdisVersion = NDIS_MINIPORT_MAJOR_VERSION;
405 chars.MinorNdisVersion = NDIS_MINIPORT_MINOR_VERSION;
406 //Init and destruction
407 chars.InitializeHandler = ParaNdis5_Initialize;
408 chars.HaltHandler = ParaNdis5_Halt;
409
410 //Interrupt and DPC handling
411 chars.HandleInterruptHandler = ParaNdis5_HandleDPC;
412 chars.ISRHandler = ParaNdis5_MiniportISR;
413
414 //Packet transfer - send path and notification on the send packet
415 chars.SendPacketsHandler = ParaNdis5_SendPackets;
416 chars.ReturnPacketHandler = ParaNdis5_ReturnPacket;
417
418 //OID set\get
419 chars.SetInformationHandler = ParaNdis5_SetOID;
420 chars.QueryInformationHandler = ParaNdis5_QueryOID;
421
422 //Reset
423 chars.ResetHandler = ParaNdis5_Reset;
424 chars.CheckForHangHandler = ParaNdis5_CheckForHang; //optional
425
426 chars.CancelSendPacketsHandler = ParaNdis5_CancelSendPackets;
427 chars.PnPEventNotifyHandler = ParaNdis5_PnPEventNotify;
428 chars.AdapterShutdownHandler = ParaNdis5_Shutdown;
429
432 &chars,
433 sizeof(chars));
434 }
435
437 {
439 }
440 else if (DriverHandle)
441 {
442 DPrintf(0, ("NdisMRegisterMiniport failed"));
444 }
445 else
446 {
447 DPrintf(0, ("NdisMInitializeWrapper failed"));
448 }
449
451 return status;
452}
static VOID NTAPI ParaNdis5_Halt(IN NDIS_HANDLE MiniportAdapterContext)
static NDIS_HANDLE DriverHandle
static NDIS_STATUS NTAPI ParaNdis5_Reset(OUT PBOOLEAN AddressingReset, IN NDIS_HANDLE MiniportAdapterContext)
static VOID NTAPI ParaNdis5_MiniportISR(OUT PBOOLEAN InterruptRecognized, OUT PBOOLEAN QueueMiniportHandleInterrupt, IN NDIS_HANDLE MiniportAdapterContext)
static BOOLEAN NTAPI ParaNdis5_CheckForHang(IN NDIS_HANDLE MiniportAdapterContext)
static VOID NTAPI ParaVirtualNICUnload(IN PDRIVER_OBJECT pDriverObject)
static NDIS_STATUS NTAPI ParaNdis5_Initialize(OUT PNDIS_STATUS OpenErrorStatus, OUT PUINT SelectedMediumIndex, IN PNDIS_MEDIUM MediumArray, IN UINT MediumArraySize, IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_HANDLE WrapperConfigurationContext)
VOID NTAPI ParaNdis5_PnPEventNotify(IN NDIS_HANDLE MiniportAdapterContext, IN NDIS_DEVICE_PNP_EVENT PnPEvent, IN PVOID InformationBuffer, IN ULONG InformationBufferLength)
static VOID NTAPI ParaNdis5_Shutdown(IN NDIS_HANDLE MiniportAdapterContext)
VOID NTAPI ParaNdis5_SendPackets(IN NDIS_HANDLE MiniportAdapterContext, IN PPNDIS_PACKET PacketArray, IN UINT NumberOfPackets)
VOID NTAPI ParaNdis5_ReturnPacket(IN NDIS_HANDLE MiniportAdapterContext, IN PNDIS_PACKET Packet)
VOID NTAPI ParaNdis5_CancelSendPackets(IN NDIS_HANDLE MiniportAdapterContext, IN PVOID CancelId)
VOID NTAPI ParaNdis5_HandleDPC(IN NDIS_HANDLE MiniportAdapterContext)
NDIS_STATUS NTAPI ParaNdis5_SetOID(IN NDIS_HANDLE MiniportAdapterContext, IN NDIS_OID Oid, IN PVOID InformationBuffer, IN ULONG InformationBufferLength, OUT PULONG BytesRead, OUT PULONG BytesNeeded)
NDIS_STATUS NTAPI ParaNdis5_QueryOID(IN NDIS_HANDLE MiniportAdapterContext, IN NDIS_OID Oid, IN PVOID InformationBuffer, IN ULONG InformationBufferLength, OUT PULONG BytesWritten, OUT PULONG BytesNeeded)
#define NULL
Definition: types.h:112
#define DEBUG_ENTRY(level)
Definition: kdebugprint.h:49
#define DPrintf(Level, Fmt)
Definition: kdebugprint.h:61
#define DEBUG_EXIT_STATUS(level, status)
Definition: kdebugprint.h:50
void _LogOutString(int level, const char *s)
void ParaNdis_DebugInitialize(PVOID DriverObject, PVOID RegistryPath)
#define NdisZeroMemory(Destination, Length)
Definition: ndis.h:3926
#define NDIS_STATUS_FAILURE
Definition: ndis.h:465
#define NDIS_STATUS_SUCCESS
Definition: ndis.h:346
#define NdisMInitializeWrapper(NdisWrapperHandle, SystemSpecific1, SystemSpecific2, SystemSpecific3)
Definition: ndis.h:5592
VOID EXPORT NdisMRegisterUnloadHandler(IN NDIS_HANDLE NdisWrapperHandle, IN PDRIVER_UNLOAD UnloadHandler)
Definition: miniport.c:3156
NDIS_STATUS EXPORT NdisMRegisterMiniport(IN NDIS_HANDLE NdisWrapperHandle, IN PNDIS_MINIPORT_CHARACTERISTICS MiniportCharacteristics, IN UINT CharacteristicsLength)
Definition: miniport.c:2642
VOID EXPORT NdisTerminateWrapper(IN NDIS_HANDLE NdisWrapperHandle, IN PVOID SystemSpecific)
Definition: miniport.c:3017
int NDIS_STATUS
Definition: ntddndis.h:496
Definition: ps.c:97
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
Definition: wdfdriver.h:215
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213

◆ VideoPortAcquireDeviceLock()

VPAPI VOID NTAPI VideoPortAcquireDeviceLock ( IN PVOID  HwDeviceExtension)

Definition at line 1733 of file videoprt.c.

1735{
1736 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
1737
1738 TRACE_(VIDEOPRT, "VideoPortAcquireDeviceLock\n");
1739 DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
1741 // ASSERT(Status == STATUS_SUCCESS);
1742}
#define FALSE
Definition: types.h:117
#define TRACE_(x)
Definition: compat.h:76
#define KernelMode
Definition: asm.h:38
#define VIDEO_PORT_GET_DEVICE_EXTENSION(MiniportExtension)
Definition: videoprt.h:140
#define KeWaitForMutexObject
Definition: kefuncs.h:543
@ Executive
Definition: ketypes.h:467

◆ VideoPortAcquireSpinLock()

VPAPI VOID NTAPI VideoPortAcquireSpinLock ( IN PVOID  HwDeviceExtension,
IN PSPIN_LOCK  SpinLock,
OUT PUCHAR  OldIrql 
)

Definition at line 63 of file spinlock.c.

67{
68 TRACE_(VIDEOPRT, "VideoPortAcquireSpinLock\n");
70}
KSPIN_LOCK * PKSPIN_LOCK
Definition: env_spec_w32.h:73
#define KeAcquireSpinLock(sl, irql)
Definition: env_spec_w32.h:609
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFSPINLOCK * SpinLock
Definition: wdfsync.h:228
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
Definition: kefuncs.h:778

◆ VideoPortAcquireSpinLockAtDpcLevel()

VPAPI VOID NTAPI VideoPortAcquireSpinLockAtDpcLevel ( IN PVOID  HwDeviceExtension,
IN PSPIN_LOCK  SpinLock 
)

Definition at line 77 of file spinlock.c.

80{
81 TRACE_(VIDEOPRT, "VideoPortAcquireSpinLockAtDpcLevel\n");
83}
#define KeAcquireSpinLockAtDpcLevel(SpinLock)
Definition: ke.h:125

◆ VideoPortAllocateBuffer()

VPAPI VP_STATUS NTAPI VideoPortAllocateBuffer ( IN PVOID  HwDeviceExtension,
IN ULONG  Size,
OUT PVOID Buffer 
)

Definition at line 1075 of file resource.c.

1079{
1080 TRACE_(VIDEOPRT, "VideoPortAllocateBuffer\n");
1083}
Definition: bufpool.h:45
#define ERROR_NOT_ENOUGH_MEMORY
Definition: dderror.h:7
#define NO_ERROR
Definition: dderror.h:5
#define ExAllocatePoolWithTag(hernya, size, tag)
Definition: env_spec_w32.h:350
#define PagedPool
Definition: env_spec_w32.h:308
#define TAG_VIDEO_PORT_BUFFER
Definition: videoprt.h:39
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4539

◆ VideoPortAllocateCommonBuffer()

VPAPI PVOID NTAPI VideoPortAllocateCommonBuffer ( IN PVOID  HwDeviceExtension,
IN PVP_DMA_ADAPTER  VpDmaAdapter,
IN ULONG  DesiredLength,
OUT PPHYSICAL_ADDRESS  LogicalAddress,
IN BOOLEAN  CacheEnabled,
PVOID  Reserved 
)

Definition at line 43 of file dma.c.

49{
50 PVIP_DMA_ADAPTER Adapter = (PVIP_DMA_ADAPTER)VpDmaAdapter;
51
52 /* check for valid arguments */
53 if (!Adapter || !Adapter->Adapter)
54 {
55 /* invalid parameter */
56 return NULL;
57 }
58
59 /* allocate common buffer */
60 return Adapter->Adapter->DmaOperations->AllocateCommonBuffer(Adapter->Adapter, DesiredLength, LogicalAddress, CacheEnabled);
61}
PDMA_ADAPTER Adapter
Definition: dma.c:19
struct _DMA_OPERATIONS * DmaOperations
Definition: iotypes.h:2297
struct VIP_DMA_ADAPTER * PVIP_DMA_ADAPTER

Referenced by VideoPortGetCommonBuffer().

◆ VideoPortAllocateContiguousMemory()

VPAPI PVOID NTAPI VideoPortAllocateContiguousMemory ( IN PVOID  HwDeviceExtension,
IN ULONG  NumberOfBytes,
IN PHYSICAL_ADDRESS  HighestAcceptableAddress 
)

Definition at line 1777 of file videoprt.c.

1782{
1784}
PVOID NTAPI MmAllocateContiguousMemory(IN SIZE_T NumberOfBytes, IN PHYSICAL_ADDRESS HighestAcceptableAddress)
Definition: contmem.c:626
_Out_ PNDIS_HANDLE _Out_ PUINT _In_ PNDIS_STRING _In_ NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress
Definition: ndis.h:3230
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
Definition: iotypes.h:1036

◆ VideoPortAllocatePool()

VPAPI PVOID NTAPI VideoPortAllocatePool ( IN PVOID  HwDeviceExtension,
IN VP_POOL_TYPE  PoolType,
IN SIZE_T  NumberOfBytes,
IN ULONG  Tag 
)

Definition at line 1048 of file resource.c.

1053{
1054 TRACE_(VIDEOPRT, "VideoPortAllocatePool\n");
1056}
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
Definition: wdfdevice.h:4071
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdfdevice.h:3821

Referenced by BochsInitialize(), InitializeModeTable(), VbeGetVideoMemoryBaseAddress(), VBEInitialize(), and VbeSetColorLookup().

◆ VideoPortAssociateEventsWithDmaHandle()

VPAPI PDMA NTAPI VideoPortAssociateEventsWithDmaHandle ( IN PVOID  HwDeviceExtension,
IN OUT PVIDEO_REQUEST_PACKET  pVrp,
IN PVOID  MappedUserEvent,
IN PVOID  DisplayDriverEvent 
)

Definition at line 439 of file dma.c.

443{
444 /* Deprecated */
445 return NULL;
446}

◆ VideoPortCheckForDeviceExistence()

VPAPI BOOLEAN NTAPI VideoPortCheckForDeviceExistence ( IN PVOID  HwDeviceExtension,
IN USHORT  VendorId,
IN USHORT  DeviceId,
IN UCHAR  RevisionId,
IN USHORT  SubVendorId,
IN USHORT  SubSystemId,
IN ULONG  Flags 
)

Definition at line 1641 of file videoprt.c.

1649{
1650 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
1653 IO_STACK_LOCATION IoStack;
1654 ULONG PciFlags = 0;
1656 BOOL DevicePresent;
1657
1658 TRACE_(VIDEOPRT, "VideoPortCheckForDeviceExistence\n");
1659
1661 {
1662 WARN_(VIDEOPRT, "VideoPortCheckForDeviceExistence: Unknown flags 0x%lx\n", Flags & ~(CDE_USE_REVISION | CDE_USE_SUBSYSTEM_IDS));
1663 return FALSE;
1664 }
1665
1666 DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
1667
1669 PciDevicePresentInterface.Version = 1;
1671 IoStack.Parameters.QueryInterface.Version = PciDevicePresentInterface.Version;
1673 IoStack.Parameters.QueryInterface.InterfaceType =
1674 &GUID_PCI_DEVICE_PRESENT_INTERFACE;
1675 Status = IopInitiatePnpIrp(DeviceExtension->NextDeviceObject,
1677 if (!NT_SUCCESS(Status))
1678 {
1679 WARN_(VIDEOPRT, "IopInitiatePnpIrp() failed! (Status 0x%lx)\n", Status);
1680 return FALSE;
1681 }
1682
1683 if (Flags & CDE_USE_REVISION)
1684 PciFlags |= PCI_USE_REVISION;
1686 PciFlags |= PCI_USE_SUBSYSTEM_IDS;
1687
1688 DevicePresent = PciDevicePresentInterface.IsDevicePresent(
1689 VendorId, DeviceId, RevisionId,
1690 SubVendorId, SubSystemId, PciFlags);
1691
1692 PciDevicePresentInterface.InterfaceDereference(PciDevicePresentInterface.Context);
1693
1694 return DevicePresent;
1695}
LONG NTSTATUS
Definition: precomp.h:26
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
unsigned int BOOL
Definition: ntddk_ex.h:94
Status
Definition: gdiplustypes.h:25
PCI_INTERFACE PciDevicePresentInterface
Definition: devhere.c:18
static OUT PIO_STATUS_BLOCK IoStatusBlock
Definition: pipe.c:75
NTSTATUS NTAPI IopInitiatePnpIrp(IN PDEVICE_OBJECT DeviceObject, IN PIO_STATUS_BLOCK IoStatusBlock, IN UCHAR MinorFunction, IN PIO_STACK_LOCATION Stack)
struct _INTERFACE * PINTERFACE
#define CDE_USE_REVISION
Definition: video.h:147
#define CDE_USE_SUBSYSTEM_IDS
Definition: video.h:146
#define WARN_(ch,...)
Definition: debug.h:157
struct _IO_STACK_LOCATION::@4278::@4304 QueryInterface
union _IO_STACK_LOCATION::@1694 Parameters
PDEVICE_OBJECT NextDeviceObject
Definition: videoprt.h:89
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
#define IRP_MN_QUERY_INTERFACE
struct _PCI_DEVICE_PRESENT_INTERFACE PCI_DEVICE_PRESENT_INTERFACE
#define PCI_USE_REVISION
Definition: iotypes.h:867
#define PCI_USE_SUBSYSTEM_IDS
Definition: iotypes.h:866

◆ VideoPortClearEvent()

VPAPI VOID NTAPI VideoPortClearEvent ( IN PVOID  HwDeviceExtension,
IN PEVENT  pEvent 
)

◆ VideoPortCompareMemory()

VPAPI ULONG NTAPI VideoPortCompareMemory ( IN PVOID  Source1,
IN PVOID  Source2,
IN SIZE_T  Length 
)

Referenced by VBEInitialize().

◆ VideoPortCompleteDma()

VPAPI VP_STATUS NTAPI VideoPortCompleteDma ( IN PVOID  HwDeviceExtension,
IN PVP_DMA_ADAPTER  VpDmaAdapter,
IN PVP_SCATTER_GATHER_LIST  VpScatterGather,
IN BOOLEAN  WriteToDevice 
)

Definition at line 453 of file dma.c.

457{
459 PVIP_DMA_ADAPTER Adapter = (PVIP_DMA_ADAPTER)VpDmaAdapter;
460
462 Adapter->Adapter->DmaOperations->PutScatterGatherList(Adapter->Adapter, (PSCATTER_GATHER_LIST)VpScatterGather, WriteToDevice);
464
465 return NO_ERROR;
466}
_In_ PSCSI_REQUEST_BLOCK _In_opt_ PVOID _In_ ULONG _In_ BOOLEAN WriteToDevice
Definition: cdrom.h:992
UCHAR KIRQL
Definition: env_spec_w32.h:591
#define KeRaiseIrql(irql, oldIrql)
Definition: env_spec_w32.h:597
#define KeLowerIrql(oldIrql)
Definition: env_spec_w32.h:602
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
struct _SCATTER_GATHER_LIST * PSCATTER_GATHER_LIST
Definition: iotypes.h:2206

◆ VideoPortCreateEvent()

VPAPI VP_STATUS NTAPI VideoPortCreateEvent ( IN PVOID  HwDeviceExtension,
IN ULONG  EventFlag,
IN PVOID  Unused,
OUT PEVENT ppEvent 
)

Referenced by VmxFindAdapter().

◆ VideoPortCreateSecondaryDisplay()

VPAPI VP_STATUS NTAPI VideoPortCreateSecondaryDisplay ( IN PVOID  HwDeviceExtension,
IN OUT PVOID SecondaryDeviceExtension,
IN ULONG  ulFlag 
)

Definition at line 1520 of file videoprt.c.

1524{
1526 PVIDEO_PORT_DEVICE_EXTENSION FirstDeviceExtension, DeviceExtension;
1528
1529 ASSERT(SecondaryDeviceExtension);
1530
1531 if (Flag != 0)
1532 {
1534 }
1535
1536 FirstDeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
1537
1538 if (FirstDeviceExtension->DisplayNumber != 0)
1539 {
1540 DPRINT1("Calling VideoPortCreateSecondaryDisplay for InstanceId %lu\n",
1541 FirstDeviceExtension->DisplayNumber);
1542 }
1543
1545 FirstDeviceExtension->DriverExtension,
1546 FirstDeviceExtension->PhysicalDeviceObject,
1547 FirstDeviceExtension->AdapterNumber,
1548 FirstDeviceExtension->NumberOfSecondaryDisplays + 1,
1549 &DeviceObject);
1550 if (!NT_SUCCESS(Status))
1551 {
1552 DPRINT1("IntVideoPortCreateAdapterDeviceObject() failed with status 0x%08x\n", Status);
1553 return ERROR_DEV_NOT_EXIST;
1554 }
1555
1556 DeviceExtension = DeviceObject->DeviceExtension;
1557
1558 /* Increment secondary display count */
1559 FirstDeviceExtension->NumberOfSecondaryDisplays++;
1560
1561 *SecondaryDeviceExtension = DeviceExtension->MiniPortDeviceExtension;
1562 return NO_ERROR;
1563}
#define DPRINT1
Definition: precomp.h:8
#define UNIMPLEMENTED
Definition: ntoskrnl.c:15
#define ERROR_DEV_NOT_EXIST
Definition: dderror.h:8
#define ASSERT(a)
Definition: mode.c:44
Definition: xml2sdb.h:97
PDEVICE_OBJECT PhysicalDeviceObject
Definition: videoprt.h:87
VIDEO_PORT_DRIVER_EXTENSION * DriverExtension
Definition: videoprt.h:103
CHAR POINTER_ALIGNMENT MiniPortDeviceExtension[1]
Definition: videoprt.h:113
PDRIVER_OBJECT DriverObject
Definition: videoprt.h:86
NTSTATUS NTAPI IntVideoPortCreateAdapterDeviceObject(_In_ PDRIVER_OBJECT DriverObject, _In_ PVIDEO_PORT_DRIVER_EXTENSION DriverExtension, _In_opt_ PDEVICE_OBJECT PhysicalDeviceObject, _In_ USHORT AdapterNumber, _In_ USHORT DisplayNumber, _Out_opt_ PDEVICE_OBJECT *DeviceObject)
Definition: videoprt.c:159
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2061

◆ VideoPortCreateSpinLock()

VPAPI VP_STATUS NTAPI VideoPortCreateSpinLock ( IN PVOID  HwDeviceExtension,
OUT PSPIN_LOCK SpinLock 
)

Definition at line 32 of file spinlock.c.

35{
36 TRACE_(VIDEOPRT, "VideoPortCreateSpinLock\n");
38 if (*SpinLock == NULL)
41 return NO_ERROR;
42}
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
#define NonPagedPool
Definition: env_spec_w32.h:307
#define KeInitializeSpinLock(sl)
Definition: env_spec_w32.h:604
#define ExAllocatePool(type, size)
Definition: fbtusb.h:44

◆ VideoPortDbgReportComplete()

VPAPI VOID NTAPI VideoPortDbgReportComplete ( IN OUT PVIDEO_DEBUG_REPORT  pReport)

◆ VideoPortDbgReportCreate()

VPAPI PVIDEO_DEBUG_REPORT NTAPI VideoPortDbgReportCreate ( IN PVOID  HwDeviceExtension,
IN ULONG  ulCode,
IN ULONG_PTR  ulpArg1,
IN ULONG_PTR  ulpArg2,
IN ULONG_PTR  ulpArg3,
IN ULONG_PTR  ulpArg4 
)

◆ VideoPortDbgReportSecondaryData()

VPAPI BOOLEAN NTAPI VideoPortDbgReportSecondaryData ( IN OUT PVIDEO_DEBUG_REPORT  pReport,
IN PVOID  pvData,
IN ULONG  ulDataSize 
)

◆ VideoPortDDCMonitorHelper()

VPAPI BOOLEAN NTAPI VideoPortDDCMonitorHelper ( IN PVOID  HwDeviceExtension,
IN PVOID  DDCControl,
IN OUT PUCHAR  EdidBuffer,
IN ULONG  EdidBufferSize 
)

Referenced by VBEReadEdidUsingSCI().

◆ VideoPortDebugPrint()

VPAPI VOID __cdecl VideoPortDebugPrint ( IN VIDEO_DEBUG_LEVEL  DebugPrintLevel,
IN PSTR  DebugMessage,
IN ...   
)

◆ VideoPortDeleteEvent()

VPAPI VP_STATUS NTAPI VideoPortDeleteEvent ( IN PVOID  HwDeviceExtension,
IN PEVENT  pEvent 
)

◆ VideoPortDeleteSpinLock()

VPAPI VP_STATUS NTAPI VideoPortDeleteSpinLock ( IN PVOID  HwDeviceExtension,
IN PSPIN_LOCK  SpinLock 
)

Definition at line 49 of file spinlock.c.

52{
53 TRACE_(VIDEOPRT, "VideoPortDeleteSpinLock\n");
55 return NO_ERROR;
56}
#define ExFreePool(addr)
Definition: env_spec_w32.h:352

◆ VideoPortDisableInterrupt()

VPAPI VP_STATUS NTAPI VideoPortDisableInterrupt ( IN PVOID  HwDeviceExtension)

Definition at line 154 of file interrupt.c.

155{
156#ifndef _M_AMD64
157 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
158
159 /* Get the device extension */
160 DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
161
162 /* Fail if the driver didn't register an ISR */
163 if (!DeviceExtension->DriverExtension->InitializationData.HwInterrupt)
164 {
165 /* No ISR, no interrupts */
167 }
168
169 /* Disable the interrupt and return */
170 HalDisableSystemInterrupt(DeviceExtension->InterruptVector, 0);
171 return NO_ERROR;
172#else
173 /* FIXME: Function still present? If so what to use instead of HalDisableSystemInterrupt? */
176#endif
177}
#define ERROR_INVALID_FUNCTION
Definition: dderror.h:6
VOID NTAPI HalDisableSystemInterrupt(IN ULONG Vector, IN KIRQL Irql)
Definition: pic.c:309
PVIDEO_HW_INTERRUPT HwInterrupt
Definition: video.h:676
VIDEO_HW_INITIALIZATION_DATA InitializationData
Definition: videoprt.h:72

◆ VideoPortDoDma()

VPAPI PDMA NTAPI VideoPortDoDma ( IN PVOID  HwDeviceExtension,
IN PDMA  pDma,
IN DMA_FLAGS  DmaFlags 
)

Definition at line 426 of file dma.c.

429{
430 /* Deprecated */
431 return NULL;
432}

◆ VideoPortEnableInterrupt()

VPAPI VP_STATUS NTAPI VideoPortEnableInterrupt ( IN PVOID  HwDeviceExtension)

Definition at line 116 of file interrupt.c.

117{
118#ifndef _M_AMD64
119 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
120 BOOLEAN InterruptValid;
121
122 /* Get the device extension */
123 DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
124
125 /* Fail if the driver didn't register an ISR */
126 if (!DeviceExtension->DriverExtension->InitializationData.HwInterrupt)
127 {
128 /* No ISR, no interrupts */
130 }
131
132 /* Re-enable the interrupt and return */
133 InterruptValid = HalEnableSystemInterrupt(DeviceExtension->InterruptVector,
134 0,
135 DeviceExtension->InterruptLevel);
136
137 /* Make sure the interrupt was valid */
138 ASSERT(InterruptValid == TRUE);
139
140 /* Return to caller */
141 return NO_ERROR;
142#else
143 /* FIXME: Function still present? If so what to use instead of HalEnableSystemInterrupt? */
146#endif
147}
unsigned char BOOLEAN
#define TRUE
Definition: types.h:120
BOOLEAN NTAPI HalEnableSystemInterrupt(IN ULONG Vector, IN KIRQL Irql, IN KINTERRUPT_MODE InterruptMode)
Definition: pic.c:295

◆ VideoPortEnumerateChildren()

VPAPI VP_STATUS NTAPI VideoPortEnumerateChildren ( IN PVOID  HwDeviceExtension,
IN PVOID  Reserved 
)

Definition at line 1497 of file videoprt.c.

1500{
1501 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
1502
1503 DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
1504 ASSERT(DeviceExtension);
1505
1506 if (DeviceExtension->PhysicalDeviceObject)
1507 {
1508 /* Trigger reenumeration by the PnP manager */
1510 }
1511
1512 return NO_ERROR;
1513}
VOID NTAPI IoInvalidateDeviceRelations(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_RELATION_TYPE Type)
Definition: pnpmgr.c:1772
@ BusRelations
Definition: iotypes.h:2154

Referenced by IntVideoPortDispatchOpen(), and VBEInitialize().

◆ VideoPortFlushRegistry()

VPAPI VP_STATUS NTAPI VideoPortFlushRegistry ( PVOID  HwDeviceExtension)

Definition at line 29 of file stubs.c.

31{
33 return 0;
34}

◆ VideoPortFreeCommonBuffer()

VPAPI VOID NTAPI VideoPortFreeCommonBuffer ( IN PVOID  HwDeviceExtension,
IN ULONG  Length,
IN PVOID  VirtualAddress,
IN PHYSICAL_ADDRESS  LogicalAddress,
IN BOOLEAN  CacheEnabled 
)

Definition at line 187 of file dma.c.

192{
193 PVIP_DMA_ADAPTER VpDmaAdapter;
194 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
195
196 /* sanity check */
197 ASSERT(!IsListEmpty(&DeviceExtension->DmaAdapterList));
198
199 /* grab first dma adapter */
201
202 /* sanity checks */
203 ASSERT(VpDmaAdapter->HwDeviceExtension == HwDeviceExtension);
204 ASSERT(VpDmaAdapter->Adapter != NULL);
205 ASSERT(VpDmaAdapter->MapRegisters != 0);
206
207 VideoPortReleaseCommonBuffer(HwDeviceExtension, (PVP_DMA_ADAPTER)VpDmaAdapter, Length, LogicalAddress, VirtualAddress, CacheEnabled);
208}
#define IsListEmpty(ListHead)
Definition: env_spec_w32.h:954
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
struct __VP_DMA_ADAPTER * PVP_DMA_ADAPTER
Definition: video.h:159
base of all file and directory entries
Definition: entries.h:83
PVOID HwDeviceExtension
Definition: dma.c:21
ULONG MapRegisters
Definition: dma.c:20
struct _LIST_ENTRY * Flink
Definition: typedefs.h:121
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260
VOID NTAPI VideoPortReleaseCommonBuffer(IN PVOID HwDeviceExtension, IN PVP_DMA_ADAPTER VpDmaAdapter, IN ULONG Length, IN PHYSICAL_ADDRESS LogicalAddress, IN PVOID VirtualAddress, IN BOOLEAN CacheEnabled)
Definition: dma.c:68

◆ VideoPortFreeDeviceBase()

VPAPI VOID NTAPI VideoPortFreeDeviceBase ( IN PVOID  HwDeviceExtension,
IN PVOID  MappedAddress 
)

Definition at line 512 of file resource.c.

515{
516 TRACE_(VIDEOPRT, "VideoPortFreeDeviceBase\n");
518 VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension),
519 MappedAddress);
520}
VOID NTAPI IntVideoPortUnmapMemory(IN PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension, IN PVOID MappedAddress)
Definition: resource.c:439

Referenced by InitializeModeTable().

◆ VideoPortFreePool()

VPAPI VOID NTAPI VideoPortFreePool ( IN PVOID  HwDeviceExtension,
IN PVOID  Ptr 
)

Definition at line 1063 of file resource.c.

1066{
1067 ExFreePool(Ptr);
1068}
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
Definition: fsrtlfuncs.h:898

Referenced by BochsFreeResources(), InitializeModeTable(), VbeGetVideoMemoryBaseAddress(), and VbeSetColorLookup().

◆ VideoPortGetAccessRanges()

VPAPI VP_STATUS NTAPI VideoPortGetAccessRanges ( _In_ PVOID  HwDeviceExtension,
_In_opt_ ULONG  NumRequestedResources,
_In_reads_opt_(NumRequestedResources) PIO_RESOURCE_DESCRIPTOR  RequestedResources,
_In_ ULONG  NumAccessRanges,
_Out_writes_(NumAccessRanges) PVIDEO_ACCESS_RANGE  AccessRanges,
_In_ PVOID  VendorId,
_In_ PVOID  DeviceId,
_Out_ PULONG  Slot 
)

Retrieves bus-relative (mainly PCI) hardware resources access ranges and, if possible, claims these resources for the caller.

Parameters
[in]HwDeviceExtensionThe miniport device extension.
[in]NumRequestedResourcesThe number of hardware resources in the RequestedResources array.
[in]RequestedResourcesAn optional array of IO_RESOURCE_DESCRIPTOR elements describing hardware resources the miniport requires.
[in]NumAccessRangesThe number of ranges in the AccessRanges array the miniport expects to retrieve.
[out]AccessRangesA pointer to an array of hardware resource ranges VideoPortGetAccessRanges fills with bus-relative device memory ACCESS_RANGE's for the adapter.
[in]VendorIdFor a PCI device, points to a USHORT-type value that identifies the PCI manufacturer of the adapter. Otherwise, should be NULL.
[in]DeviceIdFor a PCI device, points to a USHORT-type value that identifies a particular PCI adapter model, assigned by the manufacturer. Otherwise, should be NULL.
[out]SlotPoints to a ULONG value that receives the logical slot / location of the adapter (bus-dependent). For a PCI adapter, Slot points to a PCI_SLOT_NUMBER structure that locates the adapter on the PCI bus.
Returns
  • NO_ERROR if the resources have been successfully claimed or released.
  • ERROR_INVALID_PARAMETER if an error or a conflict occurred.
  • ERROR_DEV_NOT_EXIST if the device is not found.
  • ERROR_MORE_DATA if there exist more device access ranges available than what is specified by NumAccessRanges.
  • ERROR_NOT_ENOUGH_MEMORY if there is not enough memory available.

Definition at line 640 of file resource.c.

650{
651 PCI_SLOT_NUMBER PciSlotNumber;
653 ULONG FunctionNumber;
657 UINT AssignedCount = 0;
660 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
662 USHORT VendorIdToFind;
663 USHORT DeviceIdToFind;
665 PVIDEO_ACCESS_RANGE LegacyAccessRanges;
666 ULONG LegacyAccessRangeCount;
668 ULONG ListSize;
670 BOOLEAN DeviceAndVendorFound = FALSE;
671
672 TRACE_(VIDEOPRT, "VideoPortGetAccessRanges(%d, %p, %d, %p)\n",
673 NumRequestedResources, RequestedResources, NumAccessRanges, AccessRanges);
674
675 DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
676 DriverObject = DeviceExtension->DriverObject;
678
679 if (NumRequestedResources == 0)
680 {
681 AllocatedResources = DeviceExtension->AllocatedResources;
682 if (AllocatedResources == NULL &&
683 DeviceExtension->AdapterInterfaceType == PCIBus)
684 {
685 if (DeviceExtension->PhysicalDeviceObject != NULL)
686 {
687 PciSlotNumber.u.AsULONG = DeviceExtension->SystemIoSlotNumber;
688
690 DeviceExtension->SystemIoBusNumber,
691 PciSlotNumber.u.AsULONG,
692 &Config,
693 sizeof(Config));
694
695 if (ReturnedLength != sizeof(Config))
696 {
698 }
699 }
700 else
701 {
702 VendorIdToFind = VendorId != NULL ? *(PUSHORT)VendorId : 0;
703 DeviceIdToFind = DeviceId != NULL ? *(PUSHORT)DeviceId : 0;
704
705 if (VendorIdToFind == 0 && DeviceIdToFind == 0)
706 {
707 /* We're screwed */
708 return ERROR_DEV_NOT_EXIST;
709 }
710
711 INFO_(VIDEOPRT, "Looking for VendorId 0x%04x DeviceId 0x%04x\n",
712 VendorIdToFind, DeviceIdToFind);
713
714 /*
715 * Search for the device id and vendor id on this bus.
716 */
717 PciSlotNumber.u.bits.Reserved = 0;
719 {
720 PciSlotNumber.u.bits.DeviceNumber = DeviceNumber;
721 for (FunctionNumber = 0; FunctionNumber < PCI_MAX_FUNCTION; FunctionNumber++)
722 {
723 INFO_(VIDEOPRT, "- Function number: %d\n", FunctionNumber);
724 PciSlotNumber.u.bits.FunctionNumber = FunctionNumber;
726 DeviceExtension->SystemIoBusNumber,
727 PciSlotNumber.u.AsULONG,
728 &Config,
729 sizeof(Config));
730
731 INFO_(VIDEOPRT, "- Length of data: %x\n", ReturnedLength);
732
733 if (ReturnedLength == sizeof(Config))
734 {
735 INFO_(VIDEOPRT, "- Slot 0x%02x (Device %d Function %d) VendorId 0x%04x "
736 "DeviceId 0x%04x\n",
737 PciSlotNumber.u.AsULONG,
738 PciSlotNumber.u.bits.DeviceNumber,
739 PciSlotNumber.u.bits.FunctionNumber,
740 Config.VendorID,
741 Config.DeviceID);
742
743 if ((VendorIdToFind == 0 || Config.VendorID == VendorIdToFind) &&
744 (DeviceIdToFind == 0 || Config.DeviceID == DeviceIdToFind))
745 {
746 DeviceAndVendorFound = TRUE;
747 break;
748 }
749 }
750 }
751 if (DeviceAndVendorFound)
752 break;
753 }
754 if (FunctionNumber == PCI_MAX_FUNCTION)
755 {
756 WARN_(VIDEOPRT, "Didn't find device.\n");
757 return ERROR_DEV_NOT_EXIST;
758 }
759 }
760
761 Status = HalAssignSlotResources(&DeviceExtension->RegistryPath,
762 NULL,
763 DeviceExtension->DriverObject,
764 DeviceExtension->DriverObject->DeviceObject,
765 DeviceExtension->AdapterInterfaceType,
766 DeviceExtension->SystemIoBusNumber,
767 PciSlotNumber.u.AsULONG,
769 if (!NT_SUCCESS(Status))
770 {
771 WARN_(VIDEOPRT, "HalAssignSlotResources failed with status %x.\n",Status);
772 return Status;
773 }
774 DeviceExtension->AllocatedResources = AllocatedResources;
775 DeviceExtension->SystemIoSlotNumber = PciSlotNumber.u.AsULONG;
776
777 /* Add legacy resources to the resources from HAL */
779 &LegacyAccessRanges, &LegacyAccessRangeCount);
780 if (!NT_SUCCESS(Status))
781 return ERROR_DEV_NOT_EXIST;
782
783 if (NumAccessRanges < LegacyAccessRangeCount)
784 {
785 ERR_(VIDEOPRT, "Too many legacy access ranges found\n");
786 return ERROR_NOT_ENOUGH_MEMORY; // ERROR_MORE_DATA;
787 }
788
789 RtlCopyMemory(AccessRanges, LegacyAccessRanges, LegacyAccessRangeCount * sizeof(VIDEO_ACCESS_RANGE));
790 AssignedCount = LegacyAccessRangeCount;
791 }
792 }
793 else
794 {
795 ListSize = sizeof(IO_RESOURCE_REQUIREMENTS_LIST) + (NumRequestedResources - 1) * sizeof(IO_RESOURCE_DESCRIPTOR);
796 ResReqList = ExAllocatePool(NonPagedPool, ListSize);
797 if (!ResReqList)
799
800 ResReqList->ListSize = ListSize;
801 ResReqList->InterfaceType = DeviceExtension->AdapterInterfaceType;
802 ResReqList->BusNumber = DeviceExtension->SystemIoBusNumber;
803 ResReqList->SlotNumber = DeviceExtension->SystemIoSlotNumber;
804 ResReqList->AlternativeLists = 1;
805 ResReqList->List[0].Version = 1;
806 ResReqList->List[0].Revision = 1;
807 ResReqList->List[0].Count = NumRequestedResources;
808
809 /* Copy in the caller's resource list */
810 RtlCopyMemory(ResReqList->List[0].Descriptors,
811 RequestedResources,
812 NumRequestedResources * sizeof(IO_RESOURCE_DESCRIPTOR));
813
814 Status = IoAssignResources(&DeviceExtension->RegistryPath,
815 NULL,
816 DeviceExtension->DriverObject,
817 DeviceExtension->PhysicalDeviceObject ?
818 DeviceExtension->PhysicalDeviceObject :
819 DeviceExtension->DriverObject->DeviceObject,
820 ResReqList,
822
823 if (!NT_SUCCESS(Status))
824 return Status;
825
826 if (!DeviceExtension->AllocatedResources)
827 DeviceExtension->AllocatedResources = AllocatedResources;
828 }
829
832
833 /* Return the slot number if the caller wants it */
834 if (Slot != NULL) *Slot = DeviceExtension->SystemIoBusNumber;
835
836 FullList = AllocatedResources->List;
837 ASSERT(AllocatedResources->Count == 1);
838 INFO_(VIDEOPRT, "InterfaceType %u BusNumber List %u Device BusNumber %u Version %u Revision %u\n",
839 FullList->InterfaceType, FullList->BusNumber, DeviceExtension->SystemIoBusNumber,
841
842 ASSERT(FullList->InterfaceType == PCIBus);
843 ASSERT(FullList->BusNumber == DeviceExtension->SystemIoBusNumber);
844 ASSERT(1 == FullList->PartialResourceList.Version);
845 ASSERT(1 == FullList->PartialResourceList.Revision);
846
848 Descriptor < FullList->PartialResourceList.PartialDescriptors + FullList->PartialResourceList.Count;
849 Descriptor++)
850 {
851 if ((Descriptor->Type == CmResourceTypeMemory ||
852 Descriptor->Type == CmResourceTypePort) &&
853 AssignedCount >= NumAccessRanges)
854 {
855 ERR_(VIDEOPRT, "Too many access ranges found\n");
856 return ERROR_MORE_DATA;
857 }
858 else if (Descriptor->Type == CmResourceTypeMemory)
859 {
860 INFO_(VIDEOPRT, "Memory range starting at 0x%08x length 0x%08x\n",
861 Descriptor->u.Memory.Start.u.LowPart, Descriptor->u.Memory.Length);
862 AccessRanges[AssignedCount].RangeStart = Descriptor->u.Memory.Start;
863 AccessRanges[AssignedCount].RangeLength = Descriptor->u.Memory.Length;
864 AccessRanges[AssignedCount].RangeInIoSpace = 0;
865 AccessRanges[AssignedCount].RangeVisible = 0; /* FIXME: Just guessing */
866 AccessRanges[AssignedCount].RangeShareable =
867 (Descriptor->ShareDisposition == CmResourceShareShared);
868 AccessRanges[AssignedCount].RangePassive = 0;
869 AssignedCount++;
870 }
871 else if (Descriptor->Type == CmResourceTypePort)
872 {
873 INFO_(VIDEOPRT, "Port range starting at 0x%04x length %d\n",
874 Descriptor->u.Port.Start.u.LowPart, Descriptor->u.Port.Length);
875 AccessRanges[AssignedCount].RangeStart = Descriptor->u.Port.Start;
876 AccessRanges[AssignedCount].RangeLength = Descriptor->u.Port.Length;
877 AccessRanges[AssignedCount].RangeInIoSpace = 1;
878 AccessRanges[AssignedCount].RangeVisible = 0; /* FIXME: Just guessing */
879 AccessRanges[AssignedCount].RangeShareable =
880 (Descriptor->ShareDisposition == CmResourceShareShared);
881 AccessRanges[AssignedCount].RangePassive = 0;
883 AccessRanges[AssignedCount].RangePassive |= VIDEO_RANGE_10_BIT_DECODE;
885 AccessRanges[AssignedCount].RangePassive |= VIDEO_RANGE_PASSIVE_DECODE;
886 AssignedCount++;
887 }
888 else if (Descriptor->Type == CmResourceTypeInterrupt)
889 {
890 DeviceExtension->InterruptLevel = Descriptor->u.Interrupt.Level;
891 DeviceExtension->InterruptVector = Descriptor->u.Interrupt.Vector;
892 if (Descriptor->ShareDisposition == CmResourceShareShared)
893 DeviceExtension->InterruptShared = TRUE;
894 else
895 DeviceExtension->InterruptShared = FALSE;
896 }
897 // else if (Descriptor->Type == CmResourceTypeDma) // TODO!
898 else
899 {
900 ASSERT(FALSE);
902 }
903 }
904
905 return NO_ERROR;
906}
_In_ ULONG _In_ BATTERY_QUERY_INFORMATION_LEVEL _In_ LONG _In_ ULONG _Out_ PULONG ReturnedLength
Definition: batclass.h:188
_In_ PCHAR _In_ ULONG DeviceNumber
Definition: classpnp.h:1230
#define ERROR_MORE_DATA
Definition: dderror.h:13
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
NTHALAPI NTSTATUS NTAPI HalAssignSlotResources(PUNICODE_STRING, PUNICODE_STRING, PDRIVER_OBJECT, PDEVICE_OBJECT, INTERFACE_TYPE, ULONG, ULONG, PCM_RESOURCE_LIST *)
NTHALAPI ULONG NTAPI HalGetBusData(BUS_DATA_TYPE, ULONG, ULONG, PVOID, ULONG)
NTSTATUS NTAPI IoAssignResources(_In_ PUNICODE_STRING RegistryPath, _In_opt_ PUNICODE_STRING DriverClassName, _In_ PDRIVER_OBJECT DriverObject, _In_opt_ PDEVICE_OBJECT DeviceObject, _In_opt_ PIO_RESOURCE_REQUIREMENTS_LIST RequestedResources, _Inout_ PCM_RESOURCE_LIST *AllocatedResources)
Definition: iorsrce.c:1134
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResources
Definition: ndis.h:4643
unsigned int UINT
Definition: ndis.h:50
#define CM_RESOURCE_PORT_PASSIVE_DECODE
Definition: cmtypes.h:114
#define CM_RESOURCE_PORT_10_BIT_DECODE
Definition: cmtypes.h:110
PVOID NTAPI IoGetDriverObjectExtension(IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress)
Definition: driver.c:1916
PPCI_DRIVER_EXTENSION DriverExtension
Definition: pci.c:31
unsigned short USHORT
Definition: pedump.c:61
#define CmResourceTypeMemory
Definition: restypes.h:106
@ PCIBus
Definition: restypes.h:126
#define CmResourceTypePort
Definition: restypes.h:104
#define CmResourceTypeInterrupt
Definition: restypes.h:105
@ PCIConfiguration
Definition: miniport.h:93
struct _IO_RESOURCE_DESCRIPTOR IO_RESOURCE_DESCRIPTOR
#define VIDEO_RANGE_10_BIT_DECODE
Definition: video.h:99
#define VIDEO_RANGE_PASSIVE_DECODE
Definition: video.h:98
#define INFO_(ch,...)
Definition: debug.h:159
#define ERR_(ch,...)
Definition: debug.h:156
CM_PARTIAL_RESOURCE_LIST PartialResourceList
Definition: restypes.h:144
INTERFACE_TYPE InterfaceType
Definition: restypes.h:142
CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]
Definition: restypes.h:100
PDEVICE_OBJECT DeviceObject
Definition: iotypes.h:2279
IO_RESOURCE_DESCRIPTOR Descriptors[1]
Definition: iotypes.h:2739
INTERFACE_TYPE InterfaceType
Definition: iotypes.h:2744
IO_RESOURCE_LIST List[1]
Definition: iotypes.h:2749
struct _PCI_SLOT_NUMBER::@4322::@4323 bits
union _PCI_SLOT_NUMBER::@4322 u
PCM_RESOURCE_LIST AllocatedResources
Definition: videoprt.h:94
INTERFACE_TYPE AdapterInterfaceType
Definition: videoprt.h:98
UNICODE_STRING RegistryPath
Definition: videoprt.h:90
uint16_t * PUSHORT
Definition: typedefs.h:56
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
Definition: wdfchildlist.h:476
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
Definition: wdfresource.h:342
NTSTATUS NTAPI IntVideoPortGetLegacyResources(IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension, IN PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension, OUT PVIDEO_ACCESS_RANGE *AccessRanges, OUT PULONG AccessRangeCount)
Definition: resource.c:40
@ CmResourceShareShared
Definition: cmtypes.h:243
#define PCI_MAX_FUNCTION
Definition: iotypes.h:3601
#define PCI_MAX_DEVICES
Definition: iotypes.h:3600
struct _IO_RESOURCE_REQUIREMENTS_LIST IO_RESOURCE_REQUIREMENTS_LIST

Referenced by BochsFindAdapter(), and XboxVmpFindAdapter().

◆ VideoPortGetAssociatedDeviceExtension()

VPAPI PVOID NTAPI VideoPortGetAssociatedDeviceExtension ( IN PVOID  DeviceObject)

Definition at line 1586 of file videoprt.c.

1588{
1589 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
1590
1591 TRACE_(VIDEOPRT, "VideoPortGetAssociatedDeviceExtension\n");
1592 DeviceExtension = ((PDEVICE_OBJECT)DeviceObject)->DeviceExtension;
1593 if (!DeviceExtension)
1594 return NULL;
1595 return DeviceExtension->MiniPortDeviceExtension;
1596}
struct _DEVICE_OBJECT * PDEVICE_OBJECT

◆ VideoPortGetAssociatedDeviceID()

VPAPI ULONG NTAPI VideoPortGetAssociatedDeviceID ( IN PVOID  DeviceObject)

Definition at line 38 of file stubs.c.

40{
42 return 0;
43}

◆ VideoPortGetBusData()

VPAPI ULONG NTAPI VideoPortGetBusData ( IN PVOID  HwDeviceExtension,
IN BUS_DATA_TYPE  BusDataType,
IN ULONG  SlotNumber,
IN OUT PVOID  Buffer,
IN ULONG  Offset,
IN ULONG  Length 
)

◆ VideoPortGetBytesUsed()

VPAPI ULONG NTAPI VideoPortGetBytesUsed ( IN PVOID  HwDeviceExtension,
IN PDMA  pDma 
)

Definition at line 48 of file stubs.c.

51{
53 return 0;
54}

◆ VideoPortGetCommonBuffer()

VPAPI PVOID NTAPI VideoPortGetCommonBuffer ( IN PVOID  HwDeviceExtension,
IN ULONG  DesiredLength,
IN ULONG  Alignment,
OUT PPHYSICAL_ADDRESS  LogicalAddress,
OUT PULONG  pActualLength,
IN BOOLEAN  CacheEnabled 
)

Definition at line 215 of file dma.c.

221{
223 PVIP_DMA_ADAPTER VpDmaAdapter;
224 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
225
226 /* maximum palette size */
227 if (DesiredLength > 262144)
228 {
229 /* size exceeded */
230 return NULL;
231 }
232
233 if (IsListEmpty(&DeviceExtension->DmaAdapterList))
234 {
235 /* no adapter available */
236 return NULL;
237 }
238
239 /* grab first dma adapter */
241
242 /* sanity checks */
243 ASSERT(VpDmaAdapter->HwDeviceExtension == HwDeviceExtension);
244 ASSERT(VpDmaAdapter->Adapter != NULL);
245 ASSERT(VpDmaAdapter->MapRegisters != 0);
246
247 /* allocate common buffer */
248 Result = VideoPortAllocateCommonBuffer(HwDeviceExtension, (PVP_DMA_ADAPTER)VpDmaAdapter, DesiredLength, LogicalAddress, CacheEnabled, NULL);
249
250 if (Result)
251 {
252 /* store length */
253 *pActualLength = DesiredLength;
254 }
255 else
256 {
257 /* failed to allocate common buffer */
258 *pActualLength = 0;
259 }
260
261 return Result;
262}
PVOID NTAPI VideoPortAllocateCommonBuffer(IN PVOID HwDeviceExtension, IN PVP_DMA_ADAPTER VpDmaAdapter, IN ULONG DesiredLength, OUT PPHYSICAL_ADDRESS LogicalAddress, IN BOOLEAN CacheEnabled, PVOID Reserved)
Definition: dma.c:43
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Definition: wsk.h:409

◆ VideoPortGetCurrentIrql()

VPAPI UCHAR NTAPI VideoPortGetCurrentIrql ( VOID  )

Definition at line 1039 of file videoprt.c.

1040{
1041 return KeGetCurrentIrql();
1042}
#define KeGetCurrentIrql()
Definition: env_spec_w32.h:706

◆ VideoPortGetDeviceBase()

VPAPI PVOID NTAPI VideoPortGetDeviceBase ( IN PVOID  HwDeviceExtension,
IN PHYSICAL_ADDRESS  IoAddress,
IN ULONG  NumberOfUchars,
IN UCHAR  InIoSpace 
)

Definition at line 491 of file resource.c.

496{
497 TRACE_(VIDEOPRT, "VideoPortGetDeviceBase\n");
499 VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension),
500 IoAddress,
501 NumberOfUchars,
502 InIoSpace,
503 NULL,
504 NULL);
505}
PVOID NTAPI IntVideoPortMapMemory(IN PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension, IN PHYSICAL_ADDRESS IoAddress, IN ULONG NumberOfUchars, IN ULONG InIoSpace, IN HANDLE ProcessHandle, OUT VP_STATUS *Status)
Definition: resource.c:281

Referenced by BochsFindAdapter(), InitializeModeTable(), and VgaFindAdapter().

◆ VideoPortGetDeviceData()

VPAPI VP_STATUS NTAPI VideoPortGetDeviceData ( IN PVOID  HwDeviceExtension,
IN VIDEO_DEVICE_DATA_TYPE  DeviceDataType,
IN PMINIPORT_QUERY_DEVICE_ROUTINE  CallbackRoutine,
IN PVOID  Context 
)

Definition at line 1032 of file resource.c.

1037{
1038 TRACE_(VIDEOPRT, "VideoPortGetDeviceData\n");
1041}

Referenced by VgaFindAdapter().

◆ VideoPortGetDmaAdapter()

VPAPI PVP_DMA_ADAPTER NTAPI VideoPortGetDmaAdapter ( IN PVOID  HwDeviceExtension,
IN PVP_DEVICE_DESCRIPTION  VpDeviceDescription 
)

Definition at line 120 of file dma.c.

122{
124 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
126 PVIP_DMA_ADAPTER Adapter;
127 PDMA_ADAPTER DmaAdapter;
128
129 /* allocate private adapter structure */
130 Adapter = ExAllocatePool(NonPagedPool, sizeof(VIP_DMA_ADAPTER));
131 if (!Adapter)
132 {
133 /* failed to allocate adapter structure */
134 return NULL;
135 }
136
137 /* Zero the structure */
139 sizeof(DEVICE_DESCRIPTION));
140
141 /* Initialize the structure */
143 DeviceDescription.Master = TRUE;
144 DeviceDescription.DmaWidth = Width8Bits;
145 DeviceDescription.DmaSpeed = Compatible;
146
147 /* Copy data from caller's device extension */
148 DeviceDescription.ScatterGather = VpDeviceExtension->ScatterGather;
149 DeviceDescription.Dma32BitAddresses = VpDeviceExtension->Dma32BitAddresses;
150 DeviceDescription.Dma64BitAddresses = VpDeviceExtension->Dma64BitAddresses;
151 DeviceDescription.MaximumLength = VpDeviceExtension->MaximumLength;
152
153 /* Copy data from the internal device extension */
154 DeviceDescription.BusNumber = DeviceExtension->SystemIoBusNumber;
155 DeviceDescription.InterfaceType = DeviceExtension->AdapterInterfaceType;
156
157 /* acquire dma adapter */
159 if (!DmaAdapter)
160 {
161 /* failed to acquire dma */
162 ExFreePool(Adapter);
163 return NULL;
164 }
165
166 /* store dma adapter */
167 Adapter->Adapter = DmaAdapter;
168
169 /* store map register count */
171
172 /* store hw device extension */
173 Adapter->HwDeviceExtension = HwDeviceExtension;
174
175 /* store in dma adapter list */
176 InsertTailList(&DeviceExtension->DmaAdapterList, &Adapter->Entry);
177
178 /* return result */
179 return (PVP_DMA_ADAPTER)Adapter;
180}
#define InsertTailList(ListHead, Entry)
PDMA_ADAPTER NTAPI IoGetDmaAdapter(IN PDEVICE_OBJECT PhysicalDeviceObject, IN PDEVICE_DESCRIPTION DeviceDescription, IN OUT PULONG NumberOfMapRegisters)
Definition: pnpdma.c:23
@ Width8Bits
Definition: miniport.h:105
@ Compatible
Definition: miniport.h:112
LIST_ENTRY Entry
Definition: dma.c:18
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
Definition: wdfpdo.h:432
_Out_ PULONG NumberOfMapRegisters
Definition: halfuncs.h:209
#define DEVICE_DESCRIPTION_VERSION
Definition: iotypes.h:2063

◆ VideoPortGetDmaContext()

VPAPI PVOID NTAPI VideoPortGetDmaContext ( IN PVOID  HwDeviceExtension,
IN PDMA  pDma 
)

Definition at line 414 of file dma.c.

416{
417 /* Deprecated */
418 return NULL;
419}

◆ VideoPortGetMdl()

VPAPI PVOID NTAPI VideoPortGetMdl ( IN PVOID  HwDeviceExtension,
IN PDMA  pDma 
)

Definition at line 58 of file stubs.c.

61{
63 return 0;
64}

◆ VideoPortGetRegistryParameters()

VPAPI VP_STATUS NTAPI VideoPortGetRegistryParameters ( IN PVOID  HwDeviceExtension,
IN PWSTR  ParameterName,
IN UCHAR  IsParameterFileName,
IN PMINIPORT_GET_REGISTRY_ROUTINE  CallbackRoutine,
IN PVOID  Context 
)

Definition at line 1080 of file videoprt.c.

1086{
1089 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
1091
1092 DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
1093
1094 TRACE_(VIDEOPRT, "VideoPortGetRegistryParameters ParameterName %S, RegPath: %wZ\n",
1095 ParameterName, &DeviceExtension->RegistryPath);
1096
1097 Context.HwDeviceExtension = HwDeviceExtension;
1098 Context.HwContext = HwContext;
1099 Context.HwGetRegistryRoutine = GetRegistryRoutine;
1100
1104
1106 DeviceExtension->RegistryPath.Buffer,
1107 QueryTable,
1108 &Context,
1109 NULL);
1110 if (!NT_SUCCESS(Status))
1111 {
1112 WARN_(VIDEOPRT, "VideoPortGetRegistryParameters could not find the "
1113 "requested parameter\n");
1115 }
1116
1117 if (IsParameterFileName)
1118 {
1119 /* FIXME: need to read the contents of the file */
1121 }
1122
1123 return NO_ERROR;
1124}
_In_opt_ PWSTR _In_ PWSTR ParameterName
Definition: cdrom.h:961
NTSYSAPI NTSTATUS WINAPI RtlQueryRegistryValues(ULONG, PCWSTR, PRTL_QUERY_REGISTRY_TABLE, PVOID, PVOID)
_In_ PCWSTR _Inout_ _At_ QueryTable _Pre_unknown_ PRTL_QUERY_REGISTRY_TABLE QueryTable
Definition: rtlfuncs.h:4211
#define RTL_REGISTRY_ABSOLUTE
Definition: nt_native.h:161
#define RTL_QUERY_REGISTRY_REQUIRED
Definition: nt_native.h:132
_Must_inspect_result_ _In_ PVOID _In_ struct _HW_INITIALIZATION_DATA _In_ PVOID HwContext
Definition: srb.h:907
PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine
Definition: nt_native.h:109
static NTSTATUS NTAPI QueryRegistryCallback(IN PWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength, IN PVOID Context, IN PVOID EntryContext)
Definition: videoprt.c:1054

◆ VideoPortGetRomImage()

VPAPI PVOID NTAPI VideoPortGetRomImage ( IN PVOID  HwDeviceExtension,
IN PVOID  Unused1,
IN ULONG  Unused2,
IN ULONG  Length 
)

Definition at line 1190 of file videoprt.c.

1195{
1196 static PVOID RomImageBuffer = NULL;
1197 PKPROCESS CallingProcess;
1199
1200 TRACE_(VIDEOPRT, "VideoPortGetRomImage(HwDeviceExtension 0x%X Length 0x%X)\n",
1201 HwDeviceExtension, Length);
1202
1203 /* If the length is zero then free the existing buffer */
1204 if (Length == 0)
1205 {
1206 if (RomImageBuffer != NULL)
1207 {
1208 ExFreePool(RomImageBuffer);
1209 RomImageBuffer = NULL;
1210 }
1211 return NULL;
1212 }
1213 else
1214 {
1215 /*
1216 * The DDK says we shouldn't use the legacy C0000 method but get the
1217 * ROM base address from the corresponding PCI or ACPI register but
1218 * lets ignore that and use C0000 anyway. We have already mapped the
1219 * BIOS area into memory so we'll copy from there.
1220 */
1221
1222 /* Copy the BIOS */
1223 Length = min(Length, 0x10000);
1224 if (RomImageBuffer != NULL)
1225 ExFreePool(RomImageBuffer);
1226
1227 RomImageBuffer = ExAllocatePool(PagedPool, Length);
1228 if (RomImageBuffer == NULL)
1229 return NULL;
1230
1231 /* Perform the copy in the CSRSS context */
1232 if (IntAttachToCSRSS(&CallingProcess, &ApcState))
1233 {
1234 RtlCopyMemory(RomImageBuffer, (PUCHAR)0xC0000, Length);
1235 IntDetachFromCSRSS(CallingProcess, &ApcState);
1236 }
1237 else
1238 {
1239 ExFreePool(RomImageBuffer);
1240 RomImageBuffer = NULL;
1241 }
1242 return RomImageBuffer;
1243 }
1244}
#define min(a, b)
Definition: monoChain.cc:55
_Out_ PKAPC_STATE ApcState
Definition: mm.h:1768
unsigned char * PUCHAR
Definition: typedefs.h:53
VOID FASTCALL IntDetachFromCSRSS(_In_ PKPROCESS CallingProcess, _In_ PKAPC_STATE ApcState)
Detach the current thread from the CSRSS process. This routine is to be invoked after a previous succ...
Definition: videoprt.c:616
BOOLEAN FASTCALL IntAttachToCSRSS(_Outptr_ PKPROCESS *CallingProcess, _Out_ PKAPC_STATE ApcState)
Attach the current thread to the CSRSS process. The caller must detach from the process by invoking I...
Definition: videoprt.c:589
KAPC_STATE
Definition: ketypes.h:1711

◆ VideoPortGetVersion()

VPAPI VP_STATUS NTAPI VideoPortGetVersion ( IN PVOID  HwDeviceExtension,
IN OUT PVPOSVERSIONINFO  pVpOsVersionInfo 
)

Definition at line 1603 of file videoprt.c.

1606{
1608
1609 Version.dwOSVersionInfoSize = sizeof(RTL_OSVERSIONINFOEXW);
1610 if (VpOsVersionInfo->Size >= sizeof(VPOSVERSIONINFO))
1611 {
1612#if 1
1614 {
1615 VpOsVersionInfo->MajorVersion = Version.dwMajorVersion;
1616 VpOsVersionInfo->MinorVersion = Version.dwMinorVersion;
1617 VpOsVersionInfo->BuildNumber = Version.dwBuildNumber;
1618 VpOsVersionInfo->ServicePackMajor = Version.wServicePackMajor;
1619 VpOsVersionInfo->ServicePackMinor = Version.wServicePackMinor;
1620 return NO_ERROR;
1621 }
1623#else
1624 VpOsVersionInfo->MajorVersion = 5;
1625 VpOsVersionInfo->MinorVersion = 0;
1626 VpOsVersionInfo->BuildNumber = 2195;
1627 VpOsVersionInfo->ServicePackMajor = 4;
1628 VpOsVersionInfo->ServicePackMinor = 0;
1629 return NO_ERROR;
1630#endif
1631 }
1632
1634}
NTSTATUS NTAPI RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation)
Definition: version.c:182
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
Definition: wdffdo.h:469
struct _OSVERSIONINFOEXW RTL_OSVERSIONINFOEXW

◆ VideoPortGetVgaStatus()

VPAPI VP_STATUS NTAPI VideoPortGetVgaStatus ( IN PVOID  HwDeviceExtension,
OUT PULONG  VgaStatus 
)

Definition at line 1162 of file videoprt.c.

1165{
1166 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
1167
1168 TRACE_(VIDEOPRT, "VideoPortGetVgaStatus\n");
1169
1170 DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
1172 {
1173 if (DeviceExtension->AdapterInterfaceType == PCIBus)
1174 {
1175 /* VgaStatus: 0 == VGA not enabled, 1 == VGA enabled. */
1176 /* Assumed for now */
1177 *VgaStatus = 1;
1178 return NO_ERROR;
1179 }
1180 }
1181
1183}
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693

◆ VideoPortInitialize()

VPAPI ULONG NTAPI VideoPortInitialize ( IN PVOID  Argument1,
IN PVOID  Argument2,
IN PVIDEO_HW_INITIALIZATION_DATA  HwInitializationData,
IN PVOID  HwContext 
)

Definition at line 786 of file videoprt.c.

791{
796 BOOLEAN PnpDriver = FALSE, LegacyDetection = FALSE;
797 static BOOLEAN FirstInitialization;
798
799 TRACE_(VIDEOPRT, "VideoPortInitialize\n");
800
801 if (!FirstInitialization)
802 {
803 FirstInitialization = TRUE;
807 }
808
809 /* As a first thing do parameter checks. */
810 if (HwInitializationData->HwInitDataSize > sizeof(VIDEO_HW_INITIALIZATION_DATA))
811 {
812 ERR_(VIDEOPRT, "Invalid HwInitializationData\n");
814 }
815
816 if ((HwInitializationData->HwFindAdapter == NULL) ||
817 (HwInitializationData->HwInitialize == NULL) ||
818 (HwInitializationData->HwStartIO == NULL))
819 {
820 ERR_(VIDEOPRT, "Invalid HwInitializationData\n");
822 }
823
824 switch (HwInitializationData->HwInitDataSize)
825 {
826 /*
827 * NT4 drivers are special case, because we must use legacy method
828 * of detection instead of the Plug & Play one.
829 */
831 INFO_(VIDEOPRT, "We were loaded by a Windows NT miniport driver.\n");
832 break;
833
835 INFO_(VIDEOPRT, "We were loaded by a Windows 2000 miniport driver.\n");
836 break;
837
838 case sizeof(VIDEO_HW_INITIALIZATION_DATA):
839 INFO_(VIDEOPRT, "We were loaded by a Windows XP or later miniport driver.\n");
840 break;
841
842 default:
843 ERR_(VIDEOPRT, "Invalid HwInitializationData size %lu (expected %lu, %lu or %lu)\n",
844 HwInitializationData->HwInitDataSize,
848 return STATUS_UNSUCCESSFUL;
849 }
850
851 /* Set dispatching routines */
854 DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] =
856 DriverObject->MajorFunction[IRP_MJ_SHUTDOWN] =
858 DriverObject->DriverUnload = IntVideoPortUnload;
859
860 /* Determine type of the miniport driver */
861 if ((HwInitializationData->HwInitDataSize >=
862 FIELD_OFFSET(VIDEO_HW_INITIALIZATION_DATA, HwQueryInterface)) &&
863 (HwInitializationData->HwSetPowerState != NULL) &&
864 (HwInitializationData->HwGetPowerState != NULL) &&
865 (HwInitializationData->HwGetVideoChildDescriptor != NULL))
866 {
867 INFO_(VIDEOPRT, "The miniport is a PnP miniport driver\n");
868 PnpDriver = TRUE;
869 }
870
871 /* Check if legacy detection should be applied */
872 if (!PnpDriver || HwContext)
873 {
874 INFO_(VIDEOPRT, "Legacy detection for adapter interface %d\n",
875 HwInitializationData->AdapterInterfaceType);
876
877 /* FIXME: Move the code for legacy detection
878 to another function and call it here */
879 LegacyDetection = TRUE;
880 }
881
882 /*
883 * NOTE:
884 * The driver extension can be already allocated in case that we were
885 * called by legacy driver and failed detecting device. Some miniport
886 * drivers in that case adjust parameters and call VideoPortInitialize
887 * again.
888 */
890 if (DriverExtension == NULL)
891 {
896 if (!NT_SUCCESS(Status))
897 {
898 ERR_(VIDEOPRT, "IoAllocateDriverObjectExtension failed 0x%x\n", Status);
899 return Status;
900 }
901
902 /*
903 * Save the registry path. This should be done only once even if
904 * VideoPortInitialize is called multiple times.
905 */
906 if (RegistryPath->Length != 0)
907 {
908 DriverExtension->RegistryPath.Length = 0;
909 DriverExtension->RegistryPath.MaximumLength =
910 RegistryPath->Length + sizeof(UNICODE_NULL);
911 DriverExtension->RegistryPath.Buffer =
913 PagedPool,
914 DriverExtension->RegistryPath.MaximumLength,
915 'RTSU');
916 if (DriverExtension->RegistryPath.Buffer == NULL)
917 {
920 }
921
923
924 /* There is a bug in Spice guest agent, which searches 'System' case-sensitively.
925 * Replace 'SYSTEM' by 'System' to fix that.
926 * Probably for similar reason, Windows also replaces 'MACHINE' by 'Machine'.
927 */
928 wcsncpy(wcsstr(DriverExtension->RegistryPath.Buffer, L"\\SYSTEM\\"), L"\\System\\", ARRAYSIZE(L"\\SYSTEM\\") - 1);
929 wcsncpy(wcsstr(DriverExtension->RegistryPath.Buffer, L"\\MACHINE\\"), L"\\Machine\\", ARRAYSIZE(L"\\MACHINE\\") - 1);
930
931 INFO_(VIDEOPRT, "RegistryPath: %wZ\n", &DriverExtension->RegistryPath);
932 }
933 else
934 {
936 }
937 }
938
939 /* Copy the correct miniport initialization data to the device extension. */
940 RtlCopyMemory(&DriverExtension->InitializationData,
942 HwInitializationData->HwInitDataSize);
943 if (HwInitializationData->HwInitDataSize <
945 {
946 RtlZeroMemory((PVOID)((ULONG_PTR)&DriverExtension->InitializationData +
947 HwInitializationData->HwInitDataSize),
949 HwInitializationData->HwInitDataSize);
950 }
951 DriverExtension->HwContext = HwContext;
952
953 /*
954 * Plug & Play drivers registers the device in AddDevice routine.
955 * For legacy drivers we must do it now.
956 */
957 if (LegacyDetection)
958 {
960
962 {
963 /* Power management */
965 }
966
969 NULL,
970 DriverExtension->InitializationData.StartingDeviceNumber,
971 0,
972 &DeviceObject);
973 if (!NT_SUCCESS(Status))
974 {
975 ERR_(VIDEOPRT, "IntVideoPortCreateAdapterDeviceObject returned 0x%x\n", Status);
976 return Status;
977 }
978
980 if (!NT_SUCCESS(Status))
981 ERR_(VIDEOPRT, "IntVideoPortFindAdapter returned 0x%x\n", Status);
982
983 return Status;
984 }
985 else
986 {
987 DriverObject->DriverExtension->AddDevice = IntVideoPortAddDevice;
991
992 return STATUS_SUCCESS;
993 }
994}
#define IRP_MJ_PNP
Definition: cdrw_usr.h:52
wcsncpy
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
#define L(x)
Definition: resources.c:13
_CONST_RETURN wchar_t *__cdecl wcsstr(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_SubStr)
KMUTEX VideoPortInt10Mutex
Definition: int10.c:38
NTSYSAPI VOID NTAPI RtlCopyUnicodeString(PUNICODE_STRING DestinationString, PUNICODE_STRING SourceString)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define UNICODE_NULL
NTSTATUS NTAPI IoAllocateDriverObjectExtension(IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress, IN ULONG DriverObjectExtensionSize, OUT PVOID *DriverObjectExtension)
Definition: driver.c:1838
VOID NTAPI KeInitializeMutex(IN PKMUTEX Mutex, IN ULONG Level)
Definition: mutex.c:67
#define STATUS_REVISION_MISMATCH
Definition: ntstatus.h:419
#define IRP_MJ_CLOSE
Definition: rdpdr.c:45
#define IRP_MJ_DEVICE_CONTROL
Definition: rdpdr.c:52
#define IRP_MJ_CREATE
Definition: rdpdr.c:44
_Must_inspect_result_ _In_ PVOID _In_ struct _HW_INITIALIZATION_DATA * HwInitializationData
Definition: srb.h:906
struct _VIDEO_HW_INITIALIZATION_DATA VIDEO_HW_INITIALIZATION_DATA
#define SIZE_OF_NT4_VIDEO_HW_INITIALIZATION_DATA
Definition: video.h:119
#define SIZE_OF_W2K_VIDEO_HW_INITIALIZATION_DATA
Definition: video.h:120
#define STATUS_SUCCESS
Definition: shellext.h:65
_In_ PNET_PNP_EVENT _In_ PTDI_PNP_CONTEXT Context1
Definition: tdikrnl.h:1095
_In_ PNET_PNP_EVENT _In_ PTDI_PNP_CONTEXT _In_ PTDI_PNP_CONTEXT Context2
Definition: tdikrnl.h:1096
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
#define STATUS_UNSUCCESSFUL
Definition: udferr_usr.h:132
#define STATUS_INSUFFICIENT_RESOURCES
Definition: udferr_usr.h:158
VOID FASTCALL IntLoadRegistryParameters(VOID)
Definition: videoprt.c:627
NTSTATUS NTAPI IntVideoPortFindAdapter(IN PDRIVER_OBJECT DriverObject, IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension, IN PDEVICE_OBJECT DeviceObject)
Definition: videoprt.c:414
KSPIN_LOCK HwResetAdaptersLock
Definition: videoprt.c:43
NTSTATUS NTAPI IntVideoPortDispatchClose(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: dispatch.c:434
VOID NTAPI IntVideoPortUnload(PDRIVER_OBJECT DriverObject)
Definition: dispatch.c:1242
NTSTATUS NTAPI IntVideoPortDispatchOpen(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: dispatch.c:369
NTSTATUS NTAPI IntVideoPortDispatchDeviceControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: dispatch.c:766
NTSTATUS NTAPI IntVideoPortDispatchSystemControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: dispatch.c:1220
NTSTATUS NTAPI IntVideoPortDispatchPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: dispatch.c:1154
NTSTATUS NTAPI IntVideoPortAddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT PhysicalDeviceObject)
Definition: dispatch.c:334
NTSTATUS NTAPI IntVideoPortDispatchPower(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: dispatch.c:1186
#define IRP_MJ_SYSTEM_CONTROL
#define IRP_MJ_SHUTDOWN
#define IRP_MJ_POWER

Referenced by DriverEntry().

◆ VideoPortInt10()

VPAPI VP_STATUS NTAPI VideoPortInt10 ( IN PVOID  HwDeviceExtension,
IN PVIDEO_X86_BIOS_ARGUMENTS  BiosArguments 
)

Definition at line 771 of file int10.c.

774{
776 INT10_BIOS_ARGUMENTS Int10BiosArguments;
777
778 /* Copy arguments to other format */
779 RtlCopyMemory(&Int10BiosArguments, BiosArguments, sizeof(*BiosArguments));
780 Int10BiosArguments.SegDs = 0;
781 Int10BiosArguments.SegEs = 0;
782
783 /* Do the BIOS call */
784 Status = IntInt10CallBios(NULL, &Int10BiosArguments);
785
786 /* Copy results back */
787 RtlCopyMemory(BiosArguments, &Int10BiosArguments, sizeof(*BiosArguments));
788
789 return Status;
790}
VP_STATUS NTAPI IntInt10CallBios(_In_ PVOID Context, _Inout_ PINT10_BIOS_ARGUMENTS BiosArguments)
Definition: int10.c:708
LONG VP_STATUS
Definition: video.h:153

Referenced by VbeSetMode().

◆ VideoPortInterlockedDecrement()

VPAPI LONG FASTCALL VideoPortInterlockedDecrement ( IN PLONG  Addend)

Definition at line 100 of file stubs.c.

102{
104}
IN OUT PLONG Addend
Definition: CrNtStubs.h:25
long __cdecl _InterlockedDecrement(_Interlocked_operand_ long volatile *_Addend)

◆ VideoPortInterlockedExchange()

VPAPI LONG FASTCALL VideoPortInterlockedExchange ( IN OUT PLONG  Target,
IN LONG  Value 
)

Definition at line 116 of file stubs.c.

119{
121}
#define InterlockedExchange
Definition: armddk.h:54
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_In_ WDFIOTARGET Target
Definition: wdfrequest.h:306

◆ VideoPortInterlockedIncrement()

VPAPI LONG FASTCALL VideoPortInterlockedIncrement ( IN PLONG  Addend)

Definition at line 108 of file stubs.c.

110{
112}
long __cdecl _InterlockedIncrement(_Interlocked_operand_ long volatile *_Addend)

◆ VideoPortIsNoVesa()

VPAPI BOOLEAN NTAPI VideoPortIsNoVesa ( VOID  )

Definition at line 1791 of file videoprt.c.

1792{
1793 return VpNoVesa;
1794}
BOOLEAN VpNoVesa
Definition: videoprt.c:37

Referenced by InitializeModeTable(), VBEFindAdapter(), and VBEInitialize().

◆ VideoPortLockBuffer()

VPAPI PVOID NTAPI VideoPortLockBuffer ( IN PVOID  HwDeviceExtension,
IN PVOID  BaseAddress,
IN ULONG  Length,
IN VP_LOCK_OPERATION  Operation 
)

Definition at line 1103 of file resource.c.

1108{
1109 PMDL Mdl;
1110
1112 if (!Mdl)
1113 {
1114 return NULL;
1115 }
1116 /* FIXME use seh */
1118 return Mdl;
1119}
FP_OP Operation
Definition: fpcontrol.c:150
#define IoAllocateMdl
Definition: fxmdl.h:88
VOID NTAPI MmProbeAndLockPages(IN PMDL Mdl, IN KPROCESSOR_MODE AccessMode, IN LOCK_OPERATION Operation)
Definition: mdlsup.c:931
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
Definition: mmfuncs.h:404
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl

Referenced by VideoPortLockPages().

◆ VideoPortLockPages()

VPAPI BOOLEAN NTAPI VideoPortLockPages ( IN PVOID  HwDeviceExtension,
IN OUT PVIDEO_REQUEST_PACKET  pVrp,
IN OUT PEVENT  pUEvent,
IN PEVENT  pDisplayEvent,
IN DMA_FLAGS  DmaFlags 
)

◆ VideoPortLogError()

VPAPI VOID NTAPI VideoPortLogError ( IN PVOID  HwDeviceExtension,
IN PVIDEO_REQUEST_PACKET Vrp  OPTIONAL,
IN VP_STATUS  ErrorCode,
IN ULONG  UniqueId 
)

Definition at line 1020 of file videoprt.c.

1025{
1027
1028 INFO_(VIDEOPRT, "VideoPortLogError ErrorCode %d (0x%x) UniqueId %lu (0x%lx)\n",
1029 ErrorCode, ErrorCode, UniqueId, UniqueId);
1030 if (Vrp)
1031 INFO_(VIDEOPRT, "Vrp->IoControlCode %lu (0x%lx)\n", Vrp->IoControlCode, Vrp->IoControlCode);
1032}
_In_ NDIS_ERROR_CODE ErrorCode
Definition: ndis.h:4436

◆ VideoPortMapBankedMemory()

VPAPI VP_STATUS NTAPI 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 
)

◆ VideoPortMapDmaMemory()

VPAPI PDMA NTAPI 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 
)

Definition at line 284 of file dma.c.

292{
293 /* Deprecated */
294 return NULL;
295}

◆ VideoPortMapMemory()

VPAPI VP_STATUS NTAPI VideoPortMapMemory ( IN PVOID  HwDeviceExtension,
IN PHYSICAL_ADDRESS  PhysicalAddress,
IN OUT PULONG  Length,
IN PULONG  InIoSpace,
IN OUT PVOID VirtualAddress 
)

◆ VideoPortMoveMemory()

VPAPI VOID NTAPI VideoPortMoveMemory ( IN PVOID  Destination,
IN PVOID  Source,
IN ULONG  Length 
)

◆ VideoPortPutDmaAdapter()

VPAPI VOID NTAPI VideoPortPutDmaAdapter ( IN PVOID  HwDeviceExtension,
IN PVP_DMA_ADAPTER  VpDmaAdapter 
)

Definition at line 93 of file dma.c.

95{
96 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
97 PVIP_DMA_ADAPTER Adapter = (PVIP_DMA_ADAPTER)VpDmaAdapter;
98
99 /* get hw device extension */
100 DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
101
102 /* sanity check */
103 ASSERT(!IsListEmpty(&DeviceExtension->DmaAdapterList));
104
105 /* remove dma adapter from list */
106 RemoveEntryList(&Adapter->Entry);
107
108 /* release dma adapter */
109 Adapter->Adapter->DmaOperations->PutDmaAdapter(Adapter->Adapter);
110
111 /* free memory */
112 ExFreePool(Adapter);
113}
#define RemoveEntryList(Entry)
Definition: env_spec_w32.h:986

◆ VideoPortQueryPerformanceCounter()

VPAPI LONGLONG NTAPI VideoPortQueryPerformanceCounter ( IN PVOID  HwDeviceExtension,
OUT PLONGLONG PerformanceFrequency  OPTIONAL 
)

Definition at line 1717 of file videoprt.c.

1720{
1722
1723 TRACE_(VIDEOPRT, "VideoPortQueryPerformanceCounter\n");
1724 Result = KeQueryPerformanceCounter((PLARGE_INTEGER)PerformanceFrequency);
1725 return Result.QuadPart;
1726}
LARGE_INTEGER NTAPI KeQueryPerformanceCounter(IN PLARGE_INTEGER PerformanceFreq)
Definition: timer.c:138

◆ VideoPortQueryServices()

VPAPI VP_STATUS NTAPI VideoPortQueryServices ( _In_ PVOID  HwDeviceExtension,
_In_ VIDEO_PORT_SERVICES  ServicesType,
_Inout_ PINTERFACE  Interface 
)

Definition at line 45 of file services.c.

49{
50 TRACE_(VIDEOPRT, "VideoPortQueryServices - ServicesType: 0x%x\n", ServicesType);
51
52 switch (ServicesType)
53 {
57 {
58 PVIDEO_PORT_INT10_INTERFACE Int10Interface =
60
62 Interface->InterfaceDereference = IntInterfaceDereference;
64 Int10Interface->Int10FreeBuffer = IntInt10FreeBuffer;
65 Int10Interface->Int10ReadMemory = IntInt10ReadMemory;
66 Int10Interface->Int10WriteMemory = IntInt10WriteMemory;
67 Int10Interface->Int10CallBios = IntInt10CallBios;
68 return NO_ERROR;
69 }
70 break;
71
74 Interface->Size >= sizeof(VIDEO_PORT_AGP_INTERFACE_2)) ||
76 Interface->Size >= sizeof(VIDEO_PORT_AGP_INTERFACE)))
77 {
78 if (NT_SUCCESS(IntAgpGetInterface(HwDeviceExtension, Interface)))
79 {
80 return NO_ERROR;
81 }
82 }
83 break;
84
88
92
93 default:
94 break;
95 }
96
98}
NTSTATUS NTAPI IntAgpGetInterface(IN PVOID HwDeviceExtension, IN OUT PINTERFACE Interface)
Definition: agp.c:496
VP_STATUS NTAPI IntInt10WriteMemory(_In_ PVOID Context, _In_ USHORT Seg, _In_ USHORT Off, _In_reads_bytes_(Length) PVOID Buffer, _In_ ULONG Length)
Definition: int10.c:569
VP_STATUS NTAPI IntInt10AllocateBuffer(_In_ PVOID Context, _Out_ PUSHORT Seg, _Out_ PUSHORT Off, _Inout_ PULONG Length)
Definition: int10.c:370
VP_STATUS NTAPI IntInt10ReadMemory(_In_ PVOID Context, _In_ USHORT Seg, _In_ USHORT Off, _Out_writes_bytes_(Length) PVOID Buffer, _In_ ULONG Length)
Definition: int10.c:502
VP_STATUS NTAPI IntInt10FreeBuffer(_In_ PVOID Context, _In_ USHORT Seg, _In_ USHORT Off)
Definition: int10.c:439
struct _VIDEO_PORT_AGP_INTERFACE VIDEO_PORT_AGP_INTERFACE
#define VIDEO_PORT_AGP_INTERFACE_VERSION_1
Definition: video.h:123
struct _VIDEO_PORT_INT10_INTERFACE * PVIDEO_PORT_INT10_INTERFACE
#define VIDEO_PORT_INT10_INTERFACE_VERSION_1
Definition: video.h:127
#define VIDEO_PORT_AGP_INTERFACE_VERSION_2
Definition: video.h:124
OUT PINT10_FREE_BUFFER Int10FreeBuffer
Definition: video.h:787
OUT PINT10_READ_MEMORY Int10ReadMemory
Definition: video.h:788
OUT PINT10_CALL_BIOS Int10CallBios
Definition: video.h:790
OUT PINTERFACE_REFERENCE InterfaceReference
Definition: video.h:784
OUT PINT10_ALLOCATE_BUFFER Int10AllocateBuffer
Definition: video.h:786
OUT PINT10_WRITE_MEMORY Int10WriteMemory
Definition: video.h:789
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
Definition: wdffdo.h:465
VOID NTAPI IntInterfaceReference(_In_ PVOID Context)
Definition: services.c:29
VOID NTAPI IntInterfaceDereference(_In_ PVOID Context)
Definition: services.c:37

Referenced by InitializeModeTable(), VBEInitialize(), and VideoPortGetAgpServices().

◆ VideoPortQuerySystemTime()

VPAPI VOID NTAPI VideoPortQuerySystemTime ( OUT PLARGE_INTEGER  CurrentTime)

◆ VideoPortQueueDpc()

VPAPI BOOLEAN NTAPI VideoPortQueueDpc ( IN PVOID  HwDeviceExtension,
IN PMINIPORT_DPC_ROUTINE  CallbackRoutine,
IN PVOID  Context 
)

Definition at line 1570 of file videoprt.c.

1574{
1575 return KeInsertQueueDpc(
1576 &VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension)->DpcObject,
1578 (PVOID)Context);
1579}
BOOLEAN NTAPI KeInsertQueueDpc(IN PKDPC Dpc, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
Definition: dpc.c:725
_Must_inspect_result_ _In_ PFLT_GET_OPERATION_STATUS_CALLBACK CallbackRoutine
Definition: fltkernel.h:1035
@ DpcObject
Definition: ketypes.h:425

◆ VideoPortReadPortBufferUchar()

VPAPI VOID NTAPI VideoPortReadPortBufferUchar ( IN PUCHAR  Port,
OUT PUCHAR  Buffer,
IN ULONG  Count 
)

◆ VideoPortReadPortBufferUlong()

VPAPI VOID NTAPI VideoPortReadPortBufferUlong ( IN PULONG  Port,
OUT PULONG  Buffer,
IN ULONG  Count 
)

◆ VideoPortReadPortBufferUshort()

VPAPI VOID NTAPI VideoPortReadPortBufferUshort ( IN PUSHORT  Port,
OUT PUSHORT  Buffer,
IN ULONG  Count 
)

◆ VideoPortReadPortUchar()

◆ VideoPortReadPortUlong()

VPAPI ULONG NTAPI VideoPortReadPortUlong ( IN PULONG  Port)

Referenced by VmxReadUlong().

◆ VideoPortReadPortUshort()

VPAPI USHORT NTAPI VideoPortReadPortUshort ( IN PUSHORT  Port)

◆ VideoPortReadRegisterBufferUchar()

VPAPI VOID NTAPI VideoPortReadRegisterBufferUchar ( IN PUCHAR  Register,
OUT PUCHAR  Buffer,
IN ULONG  Count 
)

◆ VideoPortReadRegisterBufferUlong()

VPAPI VOID NTAPI VideoPortReadRegisterBufferUlong ( IN PULONG  Register,
OUT PULONG  Buffer,
IN ULONG  Count 
)

◆ VideoPortReadRegisterBufferUshort()

VPAPI VOID NTAPI VideoPortReadRegisterBufferUshort ( IN PUSHORT  Register,
OUT PUSHORT  Buffer,
IN ULONG  Count 
)

◆ VideoPortReadRegisterUchar()

VPAPI UCHAR NTAPI VideoPortReadRegisterUchar ( IN PUCHAR  Register)

◆ VideoPortReadRegisterUlong()

VPAPI ULONG NTAPI VideoPortReadRegisterUlong ( IN PULONG  Register)

◆ VideoPortReadRegisterUshort()

VPAPI USHORT NTAPI VideoPortReadRegisterUshort ( IN PUSHORT  Register)

◆ VideoPortReadStateEvent()

VPAPI LONG NTAPI VideoPortReadStateEvent ( IN PVOID  HwDeviceExtension,
IN PEVENT  pEvent 
)

◆ VideoPortRegisterBugcheckCallback()

VPAPI VP_STATUS NTAPI VideoPortRegisterBugcheckCallback ( IN PVOID  HwDeviceExtension,
IN ULONG  BugcheckCode,
IN PVIDEO_BUGCHECK_CALLBACK  Callback,
IN ULONG  BugcheckDataSize 
)

Definition at line 1702 of file videoprt.c.

1707{
1709 return NO_ERROR;
1710}

◆ VideoPortReleaseBuffer()

VPAPI VOID NTAPI VideoPortReleaseBuffer ( IN PVOID  HwDeviceExtension,
IN PVOID  Buffer 
)

Definition at line 1090 of file resource.c.

1093{
1094 TRACE_(VIDEOPRT, "VideoPortReleaseBuffer\n");
1095 ExFreePool(Ptr);
1096}

◆ VideoPortReleaseCommonBuffer()

VPAPI VOID NTAPI VideoPortReleaseCommonBuffer ( IN PVOID  HwDeviceExtension,
IN PVP_DMA_ADAPTER  VpDmaAdapter,
IN ULONG  Length,
IN PHYSICAL_ADDRESS  LogicalAddress,
IN PVOID  VirtualAddress,
IN BOOLEAN  CacheEnabled 
)

Definition at line 68 of file dma.c.

74{
75 PVIP_DMA_ADAPTER Adapter = (PVIP_DMA_ADAPTER)VpDmaAdapter;
76
77 /* check for valid arguments */
78 if (!Adapter || !Adapter->Adapter)
79 {
80 /* invalid parameter */
81 return;
82 }
83
84 /* release common buffer */
85 Adapter->Adapter->DmaOperations->FreeCommonBuffer(Adapter->Adapter, Length, LogicalAddress, VirtualAddress, CacheEnabled);
86}

Referenced by VideoPortFreeCommonBuffer().

◆ VideoPortReleaseDeviceLock()

VPAPI VOID NTAPI VideoPortReleaseDeviceLock ( IN PVOID  HwDeviceExtension)

Definition at line 1749 of file videoprt.c.

1751{
1752 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
1753
1754 TRACE_(VIDEOPRT, "VideoPortReleaseDeviceLock\n");
1755 DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
1756 KeReleaseMutex(&DeviceExtension->DeviceLock, FALSE);
1757 //ASSERT(Status == STATUS_SUCCESS);
1758}
LONG NTAPI KeReleaseMutex(IN PKMUTEX Mutex, IN BOOLEAN Wait)
Definition: mutex.c:189

◆ VideoPortReleaseSpinLock()

VPAPI VOID NTAPI VideoPortReleaseSpinLock ( IN PVOID  HwDeviceExtension,
IN PSPIN_LOCK  SpinLock,
IN UCHAR  NewIrql 
)

Definition at line 90 of file spinlock.c.

94{
95 TRACE_(VIDEOPRT, "VideoPortReleaseSpinLock\n");
97}
#define KeReleaseSpinLock(sl, irql)
Definition: env_spec_w32.h:627
_Requires_lock_held_ SpinLock _Releases_lock_ SpinLock _In_ _IRQL_restores_ KIRQL NewIrql
Definition: ke.h:114

◆ VideoPortReleaseSpinLockFromDpcLevel()

VPAPI VOID NTAPI VideoPortReleaseSpinLockFromDpcLevel ( IN PVOID  HwDeviceExtension,
IN PSPIN_LOCK  SpinLock 
)

Definition at line 104 of file spinlock.c.

107{
108 TRACE_(VIDEOPRT, "VideoPortReleaseSpinLockFromDpcLevel\n");
110}
#define KeReleaseSpinLockFromDpcLevel(SpinLock)
Definition: ke.h:135

◆ VideoPortScanRom()

VPAPI BOOLEAN NTAPI VideoPortScanRom ( PVOID  HwDeviceExtension,
PUCHAR  RomBase,
ULONG  RomLength,
PUCHAR  String 
)

◆ VideoPortSetBusData()

VPAPI ULONG NTAPI VideoPortSetBusData ( IN PVOID  HwDeviceExtension,
IN BUS_DATA_TYPE  BusDataType,
IN ULONG  SlotNumber,
IN PVOID  Buffer,
IN ULONG  Offset,
IN ULONG  Length 
)

Definition at line 1234 of file resource.c.

1241{
1242 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
1243
1244 TRACE_(VIDEOPRT, "VideoPortSetBusData\n");
1245
1246 DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
1247
1248 if (BusDataType != Cmos)
1249 {
1250 /* Legacy vs. PnP behaviour */
1251 if (DeviceExtension->PhysicalDeviceObject != NULL)
1252 SlotNumber = DeviceExtension->SystemIoSlotNumber;
1253 }
1254
1255 return HalSetBusDataByOffset(
1256 BusDataType,
1257 DeviceExtension->SystemIoBusNumber,
1258 SlotNumber,
1259 Buffer,
1260 Offset,
1261 Length);
1262}
ULONG NTAPI HalSetBusDataByOffset(IN BUS_DATA_TYPE BusDataType, IN ULONG BusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
Definition: bus.c:123
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
@ Cmos
Definition: miniport.h:89
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
Definition: wdfresource.h:68

◆ VideoPortSetBytesUsed()

VPAPI VOID NTAPI VideoPortSetBytesUsed ( IN PVOID  HwDeviceExtension,
IN OUT PDMA  pDma,
IN ULONG  BytesUsed 
)

Definition at line 68 of file stubs.c.

72{
74}

◆ VideoPortSetDmaContext()

VPAPI VOID NTAPI VideoPortSetDmaContext ( IN PVOID  HwDeviceExtension,
OUT PDMA  pDma,
IN PVOID  InstanceContext 
)

Definition at line 302 of file dma.c.

305{
306 /* Deprecated */
307 return;
308}

◆ VideoPortSetEvent()

VPAPI LONG NTAPI VideoPortSetEvent ( IN PVOID  HwDeviceExtension,
IN PEVENT  pEvent 
)

◆ VideoPortSetRegistryParameters()

VPAPI VP_STATUS NTAPI VideoPortSetRegistryParameters ( IN PVOID  HwDeviceExtension,
IN PWSTR  ValueName,
IN PVOID  ValueData,
IN ULONG  ValueLength 
)

Definition at line 1131 of file videoprt.c.

1136{
1137 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
1139
1140 DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
1141 TRACE_(VIDEOPRT, "VideoPortSetRegistryParameters ParameterName %S, RegPath: %wZ\n",
1142 ValueName,
1143 &DeviceExtension->RegistryPath);
1146 DeviceExtension->RegistryPath.Buffer,
1147 ValueName,
1148 REG_BINARY,
1149 ValueData,
1150 ValueLength);
1151 if (Status != NO_ERROR)
1152 WARN_(VIDEOPRT, "VideoPortSetRegistryParameters error 0x%x\n", Status);
1153
1154 return Status;
1155}
_In_ GUID _In_ PVOID ValueData
Definition: hubbusif.h:312
NTSYSAPI NTSTATUS WINAPI RtlWriteRegistryValue(ULONG, PCWSTR, PCWSTR, ULONG, PVOID, ULONG)
#define REG_BINARY
Definition: nt_native.h:1499
#define ASSERT_IRQL_LESS_OR_EQUAL(x)
Definition: debug.h:251
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
Definition: wdfregistry.h:243
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG ValueLength
Definition: wdfregistry.h:275

Referenced by BochsGetControllerInfo(), Pc98VidFindAdapter(), and VmxFindAdapter().

◆ VideoPortSetTrappedEmulatorPorts()

VPAPI VP_STATUS NTAPI VideoPortSetTrappedEmulatorPorts ( IN PVOID  HwDeviceExtension,
IN ULONG  NumAccessRanges,
IN PVIDEO_ACCESS_RANGE  AccessRange 
)

Definition at line 1184 of file resource.c.

1188{
1190 /* Should store the ranges in the device extension for use by ntvdm. */
1191 return NO_ERROR;
1192}

◆ VideoPortSignalDmaComplete()

VPAPI BOOLEAN NTAPI VideoPortSignalDmaComplete ( IN PVOID  HwDeviceExtension,
IN PDMA  pDmaHandle 
)

Definition at line 315 of file dma.c.

317{
318 /* Deprecated */
319 return FALSE;
320}

◆ VideoPortStallExecution()

VPAPI VOID NTAPI VideoPortStallExecution ( IN ULONG  Microseconds)

◆ VideoPortStartDma()

VPAPI VP_STATUS NTAPI 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 
)

Definition at line 355 of file dma.c.

363{
366 PDMA_START_CONTEXT StartContext;
367 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
368 PVIP_DMA_ADAPTER Adapter = (PVIP_DMA_ADAPTER)VpDmaAdapter;
369
370 StartContext = ExAllocatePool(NonPagedPool, sizeof(DMA_START_CONTEXT));
371 if (!StartContext)
372 {
374 }
375
376 StartContext->Context = Context;
377 StartContext->ExecuteDmaRoutine = ExecuteDmaRoutine;
378 StartContext->HwDeviceExtension = HwDeviceExtension;
379 StartContext->VpDmaAdapter = VpDmaAdapter;
380
382
383 Status = Adapter->Adapter->DmaOperations->GetScatterGatherList(Adapter->Adapter,
384 DeviceExtension->PhysicalDeviceObject,
385 Mdl,
389 StartContext,
391
393
394 if (!NT_SUCCESS(Status))
395 {
396 *pLength = 0;
397 ExFreePool(StartContext);
399 }
400 else
401 {
403 }
404
405 /* Return status */
406 return Status;
407}
PVOID HwDeviceExtension
Definition: dma.c:27
PVP_DMA_ADAPTER VpDmaAdapter
Definition: dma.c:31
PEXECUTE_DMA ExecuteDmaRoutine
Definition: dma.c:29
PVOID Context
Definition: dma.c:30
VOID NTAPI ScatterAdapterControl(IN PDEVICE_OBJECT *DeviceObject, IN PIRP *Irp, IN PSCATTER_GATHER_LIST ScatterGather, IN PVOID Context)
Definition: dma.c:336
DRIVER_LIST_CONTROL * PDRIVER_LIST_CONTROL
Definition: iotypes.h:2379
#define MmGetMdlByteCount(_Mdl)
#define MmGetSystemAddressForMdl(Mdl)

◆ VideoPortStartTimer()

VPAPI VOID NTAPI VideoPortStartTimer ( IN PVOID  HwDeviceExtension)

Definition at line 78 of file timer.c.

79{
80 TRACE_(VIDEOPRT, "VideoPortStartTimer\n");
82}
VOID NTAPI IoStartTimer(IN PDEVICE_OBJECT DeviceObject)
Definition: iotimer.c:133
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT * FunctionalDeviceObject
Definition: ndis.h:4641

◆ VideoPortStopTimer()

VPAPI VOID NTAPI VideoPortStopTimer ( IN PVOID  HwDeviceExtension)

Definition at line 89 of file timer.c.

90{
91 TRACE_(VIDEOPRT, "VideoPortStopTimer\n");
93}
VOID NTAPI IoStopTimer(PDEVICE_OBJECT DeviceObject)
Definition: iotimer.c:166

◆ VideoPortSynchronizeExecution()

VPAPI BOOLEAN NTAPI VideoPortSynchronizeExecution ( IN PVOID  HwDeviceExtension,
IN VIDEO_SYNCHRONIZE_PRIORITY  Priority,
IN PMINIPORT_SYNCHRONIZE_ROUTINE  SynchronizeRoutine,
IN PVOID  Context 
)

Referenced by ScatterAdapterControl().

◆ VideoPortUnlockBuffer()

VPAPI VOID NTAPI VideoPortUnlockBuffer ( IN PVOID  HwDeviceExtension,
IN PVOID  Mdl 
)

Definition at line 1168 of file resource.c.

1171{
1172 if (Mdl)
1173 {
1175 IoFreeMdl(Mdl);
1176 }
1177}
#define IoFreeMdl
Definition: fxmdl.h:89
VOID NTAPI MmUnlockPages(IN PMDL Mdl)
Definition: mdlsup.c:1435

◆ VideoPortUnlockPages()

VPAPI BOOLEAN NTAPI VideoPortUnlockPages ( IN PVOID  hwDeviceExtension,
IN OUT PDMA  pDma 
)

◆ VideoPortUnmapDmaMemory()

VPAPI BOOLEAN NTAPI VideoPortUnmapDmaMemory ( IN PVOID  HwDeviceExtension,
IN PVOID  VirtualAddress,
IN HANDLE  ProcessHandle,
IN PDMA  BoardMemoryHandle 
)

◆ VideoPortUnmapMemory()

VPAPI VP_STATUS NTAPI VideoPortUnmapMemory ( IN PVOID  HwDeviceExtension,
IN OUT PVOID  VirtualAddress,
IN HANDLE  ProcessHandle 
)

◆ VideoPortVerifyAccessRanges()

VPAPI VP_STATUS NTAPI VideoPortVerifyAccessRanges ( _In_ PVOID  HwDeviceExtension,
_In_opt_ ULONG  NumAccessRanges,
_In_reads_opt_(NumAccessRanges) PVIDEO_ACCESS_RANGE  AccessRanges 
)

Claims or releases a range of hardware resources and checks for conflicts.

Parameters
[in]HwDeviceExtensionThe miniport device extension.
[in]NumAccessRangesThe number of hardware resource ranges in the AccessRanges array. Specify zero to release the hardware resources held by the miniport.
[in]AccessRangesThe array of hardware resource ranges to claim ownership. Specify NULL to release the hardware resources held by the miniport.
Returns
  • NO_ERROR if the resources have been successfully claimed or released.
  • ERROR_INVALID_PARAMETER if an error or a conflict occurred.
  • ERROR_NOT_ENOUGH_MEMORY if there is not enough memory available.

Definition at line 930 of file resource.c.

934{
935 PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
936 BOOLEAN ConflictDetected;
937 ULONG ResourceListSize;
939 PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor;
940 ULONG i;
942
943 TRACE_(VIDEOPRT, "VideoPortVerifyAccessRanges\n");
944
945 /* Verify parameters */
946 if (NumAccessRanges && !AccessRanges)
948
949 DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
950
951 if (NumAccessRanges == 0)
952 {
953 /* Release the resources and do nothing more for now... */
954 IntVideoPortReleaseResources(DeviceExtension);
955 return NO_ERROR;
956 }
957
958 /* Create the resource list */
959 ResourceListSize = sizeof(CM_RESOURCE_LIST)
960 + (NumAccessRanges - 1) * sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR);
962 if (!ResourceList)
963 {
964 WARN_(VIDEOPRT, "ExAllocatePool() failed\n");
966 }
967
968 /* Fill resource list */
969 ResourceList->Count = 1;
970 ResourceList->List[0].InterfaceType = DeviceExtension->AdapterInterfaceType;
971 ResourceList->List[0].BusNumber = DeviceExtension->SystemIoBusNumber;
972 ResourceList->List[0].PartialResourceList.Version = 1;
973 ResourceList->List[0].PartialResourceList.Revision = 1;
974 ResourceList->List[0].PartialResourceList.Count = NumAccessRanges;
975 for (i = 0; i < NumAccessRanges; i++, AccessRanges++)
976 {
977 PartialDescriptor = &ResourceList->List[0].PartialResourceList.PartialDescriptors[i];
978 if (AccessRanges->RangeInIoSpace)
979 {
980 PartialDescriptor->Type = CmResourceTypePort;
981 PartialDescriptor->u.Port.Start = AccessRanges->RangeStart;
982 PartialDescriptor->u.Port.Length = AccessRanges->RangeLength;
983 }
984 else
985 {
986 PartialDescriptor->Type = CmResourceTypeMemory;
987 PartialDescriptor->u.Memory.Start = AccessRanges->RangeStart;
988 PartialDescriptor->u.Memory.Length = AccessRanges->RangeLength;
989 }
990 if (AccessRanges->RangeShareable)
991 PartialDescriptor->ShareDisposition = CmResourceShareShared;
992 else
994 PartialDescriptor->Flags = 0;
995 if (AccessRanges->RangePassive & VIDEO_RANGE_PASSIVE_DECODE)
996 PartialDescriptor->Flags |= CM_RESOURCE_PORT_PASSIVE_DECODE;
997 if (AccessRanges->RangePassive & VIDEO_RANGE_10_BIT_DECODE)
998 PartialDescriptor->Flags |= CM_RESOURCE_PORT_10_BIT_DECODE;
999 }
1000
1001 /* Try to acquire all resource ranges */
1003 DeviceExtension->DriverObject,
1004 NULL, 0, /* Driver List */
1005 DeviceExtension->PhysicalDeviceObject,
1006 ResourceList, ResourceListSize,
1007 &ConflictDetected);
1008
1010
1011 /* If VgaSave driver is conflicting and we don't explicitely want
1012 * to use it, ignore the problem (because win32k will try to use
1013 * this driver only if all other ones are failing). */
1015 IntIsVgaSaveDriver(DeviceExtension) &&
1016 !VpBaseVideo)
1017 {
1018 return NO_ERROR;
1019 }
1020
1021 if (!NT_SUCCESS(Status) || ConflictDetected)
1023 else
1024 return NO_ERROR;
1025}
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define ExFreePoolWithTag(_P, _T)
Definition: module.h:1109
#define STATUS_CONFLICTING_ADDRESSES
Definition: ntstatus.h:354
NTSTATUS NTAPI IoReportResourceForDetection(IN PDRIVER_OBJECT DriverObject, IN PCM_RESOURCE_LIST DriverList OPTIONAL, IN ULONG DriverListSize OPTIONAL, IN PDEVICE_OBJECT DeviceObject OPTIONAL, IN PCM_RESOURCE_LIST DeviceList OPTIONAL, IN ULONG DeviceListSize OPTIONAL, OUT PBOOLEAN ConflictDetected)
Definition: pnpreport.c:394
struct _CM_RESOURCE_LIST CM_RESOURCE_LIST
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR CM_PARTIAL_RESOURCE_DESCRIPTOR
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@430::@435 Memory
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@430::@432 Port
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@430 u
#define TAG_VIDEO_PORT
Definition: videoprt.h:38
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
Definition: wdfresource.h:309
static BOOLEAN IntIsVgaSaveDriver(IN PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension)
Definition: resource.c:32
BOOLEAN VpBaseVideo
Definition: videoprt.c:36
VOID IntVideoPortReleaseResources(_In_ PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension)
Definition: resource.c:204
@ CmResourceShareDeviceExclusive
Definition: cmtypes.h:241

Referenced by BochsFindAdapter(), Pc98VidFindAdapter(), VgaAcquireResources(), and VGAFindAdapter().

◆ VideoPortWaitForSingleObject()

VPAPI VP_STATUS NTAPI VideoPortWaitForSingleObject ( IN PVOID  HwDeviceExtension,
IN PVOID  Object,
IN PLARGE_INTEGER Timeout  OPTIONAL 
)

◆ VideoPortWritePortBufferUchar()

VPAPI VOID NTAPI VideoPortWritePortBufferUchar ( IN PUCHAR  Port,
IN PUCHAR  Buffer,
IN ULONG  Count 
)

◆ VideoPortWritePortBufferUlong()

VPAPI VOID NTAPI VideoPortWritePortBufferUlong ( IN PULONG  Port,
IN PULONG  Buffer,
IN ULONG  Count 
)

◆ VideoPortWritePortBufferUshort()

VPAPI VOID NTAPI VideoPortWritePortBufferUshort ( IN PUSHORT  Port,
IN PUSHORT  Buffer,
IN ULONG  Count 
)

Referenced by VgaInterpretCmdStream().

◆ VideoPortWritePortUchar()

◆ VideoPortWritePortUlong()

VPAPI VOID NTAPI VideoPortWritePortUlong ( IN PULONG  Port,
IN ULONG  Value 
)

Referenced by VmxReadUlong(), and VmxWriteUlong().

◆ VideoPortWritePortUshort()

VPAPI VOID NTAPI VideoPortWritePortUshort ( IN PUSHORT  Port,
IN USHORT  Value 
)

◆ VideoPortWriteRegisterBufferUchar()

VPAPI VOID NTAPI VideoPortWriteRegisterBufferUchar ( IN PUCHAR  Register,
IN PUCHAR  Buffer,
IN ULONG  Count 
)

◆ VideoPortWriteRegisterBufferUlong()

VPAPI VOID NTAPI VideoPortWriteRegisterBufferUlong ( IN PULONG  Register,
IN PULONG  Buffer,
IN ULONG  Count 
)

◆ VideoPortWriteRegisterBufferUshort()

VPAPI VOID NTAPI VideoPortWriteRegisterBufferUshort ( IN PUSHORT  Register,
IN PUSHORT  Buffer,
IN ULONG  Count 
)

◆ VideoPortWriteRegisterUchar()

VPAPI VOID NTAPI VideoPortWriteRegisterUchar ( IN PUCHAR  Register,
IN UCHAR  Value 
)

◆ VideoPortWriteRegisterUlong()

VPAPI VOID NTAPI VideoPortWriteRegisterUlong ( IN PULONG  Register,
IN ULONG  Value 
)

◆ VideoPortWriteRegisterUshort()

VPAPI VOID NTAPI VideoPortWriteRegisterUshort ( IN PUSHORT  Register,
IN USHORT  Value 
)

◆ VideoPortZeroDeviceMemory()

VPAPI VOID NTAPI VideoPortZeroDeviceMemory ( IN PVOID  Destination,
IN ULONG  Length 
)

Referenced by VgaZeroVideoMemory().

◆ VideoPortZeroMemory()