12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748 |
- /*
- * video.h
- *
- * Video port and miniport driver interface
- *
- * This file is part of the w32api package.
- *
- * Contributors:
- * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
- *
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
- #pragma once
- #define __VIDEO_H__
- #include "ntddvdeo.h"
- #include "videoagp.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- #ifndef _NTOSDEF_
- #ifdef PAGED_CODE
- #undef PAGED_CODE
- #endif
- #if defined(_MSC_VER)
- #define ALLOC_PRAGMA 1
- #endif
- #if defined(_VIDEOPORT_)
- #define VPAPI
- #else
- #define VPAPI DECLSPEC_IMPORT
- #endif
- #if DBG
- #define PAGED_CODE() \
- if (VideoPortGetCurrentIrql() > 1 /* APC_LEVEL */) { \
- VideoPortDebugPrint(Error, "Video: Pageable code called at IRQL %d\n", VideoPortGetCurrentIrql() ); \
- ASSERT(FALSE); \
- }
- #else
- #define PAGED_CODE()
- #endif /* DBG */
- ULONG
- NTAPI
- DriverEntry(
- PVOID Context1,
- PVOID Context2);
- #else
- #define VPAPI
- #endif /* _NTOSDEF_ */
- #if DBG
- #define VideoDebugPrint(x) VideoPortDebugPrint x
- #else
- #define VideoDebugPrint(x)
- #endif
- #define GET_VIDEO_PHYSICAL_ADDRESS(scatterList, \
- VirtualAddress, \
- InputBuffer, \
- pLength, \
- Address) \
- 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 GET_VIDEO_SCATTERGATHER(ppDma) (**(PVRB_SG **)ppDma)
- /* VIDEO_ACCESS_RANGE.RangePassive */
- #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
- /* Flags for VideoPortGetDeviceBase and VideoPortMapMemory */
- #define VIDEO_MEMORY_SPACE_MEMORY 0x00
- #define VIDEO_MEMORY_SPACE_IO 0x01
- #define VIDEO_MEMORY_SPACE_USER_MODE 0x02
- #define VIDEO_MEMORY_SPACE_DENSE 0x04
- #define VIDEO_MEMORY_SPACE_P6CACHE 0x08
- /* PVIDEO_HW_GET_CHILD_DESCRIPTOR return values */
- #define VIDEO_ENUM_MORE_DEVICES ERROR_CONTINUE
- #define VIDEO_ENUM_NO_MORE_DEVICES ERROR_NO_MORE_DEVICES
- #define VIDEO_ENUM_INVALID_DEVICE ERROR_INVALID_NAME
- #define DEVICE_VGA_ENABLED 1
- /* VideoPortCheckForDeviceExistence.Flags constants */
- #define CDE_USE_SUBSYSTEM_IDS 0x00000001
- #define CDE_USE_REVISION 0x00000002
- #define BUGCHECK_DATA_SIZE_RESERVED 48
- #define VIDEO_DEBUG_REPORT_MAX_SIZE 0x8000
- typedef LONG VP_STATUS, *PVP_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
- (NTAPI *PVIDEO_PORT_GET_PROC_ADDRESS)(
- IN PVOID HwDeviceExtension,
- IN PUCHAR FunctionName);
- typedef struct _VIDEO_PORT_CONFIG_INFO {
- ULONG Length;
- ULONG SystemIoBusNumber;
- INTERFACE_TYPE AdapterInterfaceType;
- ULONG BusInterruptLevel;
- ULONG BusInterruptVector;
- KINTERRUPT_MODE InterruptMode;
- ULONG NumEmulatorAccessEntries;
- PEMULATOR_ACCESS_ENTRY EmulatorAccessEntries;
- ULONG_PTR EmulatorAccessEntriesContext;
- PHYSICAL_ADDRESS VdmPhysicalVideoMemoryAddress;
- ULONG VdmPhysicalVideoMemoryLength;
- ULONG HardwareStateSize;
- ULONG DmaChannel;
- ULONG DmaPort;
- UCHAR DmaShareable;
- UCHAR InterruptShareable;
- BOOLEAN Master;
- DMA_WIDTH DmaWidth;
- DMA_SPEED DmaSpeed;
- BOOLEAN bMapBuffers;
- BOOLEAN NeedPhysicalAddresses;
- BOOLEAN DemandMode;
- ULONG MaximumTransferLength;
- ULONG NumberOfPhysicalBreaks;
- BOOLEAN ScatterGather;
- ULONG MaximumScatterGatherChunkSize;
- PVIDEO_PORT_GET_PROC_ADDRESS VideoPortGetProcAddress;
- PWSTR DriverRegistryPath;
- ULONGLONG SystemMemorySize;
- } VIDEO_PORT_CONFIG_INFO, *PVIDEO_PORT_CONFIG_INFO;
- typedef VP_STATUS
- (NTAPI *PVIDEO_HW_FIND_ADAPTER)(
- IN PVOID HwDeviceExtension,
- IN PVOID HwContext,
- IN PWSTR ArgumentString,
- IN OUT PVIDEO_PORT_CONFIG_INFO ConfigInfo,
- OUT PUCHAR Again);
- typedef BOOLEAN
- (NTAPI *PVIDEO_HW_INITIALIZE)(
- IN PVOID HwDeviceExtension);
- typedef BOOLEAN
- (NTAPI *PVIDEO_HW_INTERRUPT)(
- IN PVOID HwDeviceExtension);
- typedef struct _VIDEO_ACCESS_RANGE {
- PHYSICAL_ADDRESS RangeStart;
- ULONG RangeLength;
- UCHAR RangeInIoSpace;
- UCHAR RangeVisible;
- UCHAR RangeShareable;
- UCHAR RangePassive;
- } VIDEO_ACCESS_RANGE, *PVIDEO_ACCESS_RANGE;
- typedef VOID
- (NTAPI *PVIDEO_HW_LEGACYRESOURCES)(
- IN ULONG VendorId,
- IN ULONG DeviceId,
- IN OUT PVIDEO_ACCESS_RANGE *LegacyResourceList,
- IN OUT PULONG LegacyResourceCount);
- typedef enum _HW_DMA_RETURN {
- DmaAsyncReturn,
- DmaSyncReturn
- } HW_DMA_RETURN, *PHW_DMA_RETURN;
- typedef HW_DMA_RETURN
- (NTAPI *PVIDEO_HW_START_DMA)(
- PVOID HwDeviceExtension,
- PDMA pDma);
- typedef struct _VP_SCATTER_GATHER_ELEMENT {
- PHYSICAL_ADDRESS Address;
- ULONG Length;
- ULONG_PTR Reserved;
- } VP_SCATTER_GATHER_ELEMENT, *PVP_SCATTER_GATHER_ELEMENT;
- typedef struct _VP_SCATTER_GATHER_LIST {
- ULONG NumberOfElements;
- ULONG_PTR Reserved;
- VP_SCATTER_GATHER_ELEMENT Elements[0];
- } VP_SCATTER_GATHER_LIST, *PVP_SCATTER_GATHER_LIST;
- typedef VOID
- (NTAPI *PEXECUTE_DMA)(
- IN PVOID HwDeviceExtension,
- IN PVP_DMA_ADAPTER VpDmaAdapter,
- IN PVP_SCATTER_GATHER_LIST SGList,
- IN PVOID Context);
- /* PVIDEO_HW_GET_CHILD_DESCRIPTOR.ChildEnumInfo constants */
- typedef struct _VIDEO_CHILD_ENUM_INFO {
- ULONG Size;
- ULONG ChildDescriptorSize;
- ULONG ChildIndex;
- ULONG ACPIHwId;
- PVOID ChildHwDeviceExtension;
- } VIDEO_CHILD_ENUM_INFO, *PVIDEO_CHILD_ENUM_INFO;
- /* PVIDEO_HW_GET_CHILD_DESCRIPTOR.VideoChildType constants */
- typedef enum _VIDEO_CHILD_TYPE {
- Monitor = 1,
- NonPrimaryChip,
- VideoChip,
- Other
- } VIDEO_CHILD_TYPE, *PVIDEO_CHILD_TYPE;
- typedef VP_STATUS
- (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);
- typedef VP_STATUS
- (NTAPI *PVIDEO_HW_POWER_SET)(
- IN PVOID HwDeviceExtension,
- IN ULONG HwId,
- IN PVIDEO_POWER_MANAGEMENT VideoPowerControl);
- typedef VP_STATUS
- (NTAPI *PVIDEO_HW_POWER_GET)(
- IN PVOID HwDeviceExtension,
- IN ULONG HwId,
- IN OUT PVIDEO_POWER_MANAGEMENT VideoPowerControl);
- typedef struct _QUERY_INTERFACE {
- CONST GUID *InterfaceType;
- USHORT Size;
- USHORT Version;
- PINTERFACE Interface;
- PVOID InterfaceSpecificData;
- } QUERY_INTERFACE, *PQUERY_INTERFACE;
- typedef VP_STATUS
- (NTAPI *PVIDEO_HW_QUERY_INTERFACE)(
- IN PVOID HwDeviceExtension,
- IN OUT PQUERY_INTERFACE QueryInterface);
- typedef VP_STATUS
- (NTAPI *PVIDEO_HW_CHILD_CALLBACK)(
- PVOID HwDeviceExtension,
- PVOID ChildDeviceExtension);
- typedef BOOLEAN
- (NTAPI *PVIDEO_HW_RESET_HW)(
- IN PVOID HwDeviceExtension,
- IN ULONG Columns,
- IN ULONG Rows);
- typedef struct _STATUS_BLOCK {
- _ANONYMOUS_UNION union {
- VP_STATUS Status;
- PVOID Pointer;
- } DUMMYUNIONNAME;
- ULONG_PTR Information;
- } STATUS_BLOCK, *PSTATUS_BLOCK;
- typedef struct _VIDEO_REQUEST_PACKET {
- ULONG IoControlCode;
- PSTATUS_BLOCK StatusBlock;
- PVOID InputBuffer;
- ULONG InputBufferLength;
- PVOID OutputBuffer;
- ULONG OutputBufferLength;
- } VIDEO_REQUEST_PACKET, *PVIDEO_REQUEST_PACKET;
- typedef BOOLEAN
- (NTAPI *PVIDEO_HW_START_IO)(
- IN PVOID HwDeviceExtension,
- IN PVIDEO_REQUEST_PACKET RequestPacket);
- typedef VOID
- (NTAPI *PVIDEO_HW_TIMER)(
- IN PVOID HwDeviceExtension);
- typedef VOID
- (NTAPI *PVIDEO_WRITE_CLOCK_LINE)(
- PVOID HwDeviceExtension,
- UCHAR Data);
- typedef VOID
- (NTAPI *PVIDEO_WRITE_DATA_LINE)(
- PVOID HwDeviceExtension,
- UCHAR Data);
- typedef BOOLEAN
- (NTAPI *PVIDEO_READ_CLOCK_LINE)(
- PVOID HwDeviceExtension);
- typedef BOOLEAN
- (NTAPI *PVIDEO_READ_DATA_LINE)(
- PVOID HwDeviceExtension);
- typedef VOID
- (NTAPI *PVIDEO_WAIT_VSYNC_ACTIVE)(
- PVOID HwDeviceExtension);
- typedef struct _I2C_CALLBACKS {
- IN PVIDEO_WRITE_CLOCK_LINE WriteClockLine;
- IN PVIDEO_WRITE_DATA_LINE WriteDataLine;
- IN PVIDEO_READ_CLOCK_LINE ReadClockLine;
- IN PVIDEO_READ_DATA_LINE ReadDataLine;
- } I2C_CALLBACKS, *PI2C_CALLBACKS;
- typedef BOOLEAN
- (NTAPI *PI2C_START)(
- IN PVOID HwDeviceExtension,
- IN PI2C_CALLBACKS I2CCallbacks);
- typedef BOOLEAN
- (NTAPI *PI2C_STOP)(
- IN PVOID HwDeviceExtension,
- IN PI2C_CALLBACKS I2CCallbacks);
- typedef BOOLEAN
- (NTAPI *PI2C_WRITE)(
- IN PVOID HwDeviceExtension,
- IN PI2C_CALLBACKS I2CCallbacks,
- IN PUCHAR Buffer,
- IN ULONG Length);
- typedef BOOLEAN
- (NTAPI *PI2C_READ)(
- IN PVOID HwDeviceExtension,
- IN PI2C_CALLBACKS I2CCallbacks,
- OUT PUCHAR Buffer,
- IN ULONG Length);
- typedef struct _VIDEO_I2C_CONTROL {
- IN PVIDEO_WRITE_CLOCK_LINE WriteClockLine;
- IN PVIDEO_WRITE_DATA_LINE WriteDataLine;
- IN PVIDEO_READ_CLOCK_LINE ReadClockLine;
- IN PVIDEO_READ_DATA_LINE ReadDataLine;
- IN ULONG I2CDelay;
- } VIDEO_I2C_CONTROL, *PVIDEO_I2C_CONTROL;
- typedef BOOLEAN
- (NTAPI *PI2C_START_2)(
- IN PVOID HwDeviceExtension,
- IN PVIDEO_I2C_CONTROL I2CControl);
- typedef BOOLEAN
- (NTAPI *PI2C_STOP_2)(
- IN PVOID HwDeviceExtension,
- IN PVIDEO_I2C_CONTROL I2CControl);
- typedef BOOLEAN
- (NTAPI *PI2C_WRITE_2)(
- IN PVOID HwDeviceExtension,
- IN PVIDEO_I2C_CONTROL I2CControl,
- IN PUCHAR Buffer,
- IN ULONG Length);
- typedef BOOLEAN
- (NTAPI *PI2C_READ_2)(
- IN PVOID HwDeviceExtension,
- IN PVIDEO_I2C_CONTROL I2CControl,
- OUT PUCHAR Buffer,
- IN ULONG Length,
- IN BOOLEAN EndOfRead);
- typedef struct _INT10_BIOS_ARGUMENTS {
- ULONG Eax;
- ULONG Ebx;
- ULONG Ecx;
- ULONG Edx;
- ULONG Esi;
- ULONG Edi;
- ULONG Ebp;
- USHORT SegDs;
- USHORT SegEs;
- } INT10_BIOS_ARGUMENTS, *PINT10_BIOS_ARGUMENTS;
- typedef VP_STATUS
- (NTAPI *PINT10_CALL_BIOS)(
- IN PVOID Context,
- IN OUT PINT10_BIOS_ARGUMENTS BiosArguments);
- typedef VP_STATUS
- (NTAPI *PINT10_ALLOCATE_BUFFER)(
- IN PVOID Context,
- OUT PUSHORT Seg,
- OUT PUSHORT Off,
- IN OUT PULONG Length);
- typedef VP_STATUS
- (NTAPI *PINT10_FREE_BUFFER)(
- IN PVOID Context,
- IN USHORT Seg,
- IN USHORT Off);
- typedef VP_STATUS
- (NTAPI *PINT10_READ_MEMORY)(
- IN PVOID Context,
- IN USHORT Seg,
- IN USHORT Off,
- OUT PVOID Buffer,
- IN ULONG Length);
- typedef VP_STATUS
- (NTAPI *PINT10_WRITE_MEMORY)(
- IN PVOID Context,
- IN USHORT Seg,
- IN USHORT Off,
- IN PVOID Buffer,
- IN ULONG Length);
- typedef VP_STATUS
- (NTAPI *PROTECT_WC_MEMORY)(
- IN PVOID Context,
- IN PVOID HwDeviceExtension);
- typedef VP_STATUS
- (NTAPI *RESTORE_WC_MEMORY)(
- IN PVOID Context,
- IN PVOID HwDeviceExtension);
- typedef enum _VIDEO_DEVICE_DATA_TYPE {
- VpMachineData = 0,
- VpCmosData,
- VpBusData,
- VpControllerData,
- VpMonitorData
- } VIDEO_DEVICE_DATA_TYPE, *PVIDEO_DEVICE_DATA_TYPE;
- 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);
- 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);
- typedef VOID
- (NTAPI *PMINIPORT_DPC_ROUTINE)(
- IN PVOID HwDeviceExtension,
- IN PVOID Context);
- typedef BOOLEAN
- (NTAPI *PMINIPORT_SYNCHRONIZE_ROUTINE)(
- IN PVOID Context);
- typedef VOID
- (NTAPI *PVIDEO_BUGCHECK_CALLBACK)(
- IN PVOID HwDeviceExtension,
- IN ULONG BugcheckCode,
- IN PUCHAR Buffer,
- IN ULONG BufferSize);
- /* VideoPortSynchronizeExecution.Priority constants */
- typedef enum VIDEO_SYNCHRONIZE_PRIORITY {
- VpLowPriority = 0,
- VpMediumPriority,
- VpHighPriority
- } VIDEO_SYNCHRONIZE_PRIORITY, *PVIDEO_SYNCHRONIZE_PRIORITY;
- /* VideoPortAllocatePool.PoolType constants */
- typedef enum _VP_POOL_TYPE {
- VpNonPagedPool = 0,
- VpPagedPool,
- VpNonPagedPoolCacheAligned = 4,
- VpPagedPoolCacheAligned
- } VP_POOL_TYPE, *PVP_POOL_TYPE;
- typedef enum _DMA_FLAGS {
- VideoPortUnlockAfterDma = 1,
- VideoPortKeepPagesLocked,
- VideoPortDmaInitOnly
- } DMA_FLAGS;
- typedef struct _VIDEO_HARDWARE_CONFIGURATION_DATA {
- INTERFACE_TYPE InterfaceType;
- ULONG BusNumber;
- USHORT Version;
- USHORT Revision;
- USHORT Irql;
- USHORT Vector;
- ULONG ControlBase;
- ULONG ControlSize;
- ULONG CursorBase;
- ULONG CursorSize;
- ULONG FrameBase;
- ULONG FrameSize;
- } VIDEO_HARDWARE_CONFIGURATION_DATA, *PVIDEO_HARDWARE_CONFIGURATION_DATA;
- typedef struct _VIDEO_X86_BIOS_ARGUMENTS {
- ULONG Eax;
- ULONG Ebx;
- ULONG Ecx;
- ULONG Edx;
- ULONG Esi;
- ULONG Edi;
- ULONG Ebp;
- } VIDEO_X86_BIOS_ARGUMENTS, *PVIDEO_X86_BIOS_ARGUMENTS;
- typedef enum VIDEO_DEBUG_LEVEL {
- Error = 0,
- Warn,
- Trace,
- Info
- } VIDEO_DEBUG_LEVEL, *PVIDEO_DEBUG_LEVEL;
- #ifndef _NTOS_
- typedef VP_STATUS
- (NTAPI *PDRIVER_IO_PORT_UCHAR)(
- IN ULONG_PTR Context,
- IN ULONG Port,
- IN UCHAR AccessMode,
- IN PUCHAR Data);
- 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);
- typedef VP_STATUS
- (NTAPI *PDRIVER_IO_PORT_ULONG)(
- IN ULONG_PTR Context,
- IN ULONG Port,
- IN UCHAR AccessMode,
- IN PULONG Data);
- 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);
- typedef VP_STATUS
- (NTAPI *PDRIVER_IO_PORT_USHORT)(
- IN ULONG_PTR Context,
- IN ULONG Port,
- IN UCHAR AccessMode,
- IN PUSHORT Data);
- 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);
- #endif /* _NTOS_ */
- typedef struct __VRB_SG {
- __int64 PhysicalAddress;
- ULONG Length;
- } VRB_SG, *PVRB_SG;
- typedef enum _VP_LOCK_OPERATION {
- VpReadAccess = 0,
- VpWriteAccess,
- VpModifyAccess
- } VP_LOCK_OPERATION;
- typedef struct _VP_DEVICE_DESCRIPTION {
- BOOLEAN ScatterGather;
- BOOLEAN Dma32BitAddresses;
- BOOLEAN Dma64BitAddresses;
- ULONG MaximumLength;
- } VP_DEVICE_DESCRIPTION, *PVP_DEVICE_DESCRIPTION;
- typedef struct _VIDEO_CHILD_STATE {
- ULONG Id;
- ULONG State;
- } VIDEO_CHILD_STATE, *PVIDEO_CHILD_STATE;
- typedef struct _VIDEO_CHILD_STATE_CONFIGURATION {
- ULONG Count;
- VIDEO_CHILD_STATE ChildStateArray[ANYSIZE_ARRAY];
- } VIDEO_CHILD_STATE_CONFIGURATION, *PVIDEO_CHILD_STATE_CONFIGURATION;
- typedef struct _VIDEO_HW_INITIALIZATION_DATA {
- ULONG HwInitDataSize;
- INTERFACE_TYPE AdapterInterfaceType;
- PVIDEO_HW_FIND_ADAPTER HwFindAdapter;
- PVIDEO_HW_INITIALIZE HwInitialize;
- PVIDEO_HW_INTERRUPT HwInterrupt;
- PVIDEO_HW_START_IO HwStartIO;
- ULONG HwDeviceExtensionSize;
- ULONG StartingDeviceNumber;
- PVIDEO_HW_RESET_HW HwResetHw;
- PVIDEO_HW_TIMER HwTimer;
- PVIDEO_HW_START_DMA HwStartDma;
- PVIDEO_HW_POWER_SET HwSetPowerState;
- PVIDEO_HW_POWER_GET HwGetPowerState;
- PVIDEO_HW_GET_CHILD_DESCRIPTOR HwGetVideoChildDescriptor;
- PVIDEO_HW_QUERY_INTERFACE HwQueryInterface;
- ULONG HwChildDeviceExtensionSize;
- PVIDEO_ACCESS_RANGE HwLegacyResourceList;
- ULONG HwLegacyResourceCount;
- PVIDEO_HW_LEGACYRESOURCES HwGetLegacyResources;
- BOOLEAN AllowEarlyEnumeration;
- ULONG Reserved;
- } VIDEO_HW_INITIALIZATION_DATA, *PVIDEO_HW_INITIALIZATION_DATA;
- typedef struct _I2C_FNC_TABLE {
- IN ULONG Size;
- IN PVIDEO_WRITE_CLOCK_LINE WriteClockLine;
- IN PVIDEO_WRITE_DATA_LINE WriteDataLine;
- IN PVIDEO_READ_CLOCK_LINE ReadClockLine;
- IN PVIDEO_READ_DATA_LINE ReadDataLine;
- IN PVIDEO_WAIT_VSYNC_ACTIVE WaitVsync;
- PVOID Reserved;
- } I2C_FNC_TABLE, *PI2C_FNC_TABLE;
- typedef struct _DDC_CONTROL {
- IN ULONG Size;
- IN I2C_CALLBACKS I2CCallbacks;
- IN UCHAR EdidSegment;
- } DDC_CONTROL, *PDDC_CONTROL;
- /* VideoPortQueryServices.ServicesType constants */
- typedef enum _VIDEO_PORT_SERVICES {
- VideoPortServicesAGP = 1,
- VideoPortServicesI2C,
- VideoPortServicesHeadless,
- VideoPortServicesInt10,
- VideoPortServicesDebugReport,
- VideoPortServicesWCMemoryProtection
- } VIDEO_PORT_SERVICES;
- typedef struct _VIDEO_PORT_AGP_INTERFACE {
- SHORT Size;
- SHORT Version;
- PVOID Context;
- PINTERFACE_REFERENCE InterfaceReference;
- PINTERFACE_DEREFERENCE InterfaceDereference;
- PAGP_RESERVE_PHYSICAL AgpReservePhysical;
- PAGP_RELEASE_PHYSICAL AgpReleasePhysical;
- PAGP_COMMIT_PHYSICAL AgpCommitPhysical;
- PAGP_FREE_PHYSICAL AgpFreePhysical;
- PAGP_RESERVE_VIRTUAL AgpReserveVirtual;
- PAGP_RELEASE_VIRTUAL AgpReleaseVirtual;
- PAGP_COMMIT_VIRTUAL AgpCommitVirtual;
- PAGP_FREE_VIRTUAL AgpFreeVirtual;
- ULONGLONG AgpAllocationLimit;
- } VIDEO_PORT_AGP_INTERFACE, *PVIDEO_PORT_AGP_INTERFACE;
- typedef struct _VIDEO_PORT_AGP_INTERFACE_2 {
- IN USHORT Size;
- IN USHORT Version;
- OUT PVOID Context;
- OUT PINTERFACE_REFERENCE InterfaceReference;
- OUT PINTERFACE_DEREFERENCE InterfaceDereference;
- OUT PAGP_RESERVE_PHYSICAL AgpReservePhysical;
- OUT PAGP_RELEASE_PHYSICAL AgpReleasePhysical;
- OUT PAGP_COMMIT_PHYSICAL AgpCommitPhysical;
- OUT PAGP_FREE_PHYSICAL AgpFreePhysical;
- OUT PAGP_RESERVE_VIRTUAL AgpReserveVirtual;
- OUT PAGP_RELEASE_VIRTUAL AgpReleaseVirtual;
- OUT PAGP_COMMIT_VIRTUAL AgpCommitVirtual;
- OUT PAGP_FREE_VIRTUAL AgpFreeVirtual;
- OUT ULONGLONG AgpAllocationLimit;
- OUT PAGP_SET_RATE AgpSetRate;
- } VIDEO_PORT_AGP_INTERFACE_2, *PVIDEO_PORT_AGP_INTERFACE_2;
- typedef struct _VIDEO_PORT_I2C_INTERFACE {
- USHORT Size;
- USHORT Version;
- PVOID Context;
- PINTERFACE_REFERENCE InterfaceReference;
- PINTERFACE_DEREFERENCE InterfaceDereference;
- PI2C_START I2CStart;
- PI2C_STOP I2CStop;
- PI2C_WRITE I2CWrite;
- PI2C_READ I2CRead;
- } VIDEO_PORT_I2C_INTERFACE, *PVIDEO_PORT_I2C_INTERFACE;
- typedef struct _VIDEO_PORT_I2C_INTERFACE_2 {
- IN USHORT Size;
- IN USHORT Version;
- OUT PVOID Context;
- OUT PINTERFACE_REFERENCE InterfaceReference;
- OUT PINTERFACE_DEREFERENCE InterfaceDereference;
- OUT PI2C_START_2 I2CStart;
- OUT PI2C_STOP_2 I2CStop;
- OUT PI2C_WRITE_2 I2CWrite;
- OUT PI2C_READ_2 I2CRead;
- } VIDEO_PORT_I2C_INTERFACE_2, *PVIDEO_PORT_I2C_INTERFACE_2;
- typedef struct _VIDEO_PORT_INT10_INTERFACE {
- IN USHORT Size;
- IN USHORT Version;
- OUT PVOID Context;
- OUT PINTERFACE_REFERENCE InterfaceReference;
- OUT PINTERFACE_DEREFERENCE InterfaceDereference;
- OUT PINT10_ALLOCATE_BUFFER Int10AllocateBuffer;
- OUT PINT10_FREE_BUFFER Int10FreeBuffer;
- OUT PINT10_READ_MEMORY Int10ReadMemory;
- OUT PINT10_WRITE_MEMORY Int10WriteMemory;
- OUT PINT10_CALL_BIOS Int10CallBios;
- } VIDEO_PORT_INT10_INTERFACE, *PVIDEO_PORT_INT10_INTERFACE;
- typedef struct _VIDEO_PORT_WCMEMORYPROTECTION_INTERFACE {
- IN USHORT Size;
- IN USHORT Version;
- OUT PVOID Context;
- OUT PINTERFACE_REFERENCE InterfaceReference;
- OUT PINTERFACE_DEREFERENCE InterfaceDereference;
- OUT PROTECT_WC_MEMORY VideoPortProtectWCMemory;
- OUT RESTORE_WC_MEMORY VideoPortRestoreWCMemory;
- } VIDEO_PORT_WCMEMORYPROTECTION_INTERFACE, *PVIDEO_PORT_WCMEMORYPROTECTION_INTERFACE;
- typedef struct _VPOSVERSIONINFO {
- IN ULONG Size;
- OUT ULONG MajorVersion;
- OUT ULONG MinorVersion;
- OUT ULONG BuildNumber;
- OUT USHORT ServicePackMajor;
- OUT USHORT ServicePackMinor;
- } VPOSVERSIONINFO, *PVPOSVERSIONINFO;
- typedef struct _VIDEO_PORT_DEBUG_REPORT_INTERFACE {
- IN USHORT Size;
- IN USHORT Version;
- OUT PVOID Context;
- OUT PINTERFACE_REFERENCE InterfaceReference;
- OUT PINTERFACE_DEREFERENCE InterfaceDereference;
- OUT PVIDEO_DEBUG_REPORT (*DbgReportCreate)(
- IN PVOID HwDeviceExtension,
- IN ULONG ulCode,
- IN ULONG_PTR ulpArg1,
- IN ULONG_PTR ulpArg2,
- IN ULONG_PTR ulpArg3,
- IN ULONG_PTR ulpArg4
- );
- OUT BOOLEAN (*DbgReportSecondaryData)(
- IN OUT PVIDEO_DEBUG_REPORT pReport,
- IN PVOID pvData,
- IN ULONG ulDataSize
- );
- OUT VOID (*DbgReportComplete)(
- IN OUT PVIDEO_DEBUG_REPORT pReport
- );
- } VIDEO_PORT_DEBUG_REPORT_INTERFACE, *PVIDEO_PORT_DEBUG_REPORT_INTERFACE;
- /* Video port functions for miniports */
- 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 ULONG NumRequestedResources,
- IN PIO_RESOURCE_DESCRIPTOR RequestedResources OPTIONAL,
- IN ULONG NumAccessRanges,
- OUT PVIDEO_ACCESS_RANGE AccessRanges,
- IN PVOID VendorId,
- IN PVOID DeviceId,
- OUT PULONG Slot);
- VPAPI
- PVOID
- 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,
- IN OUT 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 ULONG NumAccessRanges,
- IN PVIDEO_ACCESS_RANGE AccessRanges);
- 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);
- #ifdef __cplusplus
- }
- #endif
|