⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ntddvdeo.h

📁 MinGW+MSYS开发必用的api参考
💻 H
字号:
/* * ntddvdeo.h * * Definitions for video devices * * This file is part of the w32api package. * * Contributors: *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net> * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */#ifndef __NTDDVDEO_H#define __NTDDVDEO_H#if __GNUC__ >=3#pragma GCC system_header#endif#ifdef __cplusplusextern "C" {#endif#include "ntddk.h"#define VIDEO_DEVICE_NAME                 "DISPLAY%d"#define WVIDEO_DEVICE_NAME                L"DISPLAY%d"#define DD_FULLSCREEN_VIDEO_DEVICE_NAME   L"\\Device\\FSVideo"DEFINE_GUID(GUID_DEVINTERFACE_DISPLAY_ADAPTER, \  0x5b45201d, 0xf2f2, 0x4f3b, 0x85, 0xbb, 0x30, 0xff, 0x1f, 0x95, 0x35, 0x99);#define IOCTL_VIDEO_DISABLE_CURSOR \  CTL_CODE (FILE_DEVICE_VIDEO, 0x109, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_DISABLE_POINTER \  CTL_CODE(FILE_DEVICE_VIDEO, 0x10f, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_ENABLE_CURSOR \  CTL_CODE(FILE_DEVICE_VIDEO, 0x108, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_ENABLE_POINTER \  CTL_CODE(FILE_DEVICE_VIDEO, 0x10e, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_FREE_PUBLIC_ACCESS_RANGES \  CTL_CODE(FILE_DEVICE_VIDEO, 0x119, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_GET_BANK_SELECT_CODE \  CTL_CODE(FILE_DEVICE_VIDEO, 0x115, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_GET_CHILD_STATE \  CTL_CODE(FILE_DEVICE_VIDEO, 0x120, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_GET_POWER_MANAGEMENT \  CTL_CODE(FILE_DEVICE_VIDEO, 0x11c, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_HANDLE_VIDEOPARAMETERS \  CTL_CODE(FILE_DEVICE_VIDEO, 0x08, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_LOAD_AND_SET_FONT \  CTL_CODE(FILE_DEVICE_VIDEO, 0x105, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_MAP_VIDEO_MEMORY \  CTL_CODE(FILE_DEVICE_VIDEO, 0x116, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_QUERY_AVAIL_MODES \  CTL_CODE(FILE_DEVICE_VIDEO, 0x100, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_QUERY_COLOR_CAPABILITIES \  CTL_CODE(FILE_DEVICE_VIDEO, 0x11a, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_QUERY_CURRENT_MODE \  CTL_CODE(FILE_DEVICE_VIDEO, 0x102, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_QUERY_CURSOR_ATTR \  CTL_CODE(FILE_DEVICE_VIDEO, 0x10b, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_QUERY_CURSOR_POSITION \  CTL_CODE(FILE_DEVICE_VIDEO, 0x10d, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES \  CTL_CODE(FILE_DEVICE_VIDEO, 0x101, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_QUERY_POINTER_ATTR \  CTL_CODE(FILE_DEVICE_VIDEO, 0x111, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_QUERY_POINTER_CAPABILITIES \  CTL_CODE(FILE_DEVICE_VIDEO, 0x114, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_QUERY_POINTER_POSITION \  CTL_CODE(FILE_DEVICE_VIDEO, 0x113, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_QUERY_PUBLIC_ACCESS_RANGES \  CTL_CODE(FILE_DEVICE_VIDEO, 0x118, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_RESET_DEVICE \  CTL_CODE(FILE_DEVICE_VIDEO, 0x104, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_RESTORE_HARDWARE_STATE \  CTL_CODE(FILE_DEVICE_VIDEO, 0x81, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_SAVE_HARDWARE_STATE \  CTL_CODE(FILE_DEVICE_VIDEO, 0x80, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_SET_CHILD_STATE_CONFIGURATION \  CTL_CODE(FILE_DEVICE_VIDEO, 0x122, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_SET_COLOR_REGISTERS \  CTL_CODE(FILE_DEVICE_VIDEO, 0x107, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_SET_CURRENT_MODE \  CTL_CODE(FILE_DEVICE_VIDEO, 0x103, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_SET_CURSOR_ATTR \  CTL_CODE(FILE_DEVICE_VIDEO, 0x10a, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_SET_CURSOR_POSITION \  CTL_CODE(FILE_DEVICE_VIDEO, 0x10c, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_SET_PALETTE_REGISTERS \  CTL_CODE(FILE_DEVICE_VIDEO, 0x106, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_SET_POINTER_ATTR \  CTL_CODE(FILE_DEVICE_VIDEO, 0x110, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_SET_POINTER_POSITION \  CTL_CODE(FILE_DEVICE_VIDEO, 0x112, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_SET_POWER_MANAGEMENT \  CTL_CODE(FILE_DEVICE_VIDEO, 0x11b, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_SHARE_VIDEO_MEMORY \  CTL_CODE(FILE_DEVICE_VIDEO, 0x11d, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_SWITCH_DUALVIEW \  CTL_CODE(FILE_DEVICE_VIDEO, 0x123, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_UNMAP_VIDEO_MEMORY \  CTL_CODE(FILE_DEVICE_VIDEO, 0x117, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY \  CTL_CODE(FILE_DEVICE_VIDEO, 0x11e, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_VIDEO_VALIDATE_CHILD_STATE_CONFIGURATION \  CTL_CODE(FILE_DEVICE_VIDEO, 0x121, METHOD_BUFFERED, FILE_ANY_ACCESS)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;/* VIDEO_MODE.RequestedMode */#define VIDEO_MODE_MAP_MEM_LINEAR         0x40000000#define VIDEO_MODE_NO_ZERO_MEMORY         0x80000000typedef 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_MODE_MANAGED_PALETTE        0x0008#define VIDEO_MODE_INTERLACED             0x0010#define VIDEO_MODE_NO_OFF_SCREEN          0x0020#define VIDEO_MODE_NO_64_BIT_ACCESS       0x0040#define VIDEO_MODE_BANKED                 0x0080#define VIDEO_MODE_LINEAR                 0x0100typedef 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 enum _VIDEO_POWER_STATE {  VideoPowerUnspecified = 0,  VideoPowerOn = 1,  VideoPowerStandBy,  VideoPowerSuspend,  VideoPowerOff,  VideoPowerHibernate,  VideoPowerShutdown,  VideoPowerMaximum} VIDEO_POWER_STATE, *PVIDEO_POWER_STATE;typedef struct _VIDEO_POWER_MANAGEMENT {  ULONG  Length;  ULONG  DPMSVersion;  ULONG  PowerState;} VIDEO_POWER_MANAGEMENT, *PVIDEO_POWER_MANAGEMENT;typedef struct _VIDEO_PUBLIC_ACCESS_RANGES {  ULONG  InIoSpace;  ULONG  MappedInIoSpace;  PVOID  VirtualAddress;} VIDEO_PUBLIC_ACCESS_RANGES, *PVIDEO_PUBLIC_ACCESS_RANGES;typedef struct _VIDEO_SHARE_MEMORY {  HANDLE  ProcessHandle;  ULONG  ViewOffset;  ULONG  ViewSize;  PVOID  RequestedVirtualAddress;} VIDEO_SHARE_MEMORY, *PVIDEO_SHARE_MEMORY;typedef struct _VIDEO_SHARE_MEMORY_INFORMATION {  ULONG  SharedViewOffset;  ULONG  SharedViewSize;  PVOID  VirtualAddress;} VIDEO_SHARE_MEMORY_INFORMATION, *PVIDEO_SHARE_MEMORY_INFORMATION;/* VIDEO_BANK_SELECT.BankingFlags constants */#define PLANAR_HC                         0x00000001/* 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_LOAD_FONT_INFORMATION {  USHORT  WidthInPixels;  USHORT  HeightInPixels;  ULONG  FontSize;  UCHAR  Font[1];} VIDEO_LOAD_FONT_INFORMATION, *PVIDEO_LOAD_FONT_INFORMATION;/* VIDEO_COLOR_CAPABILITIES.AttributeFlags constants */#define VIDEO_DEVICE_COLOR                0x00000001#define VIDEO_OPTIONAL_GAMMET_TABLE       0x00000002typedef struct _VIDEO_COLOR_CAPABILITIES {  ULONG  Length;  ULONG  AttributeFlags;  LONG  RedPhosphoreDecay;  LONG  GreenPhosphoreDecay;  LONG  BluePhosphoreDecay;  LONG  WhiteChromaticity_x;  LONG  WhiteChromaticity_y;  LONG  WhiteChromaticity_Y;  LONG  RedChromaticity_x;  LONG  RedChromaticity_y;  LONG  GreenChromaticity_x;  LONG  GreenChromaticity_y;  LONG  BlueChromaticity_x;  LONG  BlueChromaticity_y;  LONG  WhiteGamma;  LONG  RedGamma;  LONG  GreenGamma;  LONG  BlueGamma;} VIDEO_COLOR_CAPABILITIES, *PVIDEO_COLOR_CAPABILITIES;typedef struct _VIDEO_CURSOR_ATTRIBUTES {  USHORT  Width;  USHORT  Height;  SHORT  Column;  SHORT  Row;  UCHAR  Rate;  UCHAR  Enable;} VIDEO_CURSOR_ATTRIBUTES, *PVIDEO_CURSOR_ATTRIBUTES;typedef struct _VIDEO_CURSOR_POSITION {  SHORT  Column;  SHORT  Row;} VIDEO_CURSOR_POSITION, *PVIDEO_CURSOR_POSITION;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;/* VIDEO_POINTER_CAPABILITIES.Flags */#define VIDEO_MODE_ASYNC_POINTER          0x01#define VIDEO_MODE_MONO_POINTER           0x02#define VIDEO_MODE_COLOR_POINTER          0x04#define VIDEO_MODE_ANIMATE_START          0x08#define VIDEO_MODE_ANIMATE_UPDATE         0x10typedef struct _VIDEO_POINTER_CAPABILITIES {  ULONG  Flags;  ULONG  MaxWidth;  ULONG  MaxHeight;  ULONG  HWPtrBitmapStart;  ULONG  HWPtrBitmapEnd;} VIDEO_POINTER_CAPABILITIES, *PVIDEO_POINTER_CAPABILITIES;typedef struct _VIDEO_POINTER_POSITION {  SHORT  Column;  SHORT  Row;} VIDEO_POINTER_POSITION, *PVIDEO_POINTER_POSITION;/* VIDEO_HARDWARE_STATE_HEADER.VGAStateFlags constants */#define VIDEO_STATE_NON_STANDARD_VGA      0x00000001#define VIDEO_STATE_UNEMULATED_VGA_STATE  0x00000002#define VIDEO_STATE_PACKED_CHAIN4_MODE    0x00000004typedef struct _VIDEO_HARDWARE_STATE_HEADER {  ULONG  Length;  UCHAR  PortValue[0x30];  ULONG  AttribIndexDataState;  ULONG  BasicSequencerOffset;  ULONG  BasicCrtContOffset;  ULONG  BasicGraphContOffset;  ULONG  BasicAttribContOffset;  ULONG  BasicDacOffset;  ULONG  BasicLatchesOffset;  ULONG  ExtendedSequencerOffset;  ULONG  ExtendedCrtContOffset;  ULONG  ExtendedGraphContOffset;  ULONG  ExtendedAttribContOffset;  ULONG  ExtendedDacOffset;  ULONG  ExtendedValidatorStateOffset;  ULONG  ExtendedMiscDataOffset;  ULONG  PlaneLength;  ULONG  Plane1Offset;  ULONG  Plane2Offset;  ULONG  Plane3Offset;  ULONG  Plane4Offset;  ULONG  VGAStateFlags;  ULONG  DIBOffset;  ULONG  DIBBitsPerPixel;  ULONG  DIBXResolution;  ULONG  DIBYResolution;  ULONG  DIBXlatOffset;  ULONG  DIBXlatLength;  ULONG  VesaInfoOffset;  PVOID  FrameBufferData;} VIDEO_HARDWARE_STATE_HEADER, *PVIDEO_HARDWARE_STATE_HEADER;typedef struct _VIDEO_CLUTDATA {  UCHAR  Red;  UCHAR  Green;  UCHAR  Blue;  UCHAR  Unused;} VIDEO_CLUTDATA, *PVIDEO_CLUTDATA;typedef struct {	USHORT  NumEntries;	USHORT  FirstEntry;	union {    VIDEO_CLUTDATA  RgbArray;    ULONG  RgbLong;	} LookupTable[1];} VIDEO_CLUT, *PVIDEO_CLUT;typedef struct _VIDEO_PALETTE_DATA {  USHORT  NumEntries;  USHORT  FirstEntry;  USHORT  Colors[1];} VIDEO_PALETTE_DATA, *PVIDEO_PALETTE_DATA;typedef struct _VIDEO_HARDWARE_STATE {	PVIDEO_HARDWARE_STATE_HEADER  StateHeader;	ULONG  StateLength;} VIDEO_HARDWARE_STATE, *PVIDEO_HARDWARE_STATE;#define VIDEO_CHILD_ACTIVE                0x00000001#define VIDEO_CHILD_DETACHED              0x00000002#define VIDEO_CHILD_NOPRUNE_FREQ          0x80000000#define VIDEO_CHILD_NOPRUNE_RESOLUTION    0x40000000#define VIDEO_DUALVIEW_REMOVABLE          0x00000001#define VIDEO_DUALVIEW_PRIMARY            0x80000000#define VIDEO_DUALVIEW_SECONDARY          0x40000000#ifdef __cplusplus}#endif#endif /* __NTDDVDEO_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -