reactos/include/ddk
diff -N ntddvid.h
--- ntddvid.h 20 Oct 2003 12:48:19 -0000 1.14
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,551 +0,0 @@
-/*
- * NTDDVID.H - Video Port and MiniPort driver interface
- */
-
-#include <ddk/miniport.h>
-
-/*
- * the rough idea:
- * init:
- * miniport driver defines entrypoint thusly:
- * ULONG DriverEntry(PVOID Context1, PVOID Context2);
- * miniport allocates and initializes a VIDEO_HW_INIT_DATA struct
- * miniport calls VideoPortInitialize
- * video port driver handles init of DriverObject (Context1)
- * video port driver calls back into HwVidFindAdapter entry point
- * video port driver finishes up and returns the status code that
- * the miniport driver should return.
- * io requests:
- * video port driver reformats IRP into VRP
- * video port driver calls back into HwVidStartIO entry point
- * minimum IoControlCodes that must be handles by the miniport:
- * IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES
- * IOCTL_VIDEO_QUERY_AVAIL_MODES
- * IOCTL_VIDEO_SET_CURRENT_MODE
- * IOCTL_VIDEO_MAP_MEMORY
- * IOCTL_VIDEO_RESET_DEVICE
- * interrupts are handled the same as KM drivers.
- */
-
-#ifndef __NTDDVID_H
-#define __NTDDVID_H
-
-#if __GNUC__ >=3
-#pragma GCC system_header
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#pragma pack(push,4)
-
-#include "ntddk.h"
-
-
-typedef LONG VP_STATUS, *PVP_STATUS;
-
-#define IOCTL_VIDEO_DISABLE_CURSOR \
- CTL_CODE(FILE_DEVICE_VIDEO, 24, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_DISABLE_POINTER \
- CTL_CODE(FILE_DEVICE_VIDEO, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_ENABLE_CURSOR \
- CTL_CODE(FILE_DEVICE_VIDEO, 25, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_ENABLE_POINTER \
- CTL_CODE(FILE_DEVICE_VIDEO, 16, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_FREE_PUBLIC_ACCESS_RANGES \
- CTL_CODE(FILE_DEVICE_VIDEO, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_GET_BANK_SELECT_CODE \
- CTL_CODE(FILE_DEVICE_VIDEO, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_GET_POWER_MANAGEMENT \
- CTL_CODE(FILE_DEVICE_VIDEO, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_LOAD_AND_SET_FONT \
- CTL_CODE(FILE_DEVICE_VIDEO, 32, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_MAP_VIDEO_MEMORY \
- CTL_CODE(FILE_DEVICE_VIDEO, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_QUERY_AVAIL_MODES \
- CTL_CODE(FILE_DEVICE_VIDEO, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_QUERY_COLOR_CAPABILITIES \
- CTL_CODE(FILE_DEVICE_VIDEO, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_QUERY_CURRENT_MODE \
- CTL_CODE(FILE_DEVICE_VIDEO, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_QUERY_CURSOR_ATTR \
- CTL_CODE(FILE_DEVICE_VIDEO, 26, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_QUERY_CURSOR_POSITION \
- CTL_CODE(FILE_DEVICE_VIDEO, 28, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES \
- CTL_CODE(FILE_DEVICE_VIDEO, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_QUERY_POINTER_ATTR \
- CTL_CODE(FILE_DEVICE_VIDEO, 18, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_QUERY_POINTER_CAPABILITIES \
- CTL_CODE(FILE_DEVICE_VIDEO, 17, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_QUERY_POINTER_POSITION \
- CTL_CODE(FILE_DEVICE_VIDEO, 20, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_QUERY_PUBLIC_ACCESS_RANGES \
- CTL_CODE(FILE_DEVICE_VIDEO, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_RESET_DEVICE \
- CTL_CODE(FILE_DEVICE_VIDEO, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_RESTORE_HARDWARE_STATE \
- CTL_CODE(FILE_DEVICE_VIDEO, 23, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_SAVE_HARDWARE_STATE \
- CTL_CODE(FILE_DEVICE_VIDEO, 22, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-
-#define IOCTL_VIDEO_SET_COLOR_REGISTERS \
- CTL_CODE(FILE_DEVICE_VIDEO, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_SET_CURRENT_MODE \
- CTL_CODE(FILE_DEVICE_VIDEO, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_SET_CURSOR_ATTR \
- CTL_CODE(FILE_DEVICE_VIDEO, 27, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_SET_CURSOR_POSITION \
- CTL_CODE(FILE_DEVICE_VIDEO, 29, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_SET_PALETTE_REGISTERS \
- CTL_CODE(FILE_DEVICE_VIDEO, 31, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_SET_POINTER_ATTR \
- CTL_CODE(FILE_DEVICE_VIDEO, 19, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_SET_POINTER_POSITION \
- CTL_CODE(FILE_DEVICE_VIDEO, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_SET_POWER_MANAGEMENT \
- CTL_CODE(FILE_DEVICE_VIDEO, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_SHARE_VIDEO_MEMORY \
- CTL_CODE(FILE_DEVICE_VIDEO, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_UNMAP_VIDEO_MEMORY \
- CTL_CODE(FILE_DEVICE_VIDEO, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY \
- CTL_CODE(FILE_DEVICE_VIDEO, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-
-
-// Bit definitions for Attribute Flags
-
-typedef struct _VIDEO_MEMORY {
- PVOID RequestedVirtualAddress;
-} VIDEO_MEMORY, *PVIDEO_MEMORY;
-
-typedef struct _VIDEO_MEMORY_INFORMATION {
- PVOID VideoRamBase;
- ULONG VideoRamLength;
- PVOID FrameBufferBase;
- ULONG FrameBufferLength;
-} VIDEO_MEMORY_INFORMATION, *PVIDEO_MEMORY_INFORMATION;
-
-typedef struct _VIDEO_MODE {
- ULONG RequestedMode;
-} VIDEO_MODE, *PVIDEO_MODE;
-
-/* VIDEO_MODE_INFORMATION.AttributeFlags */
-#define VIDEO_MODE_COLOR 0x0001
-#define VIDEO_MODE_GRAPHICS 0x0002
-#define VIDEO_MODE_PALETTE_DRIVEN 0x0004
-
-#define VIDEO_MEMORY_SPACE_MEMORY 0x00
-#define VIDEO_MEMORY_SPACE_IO 0x01
-#define VIDEO_MEMORY_SPACE_USER_MODE 0x02
-#define VIDEO_MEMORY_SPACE_DENSE 0x04
-#define VIDEO_MEMORY_SPACE_P6CACHE 0x08
-
-typedef struct _VIDEO_MODE_INFORMATION {
- ULONG Length;
- ULONG ModeIndex;
- ULONG VisScreenWidth;
- ULONG VisScreenHeight;
- ULONG ScreenStride;
- ULONG NumberOfPlanes;
- ULONG BitsPerPlane;
- ULONG Frequency;
- ULONG XMillimeter;
- ULONG YMillimeter;
- ULONG NumberRedBits;
- ULONG NumberGreenBits;
- ULONG NumberBlueBits;
- ULONG RedMask;
- ULONG GreenMask;
- ULONG BlueMask;
- ULONG AttributeFlags;
- ULONG VideoMemoryBitmapWidth;
- ULONG VideoMemoryBitmapHeight;
- ULONG DriverSpecificAttributeFlags;
-} VIDEO_MODE_INFORMATION, *PVIDEO_MODE_INFORMATION;
-
-typedef struct _VIDEO_NUM_MODES {
- ULONG NumModes;
- ULONG ModeInformationLength;
-} VIDEO_NUM_MODES, *PVIDEO_NUM_MODES;
-
-
-
-typedef struct _VIDEO_SHARE_MEMORY {
- HANDLE ProcessHandle;
- ULONG ViewOffset;
- ULONG ViewSize;
- PVOID RequestedVirtualAddress;
-} VIDEO_SHARE_MEMORY, *PVIDEO_SHARE_MEMORY;
-
-/* VIDEO_BANK_SELECT.BankingType and PlanarHCBankingType constants */
-typedef enum _VIDEO_BANK_TYPE {
- VideoNotBanked = 0,
- VideoBanked1RW,
- VideoBanked1R1W,
- VideoBanked2RW,
- NumVideoBankTypes
-} VIDEO_BANK_TYPE, *PVIDEO_BANK_TYPE;
-
-typedef struct _VIDEO_BANK_SELECT {
- ULONG Length;
- ULONG Size;
- ULONG BankingFlags;
- ULONG BankingType;
- ULONG PlanarHCBankingType;
- ULONG BitmapWidthInBytes;
- ULONG BitmapSize;
- ULONG Granularity;
- ULONG PlanarHCGranularity;
- ULONG CodeOffset;
- ULONG PlanarHCBankCodeOffset;
- ULONG PlanarHCEnableCodeOffset;
- ULONG PlanarHCDisableCodeOffset;
-} VIDEO_BANK_SELECT, *PVIDEO_BANK_SELECT;
-
-
-typedef struct _VIDEO_POINTER_ATTRIBUTES {
- ULONG Flags;
- ULONG Width;
- ULONG Height;
- ULONG WidthInBytes;
- ULONG Enable;
- SHORT Column;
- SHORT Row;
- UCHAR Pixels[1];
-} VIDEO_POINTER_ATTRIBUTES, *PVIDEO_POINTER_ATTRIBUTES;
-
-typedef struct _VIDEO_POINTER_CAPABILITIES {
- ULONG Flags;
- ULONG MaxWidth;
- ULONG MaxHeight;
- ULONG HWPtrBitmapStart;
- ULONG HWPtrBitmapEnd;
-} VIDEO_POINTER_CAPABILITIES, *PVIDEO_POINTER_CAPABILITIES;
-typedef struct _VIDEO_CLUTDATA {
- UCHAR Red;
- UCHAR Green;
- UCHAR Blue;
- UCHAR Unused;
-} VIDEO_CLUTDATA, *PVIDEO_CLUTDATA;
-
-
-typedef enum _VIDEO_DEVICE_DATA_TYPE
-{
- VpMachineData,
- VpCmosData,
- VpBusData,
- VpControllerData,
- VpMonitorData
-} VIDEO_DEVICE_DATA_TYPE, *PVIDEO_DEVICE_DATA_TYPE;
-
-typedef enum _VIDEO_SYNCHRONIZE_PRIORITY
-{
- VpLowPriority,
- VpMediumPriority,
- VpHighPriority
-} VIDEO_SYNCHRONIZE_PRIORITY, *PVIDEO_SYNCHRONIZE_PRIORITY;
-
-typedef struct _STATUS_BLOCK
-{
- VP_STATUS Status;
- ULONG 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 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 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;
-} VIDEO_PORT_CONFIG_INFO, *PVIDEO_PORT_CONFIG_INFO;
-
-typedef VP_STATUS STDCALL
-(*PVIDEO_HW_FIND_ADAPTER)(PVOID HwDeviceExtension,
- PVOID HwContext,
- PWSTR ArgumentString,
- PVIDEO_PORT_CONFIG_INFO ConfigInfo,
- PUCHAR Again);
-
-typedef BOOLEAN STDCALL
-(*PVIDEO_HW_INITIALIZE)(PVOID HwDeviceExtension);
-
-typedef BOOLEAN STDCALL
-(*PVIDEO_HW_INTERRUPT)(PVOID HwDeviceExtension);
-
-typedef BOOLEAN STDCALL
-(*PVIDEO_HW_START_IO)(PVOID HwDeviceExtension,
- PVIDEO_REQUEST_PACKET RequestPacket);
-
-typedef BOOLEAN STDCALL
-(*PVIDEO_HW_RESET_HW)(PVOID HwDeviceExtension,
- ULONG Columns,
- ULONG Rows);
-
-typedef VOID STDCALL
-(*PVIDEO_HW_TIMER)(PVOID HwDeviceExtension);
-
-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;
-} VIDEO_HW_INITIALIZATION_DATA, *PVIDEO_HW_INITIALIZATION_DATA;
-
-typedef VP_STATUS STDCALL
-(*PMINIPORT_GET_REGISTRY_ROUTINE)(PVOID HwDeviceExtension,
- PVOID Context,
- PWSTR ValueName,
- PVOID ValueData,
- ULONG ValueLength);
-
-typedef VP_STATUS STDCALL
-(*PMINIPORT_QUERY_DEVICE_ROUTINE)(PVOID HwDeviceExtension,
- PVOID Context,
- VIDEO_DEVICE_DATA_TYPE DeviceDataType,
- PVOID Identifier,
- ULONG IdentiferLength,
- PVOID ConfigurationData,
- ULONG ConfigurationDataLength,
- PVOID ComponentInformation,
- ULONG ComponentInformationLength);
-
-typedef BOOLEAN STDCALL
-(*PMINIPORT_SYNCHRONIZE_ROUTINE)(PVOID Context);
-
-#ifndef VIDEO_ACCESS_RANGE_DEFINED /* also in video.h */
-#define VIDEO_ACCESS_RANGE_DEFINED
-typedef struct _VIDEO_ACCESS_RANGE {
- PHYSICAL_ADDRESS RangeStart;
- ULONG RangeLength;
- UCHAR RangeInIoSpace;
- UCHAR RangeVisible;
- UCHAR RangeShareable;
-} VIDEO_ACCESS_RANGE, *PVIDEO_ACCESS_RANGE;
-#endif
-
-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;
-
-#ifndef BANKED_SECTION_ROUTINE_DEFINED /* also in video.h */
-#define BANKED_SECTION_ROUTINE_DEFINED
-typedef VOID STDCALL
-(*PBANKED_SECTION_ROUTINE)(IN ULONG ReadBank,
- IN ULONG WriteBank,
- IN PVOID Context);
-#endif
-
-typedef struct {
- USHORT NumEntries;
- USHORT FirstEntry;
- union {
- VIDEO_CLUTDATA RgbArray;
- ULONG RgbLong;
- } LookupTable[1];
-} VIDEO_CLUT, *PVIDEO_CLUT;
-
-ULONG STDCALL VideoPortCompareMemory(IN PVOID Source1, IN PVOID Source2, IN ULONG Length);
-VOID VideoPortDebugPrint(IN ULONG DebugPrintLevel, IN PCHAR DebugMessage, ...);
-VP_STATUS STDCALL VideoPortDisableInterrupt(IN PVOID HwDeviceExtension);
-VP_STATUS STDCALL VideoPortEnableInterrupt(IN PVOID HwDeviceExtension);
-VOID STDCALL VideoPortFreeDeviceBase(IN PVOID HwDeviceExtension, IN PVOID MappedAddress);
-ULONG STDCALL VideoPortGetBusData(IN PVOID HwDeviceExtension,
- IN BUS_DATA_TYPE BusDataType,
- IN ULONG SlotNumber,
- OUT PVOID Buffer,
- IN ULONG Offset,
- IN ULONG Length);
-UCHAR STDCALL VideoPortGetCurrentIrql(VOID);
-PVOID STDCALL VideoPortGetDeviceBase(IN PVOID HwDeviceExtension,
- IN PHYSICAL_ADDRESS IoAddress,
- IN ULONG NumberOfUchars,
- IN UCHAR InIoSpace);
-VP_STATUS STDCALL VideoPortGetDeviceData(IN PVOID HwDeviceExtension,
- IN VIDEO_DEVICE_DATA_TYPE DeviceDataType,
- IN PMINIPORT_QUERY_DEVICE_ROUTINE CallbackRoutine,
- IN PVOID Context);
-VP_STATUS STDCALL VideoPortGetAccessRanges(IN PVOID HwDeviceExtension,
- IN ULONG NumRequestedResources,
- IN PIO_RESOURCE_DESCRIPTOR RequestedResources OPTIONAL,
- IN ULONG NumAccessRanges,
- IN PVIDEO_ACCESS_RANGE AccessRanges,
- IN PVOID VendorId,
- IN PVOID DeviceId,
- IN PULONG Slot);
-VP_STATUS STDCALL VideoPortGetRegistryParameters(IN PVOID HwDeviceExtension,
- IN PWSTR ParameterName,
- IN UCHAR IsParameterFileName,
- IN PMINIPORT_GET_REGISTRY_ROUTINE GetRegistryRoutine,
- IN PVOID Context);
-ULONG STDCALL VideoPortInitialize(IN PVOID Context1,
- IN PVOID Context2,
- IN PVIDEO_HW_INITIALIZATION_DATA HwInitializationData,
- IN PVOID HwContext);
-VP_STATUS STDCALL VideoPortInt10(IN PVOID HwDeviceExtension,
- IN PVIDEO_X86_BIOS_ARGUMENTS BiosArguments);
-VOID STDCALL VideoPortLogError(IN PVOID HwDeviceExtension,
- IN PVIDEO_REQUEST_PACKET Vrp OPTIONAL,
- IN VP_STATUS ErrorCode,
- IN ULONG UniqueId);
-VP_STATUS STDCALL VideoPortMapBankedMemory(IN PVOID HwDeviceExtension,
- IN PHYSICAL_ADDRESS PhysicalAddress,
- IN PULONG Length,
- IN PULONG InIoSpace,
- OUT PVOID *VirtualAddress,
- IN ULONG BankLength,
- IN UCHAR ReadWriteBank,
- IN PBANKED_SECTION_ROUTINE BankRoutine,
- IN PVOID Context);
-VP_STATUS STDCALL VideoPortMapMemory(IN PVOID HwDeviceExtension,
- IN PHYSICAL_ADDRESS PhysicalAddress,
- IN PULONG Length,
- IN PULONG InIoSpace,
- OUT PVOID *VirtualAddress);
-VOID STDCALL VideoPortMoveMemory(OUT PVOID Destination,
- IN PVOID Source,
- IN ULONG Length);
-UCHAR STDCALL VideoPortReadPortUchar(IN PUCHAR Port);
-USHORT STDCALL VideoPortReadPortUshort(IN PUSHORT Port);
-ULONG STDCALL VideoPortReadPortUlong(IN PULONG Port);
-VOID STDCALL VideoPortReadPortBufferUchar(IN PUCHAR Port, OUT PUCHAR Buffer, IN ULONG Count);
-VOID STDCALL VideoPortReadPortBufferUshort(IN PUSHORT Port, OUT PUSHORT Buffer, IN ULONG Count);
-VOID STDCALL VideoPortReadPortBufferUlong(IN PULONG Port, OUT PULONG Buffer, IN ULONG Count);
-UCHAR STDCALL VideoPortReadRegisterUchar(IN PUCHAR Register);
-USHORT STDCALL VideoPortReadRegisterUshort(IN PUSHORT Register);
-ULONG STDCALL VideoPortReadRegisterUlong(IN PULONG Register);
-VOID STDCALL VideoPortReadRegisterBufferUchar(IN PUCHAR Register, OUT PUCHAR Buffer, IN ULONG Count);
-VOID STDCALL VideoPortReadRegisterBufferUshort(IN PUSHORT Register, OUT PUSHORT Buffer, IN ULONG Count);
-VOID STDCALL VideoPortReadRegisterBufferUlong(IN PULONG Register, OUT PULONG Buffer, IN ULONG Count);
-BOOLEAN STDCALL VideoPortScanRom(IN PVOID HwDeviceExtension,
- IN PUCHAR RomBase,
- IN ULONG RomLength,
- IN PUCHAR String);
-ULONG STDCALL VideoPortSetBusData(IN PVOID HwDeviceExtension,
- IN BUS_DATA_TYPE BusDataType,
- IN ULONG SlotNumber,
- IN PVOID Buffer,
- IN ULONG Offset,
- IN ULONG Length);
-VP_STATUS STDCALL VideoPortSetRegistryParameters(IN PVOID HwDeviceExtension,
- IN PWSTR ValueName,
- IN PVOID ValueData,
- IN ULONG ValueLength);
-VP_STATUS STDCALL VideoPortSetTrappedEmulatorPorts(IN PVOID HwDeviceExtension,
- IN ULONG NumAccessRanges,
- IN PVIDEO_ACCESS_RANGE AccessRange);
-VOID STDCALL VideoPortStallExecution(IN ULONG Microseconds);
-VOID STDCALL VideoPortStartTimer(IN PVOID HwDeviceExtension);
-VOID STDCALL VideoPortStopTimer(IN PVOID HwDeviceExtension);
-BOOLEAN STDCALL VideoPortSynchronizeExecution(IN PVOID HwDeviceExtension,
- IN VIDEO_SYNCHRONIZE_PRIORITY Priority,
- IN PMINIPORT_SYNCHRONIZE_ROUTINE SynchronizeRoutine,
- OUT PVOID Context);
-VP_STATUS STDCALL VideoPortUnmapMemory(IN PVOID HwDeviceExtension,
- IN PVOID VirtualAddress,
- IN HANDLE ProcessHandle);
-VP_STATUS STDCALL VideoPortVerifyAccessRanges(IN PVOID HwDeviceExtension,
- IN ULONG NumAccessRanges,
- IN PVIDEO_ACCESS_RANGE AccessRanges);
-VOID STDCALL VideoPortWritePortUchar(IN PUCHAR Port, IN UCHAR Value);
-VOID STDCALL VideoPortWritePortUshort(IN PUSHORT Port, IN USHORT Value);
-VOID STDCALL VideoPortWritePortUlong(IN PULONG Port, IN ULONG Value);
-VOID STDCALL VideoPortWritePortBufferUchar(IN PUCHAR Port, IN PUCHAR Buffer, IN ULONG Count);
-VOID STDCALL VideoPortWritePortBufferUshort(IN PUSHORT Port, IN PUSHORT Buffer, IN ULONG Count);
-VOID STDCALL VideoPortWritePortBufferUlong(IN PULONG Port, IN PULONG Buffer, IN ULONG Count);
-VOID STDCALL VideoPortWriteRegisterUchar(IN PUCHAR Register, IN UCHAR Value);
-VOID STDCALL VideoPortWriteRegisterUshort(IN PUSHORT Register, IN USHORT Value);
-VOID STDCALL VideoPortWriteRegisterUlong(IN PULONG Register, IN ULONG Value);
-VOID STDCALL VideoPortWriteRegisterBufferUchar(IN PUCHAR Register, IN PUCHAR Buffer, IN ULONG Count);
-VOID STDCALL VideoPortWriteRegisterBufferUshort(IN PUSHORT Register, IN PUSHORT Buffer, IN ULONG Count);
-VOID STDCALL VideoPortWriteRegisterBufferUlong(IN PULONG Register, IN PULONG Buffer, IN ULONG Count);
-VOID STDCALL VideoPortZeroMemory(OUT PVOID Destination, IN ULONG Length);
-VOID STDCALL VideoPortZeroDeviceMemory(OUT PVOID Destination, IN ULONG Length);
-
-
-
-#pragma pack(pop)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __NTDDVID_H */
reactos/include/ddk
diff -N winddi.h
--- winddi.h 8 Mar 2004 07:41:27 -0000 1.48
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,1813 +0,0 @@
-/*
- * WinDDI.h - definition of the GDI - DDI interface
- */
-
-#ifndef __DDK_WINDDI_H
-#define __DDK_WINDDI_H
-
-#ifdef __USE_W32API
-
-#include_next <ddk/winddi.h>
-
-#else /* __USE_W32API */
-
-#if defined(WIN32_LEAN_AND_MEAN) && defined(_GNU_H_WINDOWS32_STRUCTURES)
-#error "windows.h cannot be included before winddi.h if WIN32_LEAN_AND_MEAN is defined"
-#endif
-
-#ifdef WIN32_LEAN_AND_MEAN
-#undef WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#define WIN32_LEAN_AND_MEAN
-#else
-#include <windows.h>
-#endif
-#include <ddk/ddrawint.h>
-
-#ifndef IN
-#define IN
-#define OUT
-#define OPTIONAL
-#endif
-
-#ifndef PTRDIFF
-typedef DWORD PTRDIFF;
-#endif
-
-typedef struct _ENG_EVENT *PEVENT;
-
-#define DM_SPECVERSION 0x0320
-
-#define DDI_DRIVER_VERSION_NT4 0x20000
-#define DDI_DRIVER_VERSION_SP3 0x20003
-#define DDI_DRIVER_VERSION_NT5 0x30000
-#define DDI_DRIVER_VERSION_NT5_01 0x30100
-
-#define GDI_DRIVER_VERSION 0x4000 /* NT 4 compatibility */
-
-typedef struct _FONTINFO
-{
- ULONG cjThis;
- FLONG flCaps;
- ULONG cGlyphsSupported;
- ULONG cjMaxGlyph1;
- ULONG cjMaxGlyph4;
- ULONG cjMaxGlyph8;
- ULONG cjMaxGlyph32;
-} FONTINFO, *PFONTINFO;
-
-typedef BYTE GAMMA_TABLES[2][256];
-typedef GAMMA_TABLES *PGAMMA_TABLES;
-typedef COLORADJUSTMENT *PCOLORADJUSTMENT;
-
-typedef ULONG MIX;
-typedef ULONG ROP4;
-#define DDI_DRIVER_VERSION 0x00010000
-
-#define HS_DDI_MAX 6
-
-/* XLate types */
-#define XO_TRIVIAL 0x00000001
-#define XO_TABLE 0x00000002
-#define XO_TO_MONO 0x00000004
-
-#define XO_SRCPALETTE 1
-#define XO_DESTPALETTE 2
-#define XO_DESTDCPALETTE 3
-
-/* EngCreateBitmap format types */
-enum _BMF_TYPES
-{
- BMF_1BPP = 1,
- BMF_4BPP,
- BMF_8BPP,
- BMF_16BPP,
- BMF_24BPP,
- BMF_32BPP,
- BMF_4RLE,
- BMF_8RLE,
- BMF_JPEG,
- BMF_PNG
-};
-
-#define BMF_TOPDOWN 0x00000001
-#define BMF_NOZEROINIT 0x00000002
-#define BMF_DONTCACHE 0x00000004
-#define BMF_USERMEM 0x00000008
-#define BMF_KMSECTION 0x00000010
-#define BMF_NOTSYSMEM 0x0020
-#define BMF_WINDOW_BLT 0x0040
-#define BMF_UMPDMEM 0x0080
-#define BMF_RESERVED 0xFF00
-
-#define DC_TRIVIAL 0
-#define DC_RECT 1
-#define DC_COMPLEX 3
-
-#define FC_RECT 1
-#define FC_RECT4 2
-#define FC_COMPLEX 3
-
-#define TC_RECTANGLES 0
-#define TC_PATHOBJ 2
-
-#define OC_BANK_CLIP 1
-
-#define CT_RECTANGLES 0L
-
-#define CD_LEFTWARDS 1L
-#define CD_UPWARDS 2L
-
-/* Options for CLIPOBJ_cEnumStart BuildOrder field */
-enum _CD_ORDERS
-{
- CD_RIGHTDOWN,
- CD_LEFTDOWN,
- CD_RIGHTUP,
- CD_LEFTUP,
- CD_ANY
-};
-
-/* Options for CLIPOBJ_cEnumStart Type field */
-#define CT_RECTANGLE 1
-
-#define DCR_SOLID 0
-#define DCR_DRIVER 1
-#define DCR_HALFTONE 2
-
-#define DMMAXDEVICENAME 32
-#define DMMAXFORMNAME 32
-
-#define DM_DEFAULT 0x00000001
-#define DM_MONOCHROME 0x00000002
-
-#define ED_ABORTDOC 0x00000001
-
-enum _ESCAPE_CODES
-{
- ESC_PASSTHROUGH,
- ESC_QUERYESCSUPPORT
-};
-
-#define FM_INFO_TECH_TRUETYPE 0x00000001
-#define FM_INFO_TECH_BITMAP 0x00000002
-#define FM_INFO_TECH_STROKE 0x00000004
-#define FM_INFO_TECH_OUTLINE_NOT_TRUETYPE 0x00000008
-#define FM_INFO_ARB_XFORMS 0x00000010
-#define FM_INFO_1BPP 0x00000020
-#define FM_INFO_4BPP 0x00000040
-#define FM_INFO_8BPP 0x00000080
-#define FM_INFO_16BPP 0x00000100
-#define FM_INFO_24BPP 0x00000200
-#define FM_INFO_32BPP 0x00000400
-#define FM_INFO_INTEGER_WIDTH 0x00000800
-#define FM_INFO_CONSTANT_WIDTH 0x00001000
-#define FM_INFO_NOT_CONTIGUOUS 0x00002000
-#define FM_INFO_PID_EMBEDDED 0x00004000
-#define FM_INFO_RETURNS_OUTLINES 0x00008000
-#define FM_INFO_RETURNS_STROKES 0x00010000
-#define FM_INFO_RETURNS_BITMAPS 0x00020000
-#define FM_INFO_UNICODE_COMPLIANT 0x00040000
-#define FM_INFO_RIGHT_HANDED 0x00080000
-#define FM_INFO_INTEGRAL_SCALING 0x00100000
-#define FM_INFO_90DEGREE_ROTATIONS 0x00200000
-#define FM_INFO_OPTICALLY_FIXED_PITCH 0x00400000
-#define FM_INFO_DO_NOT_ENUMERATE 0x00800000
-#define FM_INFO_ISOTROPIC_SCALING_ONLY 0x01000000
-#define FM_INFO_ANISOTROPIC_SCALING_ONLY 0x02000000
-#define FM_INFO_TID_EMBEDDED 0x04000000
-#define FM_INFO_FAMILY_EQUIV 0x08000000
-#define FM_INFO_DBCS_FIXED_PITCH 0x10000000
-#define FM_INFO_NONNEGATIVE_AC 0x20000000
-#define FM_INFO_IGNORE_TC_RA_ABLE 0x40000000
-#define FM_INFO_TECH_TYPE1 0x80000000
-
-#define FM_SEL_ITALIC 0x00000001
-#define FM_SEL_UNDERSCORE 0x00000002
-#define FM_SEL_NEGATIVE 0x00000004
-#define FM_SEL_OUTLINED 0x00000008
-#define FM_SEL_STRIKEOUT 0x00000010
-#define FM_SEL_BOLD 0x00000020
-#define FM_SEL_REGULAR 0x00000040
-
-#define FM_TYPE_LICENSED 0x00000002
-#define FM_READONLY_EMBED 0x00000004
-#define FM_EDITABLE_EMBED 0x00000008
-#define FM_NO_EMBEDDING 0x00000002
-
-#define FO_TYPE_RASTER RASTER_FONTTYPE
-#define FO_TYPE_DEVICE DEVICE_FONTTYPE
-#define FO_TYPE_TRUETYPE TRUETYPE_FONTTYPE
-#define FO_SIM_BOLD 0x00002000
-#define FO_SIM_ITALIC 0x00004000
-#define FO_EM_HEIGHT 0x00008000
-#define FO_GRAY16 0x00010000
-#define FO_NOGRAY16 0x00020000
-#define FO_NOHINTS 0x00040000
-#define FO_NO_CHOICE 0x00080000
-
-enum _FP_MODES
-{
- FP_ALTERNATEMODE = 1,
- FP_WINDINGMODE
-};
-
-typedef struct _FD_GLYPHATTR {
- ULONG cjThis;
- ULONG cGlyphs;
- ULONG iMode;
- BYTE aGlyphAttr[1];
-} FD_GLYPHATTR, *PFD_GLYPHATTR;
-
-enum _GLYPH_MODE
-{
- FO_HGLYPHS,
- FO_GLYPHBITS,
- FO_PATHOBJ
-};
-
-/* Allowed values for GDIINFO.ulPrimaryOrder. */
-
-#define PRIMARY_ORDER_ABC 0
-#define PRIMARY_ORDER_ACB 1
-#define PRIMARY_ORDER_BAC 2
-#define PRIMARY_ORDER_BCA 3
-#define PRIMARY_ORDER_CBA 4
-#define PRIMARY_ORDER_CAB 5
-
-/* Allowed values for GDIINFO.ulHTPatternSize. */
-
-#define HT_PATSIZE_2x2 0
-#define HT_PATSIZE_2x2_M 1
-#define HT_PATSIZE_4x4 2
-#define HT_PATSIZE_4x4_M 3
-#define HT_PATSIZE_6x6 4
-#define HT_PATSIZE_6x6_M 5
-#define HT_PATSIZE_8x8 6
-#define HT_PATSIZE_8x8_M 7
-#define HT_PATSIZE_10x10 8
-#define HT_PATSIZE_10x10_M 9
-#define HT_PATSIZE_12x12 10
-#define HT_PATSIZE_12x12_M 11
-#define HT_PATSIZE_14x14 12
-#define HT_PATSIZE_14x14_M 13
-#define HT_PATSIZE_16x16 14
-#define HT_PATSIZE_16x16_M 15
-#define HT_PATSIZE_MAX_INDEX HT_PATSIZE_16x16_M
-#define HT_PATSIZE_DEFAULT HT_PATSIZE_4x4_M
-
-/* Allowed values for GDIINFO.ulHTOutputFormat. */
-
-#define HT_FORMAT_1BPP 0
-#define HT_FORMAT_4BPP 2
-#define HT_FORMAT_4BPP_IRGB 3
-#define HT_FORMAT_8BPP 4
-#define HT_FORMAT_16BPP 5
-#define HT_FORMAT_24BPP 6
-#define HT_FORMAT_32BPP 7
-
-/* Allowed values for GDIINFO.flHTFlags. */
-
-#define HT_FLAG_SQUARE_DEVICE_PEL 0x00000001
-#define HT_FLAG_HAS_BLACK_DYE 0x00000002
-#define HT_FLAG_ADDITIVE_PRIMS 0x00000004
-#define HT_FLAG_OUTPUT_CMY 0x00000100
-
-#define GCAPS_BEZIERS 0x00000001
-#define GCAPS_GEOMETRICWIDE 0x00000002
-#define GCAPS_ALTERNATEFILL 0x00000004
-#define GCAPS_WINDINGFILL 0x00000008
-#define GCAPS_HALFTONE 0x00000010
-#define GCAPS_COLOR_DITHER 0x00000020
-#define GCAPS_HORIZSTRIKE 0x00000040
-#define GCAPS_VERTSTRIKE 0x00000080
-#define GCAPS_OPAQUERECT 0x00000100
-#define GCAPS_VECTORFONT 0x00000200
-#define GCAPS_MONO_DITHER 0x00000400
-#define GCAPS_ASYNCCHANGE 0x00000800
-#define GCAPS_ASYNCMOVE 0x00001000
-#define GCAPS_DONTJOURNAL 0x00002000
-#define GCAPS_DIRECTDRAW 0x00004000
-#define GCAPS_ARBRUSHOPAQUE 0x00008000
-#define GCAPS_PANNING 0x00010000
-#define GCAPS_HIGHRESTEXT 0x00040000
-#define GCAPS_PALMANAGED 0x00080000
-#define GCAPS_DITHERONREALIZE 0x00200000
-#define GCAPS_NO64BITMEMACCESS 0x00400000
-#define GCAPS_FORCEDITHER 0x00800000
-#define GCAPS_GRAY16 0x01000000
-#define GCAPS_ICM 0x02000000
-#define GCAPS_CMYKCOLOR 0x04000000
-#define GCAPS_LAYERED 0x08000000
-#define GCAPS_ARBRUSHTEXT 0x10000000
-#define GCAPS_SCREENPRECISION 0x20000000
-#define GCAPS_FONT_RASTERIZER 0x40000000
-#define GCAPS_NUP 0x80000000
-
-#define GCAPS2_JPEGSRC 0x00000001
-#define GCAPS2_xxxx 0x00000002
-#define GCAPS2_PNGSRC 0x00000008
-#define GCAPS2_CHANGEGAMMARAMP 0x00000010
-#define GCAPS2_ALPHACURSOR 0x00000020
-#define GCAPS2_SYNCFLUSH 0x00000040
-#define GCAPS2_SYNCTIMER 0x00000080
-#define GCAPS2_ICD_MULTIMON 0x00000100
-#define GCAPS2_MOUSETRAILS 0x00000200
-#define GCAPS2_RESERVED1 0x00000400
-
-/* EngAssocateSurface hook flags */
-#define HOOK_BITBLT 0x00000001
-#define HOOK_STRETCHBLT 0x00000002
-#define HOOK_PLGBLT 0x00000004
-#define HOOK_TEXTOUT 0x00000008
-#define HOOK_PAINT 0x00000010
-#define HOOK_STROKEPATH 0x00000020
-#define HOOK_FILLPATH 0x00000040
-#define HOOK_STROKEANDFILLPATH 0x00000080
-#define HOOK_LINETO 0x00000100
-#define HOOK_COPYBITS 0x00000400
-#define HOOK_SYNCHRONIZE 0x00001000
-#define HOOK_SYNCHRONIZEACCESS 0x00004000
-#define HOOK_TRANSPARENTBLT 0x00008000
-#define HOOK_ALPHABLEND 0x00010000
-#define HOOK_GRADIENTFILL 0x00020000
-#define HOOK_FLAGS 0x0003b5ff
-
-/* DRVFN.iFunc constants */
-#define INDEX_DrvEnablePDEV 0L
-#define INDEX_DrvCompletePDEV 1L
-#define INDEX_DrvDisablePDEV 2L
-#define INDEX_DrvEnableSurface 3L
-#define INDEX_DrvDisableSurface 4L
-#define INDEX_DrvAssertMode 5L
-#define INDEX_DrvOffset 6L
-#define INDEX_DrvResetPDEV 7L
-#define INDEX_DrvDisableDriver 8L
-#define INDEX_DrvCreateDeviceBitmap 10L
-#define INDEX_DrvDeleteDeviceBitmap 11L
-#define INDEX_DrvRealizeBrush 12L
-#define INDEX_DrvDitherColor 13L
-#define INDEX_DrvStrokePath 14L
-#define INDEX_DrvFillPath 15L
-#define INDEX_DrvStrokeAndFillPath 16L
-#define INDEX_DrvPaint 17L
-#define INDEX_DrvBitBlt 18L
-#define INDEX_DrvCopyBits 19L
-#define INDEX_DrvStretchBlt 20L
-#define INDEX_DrvSetPalette 22L
-#define INDEX_DrvTextOut 23L
-#define INDEX_DrvEscape 24L
-#define INDEX_DrvDrawEscape 25L
-#define INDEX_DrvQueryFont 26L
-#define INDEX_DrvQueryFontTree 27L
-#define INDEX_DrvQueryFontData 28L
-#define INDEX_DrvSetPointerShape 29L
-#define INDEX_DrvMovePointer 30L
-#define INDEX_DrvLineTo 31L
-#define INDEX_DrvSendPage 32L
-#define INDEX_DrvStartPage 33L
-#define INDEX_DrvEndDoc 34L
-#define INDEX_DrvStartDoc 35L
-#define INDEX_DrvGetGlyphMode 37L
-#define INDEX_DrvSynchronize 38L
-#define INDEX_DrvSaveScreenBits 40L
-#define INDEX_DrvGetModes 41L
-#define INDEX_DrvFree 42L
-#define INDEX_DrvDestroyFont 43L
-#define INDEX_DrvQueryFontCaps 44L
-#define INDEX_DrvLoadFontFile 45L
-#define INDEX_DrvUnloadFontFile 46L
-#define INDEX_DrvFontManagement 47L
-#define INDEX_DrvQueryTrueTypeTable 48L
-#define INDEX_DrvQueryTrueTypeOutline 49L
-#define INDEX_DrvGetTrueTypeFile 50L
-#define INDEX_DrvQueryFontFile 51L
-#define INDEX_DrvMovePanning 52L
-#define INDEX_DrvQueryAdvanceWidths 53L
-#define INDEX_DrvSetPixelFormat 54L
-#define INDEX_DrvDescribePixelFormat 55L
-#define INDEX_DrvSwapBuffers 56L
-#define INDEX_DrvStartBanding 57L
-#define INDEX_DrvNextBand 58L
-#define INDEX_DrvGetDirectDrawInfo 59L
-#define INDEX_DrvEnableDirectDraw 60L
-#define INDEX_DrvDisableDirectDraw 61L
-#define INDEX_DrvQuerySpoolType 62L
-#define INDEX_DrvIcmCreateColorTransform 64L
-#define INDEX_DrvIcmDeleteColorTransform 65L
-#define INDEX_DrvIcmCheckBitmapBits 66L
-#define INDEX_DrvIcmSetDeviceGammaRamp 67L
-#define INDEX_DrvGradientFill 68L
-#define INDEX_DrvStretchBltROP 69L
-#define INDEX_DrvPlgBlt 70L
-#define INDEX_DrvAlphaBlend 71L
-#define INDEX_DrvSynthesizeFont 72L
-#define INDEX_DrvGetSynthesizedFontFiles 73L
-#define INDEX_DrvTransparentBlt 74L
-#define INDEX_DrvQueryPerBandInfo 75L
-#define INDEX_DrvQueryDeviceSupport 76L
-#define INDEX_DrvReserved1 77L
-#define INDEX_DrvReserved2 78L
-#define INDEX_DrvReserved3 79L
-#define INDEX_DrvReserved4 80L
-#define INDEX_DrvReserved5 81L
-#define INDEX_DrvReserved6 82L
-#define INDEX_DrvReserved7 83L
-#define INDEX_DrvReserved8 84L
-#define INDEX_DrvDeriveSurface 85L
-#define INDEX_DrvQueryGlyphAttrs 86L
-#define INDEX_DrvNotify 87L
-#define INDEX_DrvSynchronizeSurface 88L
-#define INDEX_DrvResetDevice 89L
-#define INDEX_DrvReserved9 90L
-#define INDEX_DrvReserved10 91L
-#define INDEX_DrvReserved11 92L
-#define INDEX_LAST 93L
-
-/* EngCreatePalette mode types */
-#define PAL_INDEXED 0x00000001
-#define PAL_BITFIELDS 0x00000002
-#define PAL_RGB 0x00000004
-#define PAL_BGR 0x00000008
-
-enum _QUERY_ADVANCE_WIDTH_TYPES
-{
- QAW_GETWIDTHS = 1,
- QAW_GETEASYWIDTHS
-};
-
-#define QC_OUTLINES 0x00000001
-#define QC_1BIT 0x00000002
-#define QC_4BIT 0x00000004
-
-enum _QFF_MODES
-{
- QFF_DESCRIPTION = 1,
- QFF_NUMFACES
-};
-
-#define RB_DITHERCOLOR 0x80000000
-
-enum _SPS_RC
-{
- SPS_ERROR,
- SPS_DECLINE,
- SPS_ACCEPT_NOEXCLUDE,
- SPS_ACCEPT_EXCLUDE
-};
-
-#define SPS_CHANGE 0x00000001L
-#define SPS_ASYNCCHANGE 0x00000002L
-#define SPS_ANIMATESTART 0x00000004L
-#define SPS_ANIMATEUPDATE 0x00000008L
-
-#define SS_SAVE 0
-#define SS_RESTORE 1
-#define SS_FREE 2
-
-enum _SURF_TYPES
-{
- STYPE_BITMAP = 0,
- STYPE_DEVICE = 1,
- STYPE_DEVBITMAP = 3
-};
-
-#define WO_RGN_CLIENT_DELTA 0x00000001
-#define WO_RGN_CLIENT 0x00000002
-#define WO_RGN_SURFACE_DELTA 0x00000004
-#define WO_RGN_SURFACE 0x00000008
-#define WO_RGN_UPDATE_ALL 0x00000010
-
-#define WOC_RGN_CLIENT_DELTA 0x00000001
-#define WOC_RGN_CLIENT 0x00000002
-#define WOC_RGN_SURFACE_DELTA 0x00000004
-#define WOC_RGN_SURFACE 0x00000008
-#define WOC_CHANGED 0x00000010
-#define WOC_DELETE 0x00000020
-
-typedef HANDLE HDEV;
-typedef HANDLE HGLYPH;
-typedef HANDLE HSURF;
-typedef HANDLE DHPDEV;
-typedef HANDLE DHSURF;
-typedef ULONG (*PFN)(VOID);
-typedef ULONG IDENT;
-
-typedef struct _DRVFN
-{
- ULONG iFunc;
- PFN pfn;
-} DRVFN, *PDRVFN;
-
-/*
- * DRVENABLEDATA - this structure is passed to the DDI from the GDI
- * in the function DrvEnableDriver to determine driver parameters.
- */
-
-typedef struct _DRVENABLEDATA
-{
- ULONG iDriverVersion;
- ULONG c;
- DRVFN *pdrvfn;
-} DRVENABLEDATA, *PDRVENABLEDATA;
-
-typedef LONG LDECI4;
-
-typedef struct _CIECHROMA
-{
- LDECI4 x;
- LDECI4 y;
- LDECI4 Y;
-} CIECHROMA, *PCIECHROMA;
-
-typedef struct _COLORINFO
-{
- CIECHROMA Red;
- CIECHROMA Green;
- CIECHROMA Blue;
- CIECHROMA Cyan;
- CIECHROMA Magenta;
- CIECHROMA Yellow;
- CIECHROMA AlignmentWhite;
- LDECI4 RedGamma;
- LDECI4 GreenGamma;
- LDECI4 BlueGamma;
- LDECI4 MagentaInCyanDye;
- LDECI4 YellowInCyanDye;
- LDECI4 CyanInMagentaDye;
- LDECI4 YellowInMagentaDye;
- LDECI4 CyanInYellowDye;
- LDECI4 MagentaInYellowDye;
-} COLORINFO, *PCOLORINFO;
-
-typedef struct _DEVINFO
-{
- ULONG flGraphicsCaps;
- LOGFONTW lfDefaultFont;
- LOGFONTW lfAnsiVarFont;
- LOGFONTW lfAnsiFixFont;
- ULONG cFonts;
- ULONG iDitherFormat;
- USHORT cxDither;
- USHORT cyDither;
- HPALETTE hpalDefault;
- ULONG flGraphicsCaps2;
-} DEVINFO, *PDEVINFO;
-
-typedef struct _GDIINFO
-{
- ULONG ulVersion;
- ULONG ulTechnology;
- ULONG ulHorzSize;
- ULONG ulVertSize;
- ULONG ulHorzRes;
- ULONG ulVertRes;
- ULONG cBitsPixel;
- ULONG cPlanes;
- ULONG ulNumColors;
- ULONG flRaster;
- ULONG ulLogPixelsX;
- ULONG ulLogPixelsY;
- ULONG flTextCaps;
- ULONG ulDACRed;
- ULONG ulDACGreen;
- ULONG ulDACBlue;
- ULONG ulAspectX;
- ULONG ulAspectY;
- ULONG ulAspectXY;
- LONG xStyleStep;
- LONG yStyleStep;
- LONG denStyleStep;
- POINTL ptlPhysOffset;
- SIZEL szlPhysSize;
- ULONG ulNumPalReg;
- COLORINFO ciDevice;
- ULONG ulDevicePelsDPI;
- ULONG ulPrimaryOrder;
- ULONG ulHTPatternSize;
- ULONG ulHTOutputFormat;
- ULONG flHTFlags;
- ULONG ulVRefresh;
- ULONG ulBltAlignment;
- ULONG ulPanningHorzRes;
- ULONG ulPanningVertRes;
- ULONG xPanningAlignment;
- ULONG yPanningAlignment;
- ULONG cxHTPat;
- ULONG cyHTPat;
- LPBYTE pHTPatA;
- LPBYTE pHTPatB;
- LPBYTE pHTPatC;
- ULONG flShadeBlend;
- ULONG ulPhysicalPixelCharacteristics;
- ULONG ulPhysicalPixelGamma;
-} GDIINFO, *PGDIINFO;
-
-typedef struct _BRUSHOBJ
-{
- ULONG iSolidColor;
- PVOID pvRbrush;
- FLONG flColorType;
- /* remainder of fields are for GDI internal use */
- LOGBRUSH logbrush;
-} BRUSHOBJ, *PBRUSHOBJ;
-
-typedef struct _CLIPOBJ
-{
- ULONG iUniq;
- RECTL rclBounds;
- BYTE iDComplexity;
- BYTE iFComplexity;
- BYTE iMode;
- BYTE fjOptions;
-} CLIPOBJ, *PCLIPOBJ;
-
-typedef struct _ENUMRECTS
-{
- ULONG c;
- RECTL arcl[1];
-} ENUMRECTS, *PENUMRECTS;
-
-typedef struct _BLENDOBJ
-{
- BLENDFUNCTION BlendFunction;
-}BLENDOBJ,*PBLENDOBJ;
-
-typedef struct
-{
- DWORD nSize;
- HDC hdc;
- PBYTE pvEMF;
- PBYTE pvCurrentRecord;
-} EMFINFO, *PEMFINFO;
-
-typedef struct _FONTOBJ
-{
- ULONG iUniq;
- ULONG iFace;
- ULONG cxMax;
- ULONG flFontType;
- ULONG iTTUniq;
- ULONG iFile;
- SIZE sizLogResPpi;
- ULONG ulStyleSize;
- PVOID pvConsumer;
- PVOID pvProducer;
-} FONTOBJ, *PFONTOBJ;
-
-typedef struct _IFIMETRICS
-{
- ULONG cjThis;
- ULONG ulVersion;
- PTRDIFF dpwszFamilyName;
- PTRDIFF dpwszStyleName;
- PTRDIFF dpwszFaceName;
- PTRDIFF dpwszUniqueName;
- PTRDIFF dpFontSim;
- LONG lEmbedId;
- LONG lItalicAngle;
- LONG lCharBias;
- PTRDIFF dpCharSets;
- BYTE jWinCharSet;
- BYTE jWinPitchAndFamily;
- USHORT usWinWeight;
- ULONG flInfo;
- USHORT fsSelection;
- USHORT fsType;
- WORD fwdUnitsPerEm;
- WORD fwdLowestPPEm;
- WORD fwdWinAscender;
- WORD fwdWinDescender;
- WORD fwdMacAscender;
- WORD fwdMacDescender;
- WORD fwdMacLineGap;
- WORD fwdTypoAscender;
- WORD fwdTypoDescender;
- WORD fwdTypoLineGap;
- WORD fwdAveCharWidth;
- WORD fwdMaxCharInc;
- WORD fwdCapHeight;
- WORD fwdXHeight;
- WORD fwdSubScriptXSize;
- WORD fwdSubScriptYSize;
- WORD fwdSubScriptXOffset;
- WORD fwdSubScriptYOffset;
- WORD fwdSuperScriptXSize;
- WORD fwdSuperScriptYSize;
- WORD fwdSuperScriptXOffset;
- WORD fwdSuperScriptYOffset;
- WORD fwdUnderscoreSize;
- WORD fwdUnderscorePosition;
- WORD fwdStrikeoutSize;
- WORD fwdStrikeoutPosition;
- BYTE chFirstChar;
- BYTE chLastChar;
- BYTE chDefaultChar;
- BYTE chBreakChar;
- WCHAR wcFirstChar;
- WCHAR wcLastChar;
- WCHAR wcDefaultChar;
- WCHAR wcBreakChar;
- POINTL ptlBaseline;
- POINTL ptlAspect;
- POINTL ptlCaret;
- RECTL rclFontBox;
- BYTE achVendId[4];
- ULONG cKerningPairs;
- ULONG ulPanoseCulture;
- PANOSE panose;
-} IFIMETRICS, *PIFIMETRICS;
-
-#define NB_RESERVED_COLORS 20 /* number of fixed colors in system palette */
-
-typedef struct _XLATEOBJ
-{
- ULONG iUniq;
- ULONG flXlate;
- USHORT iSrcType;
- USHORT iDstType;
- ULONG cEntries;
- ULONG *pulXlate;
-} XLATEOBJ, *PXLATEOBJ;
-
-typedef struct _PALOBJ
-{
- ULONG ulReserved;
- PXLATEOBJ logicalToSystem;
- int *mapping;
-} PALOBJ, *PPALOBJ;
-
-typedef struct _PATHOBJ
-{
- ULONG fl;
- ULONG cCurves;
-} PATHOBJ, *PPATHOBJ;
-
-typedef struct _SURFOBJ
-{
- DHSURF dhsurf;
- HSURF hsurf;
- DHPDEV dhpdev;
- HDEV hdev;
- SIZEL sizlBitmap;
- ULONG cjBits;
- PVOID pvBits;
- PVOID pvScan0;
- LONG lDelta;
- ULONG iUniq;
- ULONG iBitmapFormat;
- USHORT iType;
- USHORT fjBitmap;
-} SURFOBJ, *PSURFOBJ;
-
-typedef struct _WNDOBJ
-{
- CLIPOBJ coClient;
- PVOID pvConsumer;
- RECTL rclClient;
-} WNDOBJ, *PWNDOBJ;
-
-typedef VOID (CALLBACK * WNDOBJCHANGEPROC)(PWNDOBJ WndObj, ULONG Flags);
-
-typedef struct _XFORMOBJ
-{
- ULONG ulReserved;
-} XFORMOBJ, *PXFORMOBJ;
-
-typedef struct _GLYPHBITS
-{
- POINTL ptlOrigin;
- SIZEL sizlBitmap;
- BYTE aj[1];
-} GLYPHBITS;
-
-typedef union _GLYPHDEF
-{
- GLYPHBITS *pgb;
- PATHOBJ *ppo;
-} GLYPHDEF;
-
-typedef struct _POINTQF
-{
- LARGE_INTEGER x;
- LARGE_INTEGER y;
-} POINTQF, *PPOINTQF;
-
-typedef struct _GLYPHDATA {
- GLYPHDEF gdf;
- HGLYPH hg;
- FIX fxD;
- FIX fxA;
- FIX fxAB;
- FIX fxInkTop;
- FIX fxInkBottom;
- RECTL rclInk;
- POINTQF ptqD;
-} GLYPHDATA, *PGLYPHDATA;
-
-typedef struct _GLYPHPOS
-{
- HGLYPH hg;
- GLYPHDEF *pgdf;
- POINTL *ptl;
-} GLYPHPOS, *PGLYPHPOS;
-
-typedef struct _STROBJ
-{
- ULONG cGlyphs;
- FLONG flAccel;
- ULONG ulCharInc;
- RECTL rclBkGround;
- GLYPHPOS *pgp;
- LPWSTR pwszOrg;
-} STROBJ, *PSTROBJ;
-
-typedef struct _WCRUN
-{
- WCHAR wcLow;
- USHORT cGlyphs;
- HGLYPH *phg;
-} WCRUN, *PWCRUN;
-
-typedef struct _FD_GLYPHSET
-{
- ULONG cjThis;
- FLONG flAccel;
- ULONG cGlyphsSupported;
- ULONG cRuns;
- WCRUN awcrun[1];
-} FD_GLYPHSET, *PFD_GLYPHSET;
-
-struct _DRIVEROBJ;
-
-typedef BOOL (CALLBACK * FREEOBJPROC) (struct _DRIVEROBJ* pDriverObj);
-
-typedef struct _DRIVEROBJ
-{
- PVOID pvObj;
- FREEOBJPROC pFreeProc;
- HDEV hdev;
- DHPDEV dhpdev;
-} DRIVEROBJ;
-
-typedef struct _TYPE1_FONT
-{
- HANDLE hPFM;
- HANDLE hPFB;
- ULONG ulIdentifier;
-} TYPE1_FONT;
-
-typedef struct _ENG_TIME_FIELDS
-{
- USHORT usYear;
- USHORT usMonth;
- USHORT usDay;
- USHORT usHour;
- USHORT usMinute;
- USHORT usSecond;
- USHORT usMilliseconds;
- USHORT usWeekday;
-} ENG_TIME_FIELDS, *PENG_TIME_FIELDS;
-
-typedef enum _ENG_SYSTEM_ATTRIBUTE {
- EngProcessorFeature = 1,
- EngNumberOfProcessors,
- EngOptimumAvailableUserMemory,
- EngOptimumAvailableSystemMemory,
-} ENG_SYSTEM_ATTRIBUTE;
-
-typedef struct _LINEATTRS
-{
- FLONG fl;
- ULONG iJoin;
- ULONG iEndCap;
- FLOAT_LONG elWidth;
- FLOATL eMiterLimit;
- ULONG cstyle;
- PFLOAT_LONG pstyle;
- FLOAT_LONG elStyleState;
-} LINEATTRS, *PLINEATTRS;
-
-typedef struct _FLOATOBJ
-{
- ULONG ul1,
- ul2;
-} FLOATOBJ, *PFLOATOBJ;
-
-typedef struct _POINTFIX
-{
- FIX x,
- y;
-} POINTFIX;
-
-typedef struct _PATHDATA
-{
- FLONG flags;
- ULONG count;
- POINTFIX *pptfx;
-} PATHDATA, *PPATHDATA;
-
-typedef struct _RUN
-{
- LONG iStart;
- LONG iStop;
-} RUN, *PRUN;
-
-typedef struct _CLIPLINE
-{
- POINTFIX ptfxA;
- POINTFIX ptfxB;
- LONG lStyleState;
- ULONG c;
- RUN arun[1];
-} CLIPLINE, *PCLIPLINE;
-
-typedef struct _RECTFX
-{
- FIX xLeft,
- yTop,
- xRight,
- yBottom;
-} RECTFX, *PRECTFX;
-
-typedef struct
-{
- FLOATOBJ eM11,
- eM12,
- eM21,
- eM22,
- eDx,
- eDy;
-} FLOATOBJ_XFORM, *PFLOATOBJ_XFORM, FAR *LPFLOATOBJ_XFORM;
-
-typedef struct _XFORML
-{
- FLOATL eM11,
- eM12,
- eM21,
- eM22,
- eDx,
- eDy;
-} XFORML, *PXFORML;
-
-/*
- * Functions Prefixed with Drv are calls made from GDI to DDI, and
- * everything else are calls made from DDI to GDI. DDI is
- * not allowed to make calls to any other kernel or user modules.
- */
-
-/* GDI --> DDI calls */
-BOOL STDCALL
-DrvAssertMode(IN DHPDEV PDev,
- IN BOOL ShouldEnable);
-
-BOOL STDCALL
-DrvBitBlt(IN PSURFOBJ DestSurface,
- IN PSURFOBJ SrcSurface,
- IN PSURFOBJ MaskSurface,
- IN PCLIPOBJ ClipObj,
- IN PXLATEOBJ XLateObj,
- IN PRECTL DestRectL,
- IN PPOINTL SrcPointL,
- IN PPOINTL MaskPointL,
- IN PBRUSHOBJ BrushObj,
- IN PPOINTL BrushPointL,
- IN ROP4 RasterOp);
-VOID STDCALL
-DrvCompletePDEV(IN DHPDEV PDev,
- IN HDEV Dev);
-BOOL STDCALL
-DrvCopyBits(OUT PSURFOBJ DestSurface,
- IN PSURFOBJ SrcSurface,
- IN PCLIPOBJ ClipObj,
- IN PXLATEOBJ XLateObj,
- IN PRECTL DestRectL,
- IN PPOINTL SrcPointL);
-HBITMAP STDCALL
-DrvCreateDeviceBitmap(IN DHPDEV DPev,
- IN SIZEL SizeL,
- IN ULONG Format);
-VOID STDCALL
-DrvDeleteDeviceBitmap(IN DHSURF Surface);
-LONG STDCALL
-DrvDescribePixelFormat(IN DHPDEV DPev,
- IN LONG PixelFormat,
- IN ULONG DescriptorSize,
- OUT PPIXELFORMATDESCRIPTOR PFD);
[truncated at 1000 lines; 817 more skipped]