813 lines
27 KiB
C
813 lines
27 KiB
C
|
/*
|
||
|
* ntddvdeo.h Video device I/O control codes
|
||
|
*
|
||
|
* =========================================================================
|
||
|
*
|
||
|
* Open Watcom Project
|
||
|
*
|
||
|
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
|
||
|
*
|
||
|
* This file is automatically generated. Do not edit directly.
|
||
|
*
|
||
|
* =========================================================================
|
||
|
*/
|
||
|
|
||
|
#ifndef _NTDDVDEO_
|
||
|
#define _NTDDVDEO_
|
||
|
|
||
|
#ifndef _ENABLE_AUTODEPEND
|
||
|
#pragma read_only_file;
|
||
|
#endif
|
||
|
|
||
|
#include <tvout.h>
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
/* Video device name */
|
||
|
#define VIDEO_DEVICE_NAME "DISPLAY%d"
|
||
|
#define WVIDEO_DEVICE_NAME L"DISPLAY%d"
|
||
|
|
||
|
/* Video device I/O control codes */
|
||
|
#define IOCTL_VIDEO_DISABLE_VDM \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0001, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_REGISTER_VDM \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0002, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_SET_OUTPUT_DEVICE_POWER_STATE \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0003, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_GET_OUTPUT_DEVICE_POWER_STATE \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0004, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_MONITOR_DEVICE \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0005, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_ENUM_MONITOR_PDO \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0006, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_INIT_WIN32K_CALLBACKS \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0007, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_IS_VGA_DEVICE \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0009, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_USE_DEVICE_IN_SESSION \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x000A, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_PREPARE_FOR_EARECOVERY \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x000B, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_ENABLE_VDM \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_SAVE_HARDWARE_STATE \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0080, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_RESTORE_HARDWARE_STATE \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0081, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_HANDLE_VIDEOPARAMETERS \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_QUERY_AVAIL_MODES \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0100, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0101, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_QUERY_CURRENT_MODE \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0102, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_SET_CURRENT_MODE \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0103, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_RESET_DEVICE \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0104, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_LOAD_AND_SET_FONT \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0105, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_SET_PALETTE_REGISTERS \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0106, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_SET_COLOR_REGISTERS \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0107, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_ENABLE_CURSOR \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0108, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_DISABLE_CURSOR \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0109, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_SET_CURSOR_ATTR \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x010A, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_QUERY_CURSOR_ATTR \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x010B, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_SET_CURSOR_POSITION \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x010C, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_QUERY_CURSOR_POSITION \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x010D, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_ENABLE_POINTER \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x010E, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_DISABLE_POINTER \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x010F, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_SET_POINTER_ATTR \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0110, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_QUERY_POINTER_ATTR \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0111, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_SET_POINTER_POSITION \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0112, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_QUERY_POINTER_POSITION \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0113, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_QUERY_POINTER_CAPABILITIES \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0114, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_GET_BANK_SELECT_CODE \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0115, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_MAP_VIDEO_MEMORY \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0116, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_UNMAP_VIDEO_MEMORY \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0117, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_QUERY_PUBLIC_ACCESS_RANGES \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0118, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_FREE_PUBLIC_ACCESS_RANGES \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0119, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_QUERY_COLOR_CAPABILITIES \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x011A, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_SET_POWER_MANAGEMENT \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x011B, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_GET_POWER_MANAGEMENT \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x011C, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_SHARE_VIDEO_MEMORY \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x011D, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x011E, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_SET_COLOR_LUT_DATA \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x011F, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_GET_CHILD_STATE \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0120, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_VALIDATE_CHILD_STATE_CONFIGURATION \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0121, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_SET_CHILD_STATE_CONFIGURATION \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0122, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_SWITCH_DUALVIEW \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0123, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_SET_BANK_POSITION \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0124, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_QUERY_SUPPORTED_BRIGHTNESS \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0125, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_QUERY_DISPLAY_BRIGHTNESS \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0126, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0127, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_FSVIDEO_COPY_FRAME_BUFFER \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_FSVIDEO_WRITE_TO_FRAME_BUFFER \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0201, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_FSVIDEO_REVERSE_MOUSE_POINTER \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0202, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_FSVIDEO_SET_CURRENT_MODE \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_FSVIDEO_SET_SCREEN_INFORMATION \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0204, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
#define IOCTL_FSVIDEO_SET_CURSOR_POSITION \
|
||
|
CTL_CODE( FILE_DEVICE_VIDEO, 0x0205, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
|
||
|
/* DirectX WIN32K parameter flags */
|
||
|
#define DXGK_WIN32K_PARAM_FLAG_UPDATEREGISTRY 1L
|
||
|
#define DXGK_WIN32K_PARAM_FLAG_MODESWITCH 2L
|
||
|
#define DXGK_WIN32K_PARAM_FLAG_DISABLEVIEW 4L
|
||
|
|
||
|
/* Video dual view flags */
|
||
|
#define VIDEO_DUALVIEW_REMOVABLE 0x00000001L
|
||
|
#define VIDEO_DUALVIEW_PRIMARY 0x80000000L
|
||
|
#define VIDEO_DUALVIEW_SECONDARY 0x40000000L
|
||
|
#define VIDEO_DUALVIEW_WDDM_VGA 0x20000000L
|
||
|
|
||
|
/* Video child flags */
|
||
|
#define VIDEO_CHILD_ACTIVE 0x00000001L
|
||
|
#define VIDEO_CHILD_DETACHED 0x00000002L
|
||
|
#define VIDEO_CHILD_NOPRUNE_FREQ 0x80000000L
|
||
|
#define VIDEO_CHILD_NOPRUNE_RESOLUTION 0x40000000L
|
||
|
|
||
|
/* Video state flags */
|
||
|
#define VIDEO_STATE_NON_STANDARD_VGA 0x00000001L
|
||
|
#define VIDEO_STATE_UNEMULATED_VGA_STATE 0x00000002L
|
||
|
#define VIDEO_STATE_PACKED_CHAIN4_MODE 0x00000004L
|
||
|
|
||
|
/* Video mode flags */
|
||
|
#define VIDEO_MODE_NO_ZERO_MEMORY 0x80000000L
|
||
|
#define VIDEO_MODE_MAP_MEM_LINEAR 0x40000000L
|
||
|
|
||
|
/* Video mode attribute flags */
|
||
|
#define VIDEO_MODE_COLOR 0x00000001L
|
||
|
#define VIDEO_MODE_GRAPHICS 0x00000002L
|
||
|
#define VIDEO_MODE_PALETTE_DRIVEN 0x00000004L
|
||
|
#define VIDEO_MODE_MANAGED_PALETTE 0x00000008L
|
||
|
#define VIDEO_MODE_INTERLACED 0x00000010L
|
||
|
#define VIDEO_MODE_NO_OFF_SCREEN 0x00000020L
|
||
|
#define VIDEO_MODE_NO_64_BIT_ACCESS 0x00000040L
|
||
|
#define VIDEO_MODE_BANKED 0x00000080L
|
||
|
#define VIDEO_MODE_LINEAR 0x00000100L
|
||
|
|
||
|
/* Video mode pointer flags */
|
||
|
#define VIDEO_MODE_ASYNC_POINTER 0x00000001L
|
||
|
#define VIDEO_MODE_MONO_POINTER 0x00000002L
|
||
|
#define VIDEO_MODE_COLOR_POINTER 0x00000004L
|
||
|
#define VIDEO_MODE_ANIMATE_START 0x00000008L
|
||
|
#define VIDEO_MODE_ANIMATE_UPDATE 0x00000010L
|
||
|
|
||
|
/* Banking flags */
|
||
|
#define PLANAR_HC 0x00000001L
|
||
|
|
||
|
/* Video color capability attribute flags */
|
||
|
#define VIDEO_DEVICE_COLOR 0x00000001L
|
||
|
#define VIDEO_OPTIONAL_GAMMET_TABLE 0x00000002L
|
||
|
|
||
|
/* Video color LUT data formats */
|
||
|
#define VIDEO_COLOR_LUT_DATA_FORMAT_RGB256WORDS 0x00000001L
|
||
|
#define VIDEO_COLOR_LUT_DATA_FORMAT_PRIVATEFORMAT 0x80000000L
|
||
|
|
||
|
/* Display policies */
|
||
|
#define DISPLAYPOLICY_AC 0x00000001L
|
||
|
#define DISPLAYPOLICY_DC 0x00000002L
|
||
|
#define DISPLAYPOLICY_BOTH (DISPLAYPOLICY_AC | DISPLAYPOLICY_DC)
|
||
|
|
||
|
/* Console character attributes */
|
||
|
#ifndef _WINCON_
|
||
|
#define FOREGROUND_BLUE 0x00000001L
|
||
|
#define FOREGROUND_GREEN 0x00000002L
|
||
|
#define FOREGROUND_RED 0x00000004L
|
||
|
#define FOREGROUND_INTENSITY 0x00000008L
|
||
|
#define BACKGROUND_BLUE 0x00000010L
|
||
|
#define BACKGROUND_GREEN 0x00000020L
|
||
|
#define BACKGROUND_RED 0x00000040L
|
||
|
#define BACKGROUND_INTENSITY 0x00000080L
|
||
|
#define COMMON_LVB_LEADING_BYTE 0x00000100L
|
||
|
#define COMMON_LVB_TRAILING_BYTE 0x00000200L
|
||
|
#define COMMON_LVB_GRID_HORIZONTAL 0x00000400L
|
||
|
#define COMMON_LVB_GRID_LVERTICAL 0x00000800L
|
||
|
#define COMMON_LVB_GRID_RVERTICAL 0x00001000L
|
||
|
#define COMMON_LVB_REVERSE_VIDEO 0x00004000L
|
||
|
#define COMMON_LVB_UNDERSCORE 0x00008000L
|
||
|
#define COMMON_LVB_SBCSDBCS 0x00000300L
|
||
|
#endif
|
||
|
|
||
|
/* Console character types */
|
||
|
#ifndef _WINCON_
|
||
|
#define CHAR_TYPE_SBCS 0
|
||
|
#define CHAR_TYPE_LEADING 2
|
||
|
#define CHAR_TYPE_TRAILING 3
|
||
|
#endif
|
||
|
|
||
|
/* Bitmap constants */
|
||
|
#ifndef _WINCON_
|
||
|
#define BITMAP_BITS_BYTE_ALIGN 8
|
||
|
#define BITMAP_BITS_WORD_ALIGN 16
|
||
|
#define BITMAP_ARRAY_BYTE 3
|
||
|
#define BITMAP_PLANES 1
|
||
|
#define BITMAP_BITS_PIXEL 1
|
||
|
#endif
|
||
|
|
||
|
/* Alignments */
|
||
|
#ifndef _WINCON_
|
||
|
#define BYTE_ALIGN sizeof( UCHAR )
|
||
|
#define WORD_ALIGN sizeof( USHORT )
|
||
|
#endif
|
||
|
|
||
|
/* Screen buffer pointer macro */
|
||
|
#define SCREEN_BUFFER_POINTER( p1, p2, p3, p4 ) ((((p3) * (p2)) + (p1)) * (ULONG)(p4))
|
||
|
|
||
|
/* Full screen video device name */
|
||
|
#define DD_FULLSCREEN_VIDEO_DEVICE_NAME L"\\Device\\FSVideo"
|
||
|
|
||
|
/* Video reason codes */
|
||
|
#define VIDEO_REASON_NONE 0
|
||
|
#define VIDEO_REASON_POLICY1 1
|
||
|
#define VIDEO_REASON_POLICY2 2
|
||
|
#define VIDEO_REASON_POLICY3 3
|
||
|
#define VIDEO_REASON_POLICY4 4
|
||
|
#define VIDEO_REASON_LOCK 5
|
||
|
#define VIDEO_REASON_FAILED_ROTATION 5
|
||
|
#define VIDEO_REASON_ALLOCATION 6
|
||
|
#define VIDEO_REASON_SCRATCH 8
|
||
|
#define VIDEO_REASON_CONFIGURATION 9
|
||
|
#define VIDEO_MAX_REASON VIDEO_REASON_CONFIGURATION
|
||
|
|
||
|
/* Video VDM */
|
||
|
typedef struct _VIDEO_VDM {
|
||
|
HANDLE ProcessHandle;
|
||
|
} VIDEO_VDM;
|
||
|
typedef VIDEO_VDM *PVIDEO_VDM;
|
||
|
|
||
|
/* Video register VDM */
|
||
|
typedef struct _VIDEO_REGISTER_VDM {
|
||
|
ULONG MinimumStateSize;
|
||
|
} VIDEO_REGISTER_VDM;
|
||
|
typedef VIDEO_REGISTER_VDM *PVIDEO_REGISTER_VDM;
|
||
|
|
||
|
/* Video monitor device */
|
||
|
typedef struct tagVIDEO_MONITOR_DEVICE {
|
||
|
ULONG flag;
|
||
|
HANDLE pdo;
|
||
|
ULONG HwID;
|
||
|
BOOLEAN Internal;
|
||
|
} VIDEO_MONITOR_DEVICE;
|
||
|
typedef VIDEO_MONITOR_DEVICE *PVIDEO_MONITOR_DEVICE;
|
||
|
|
||
|
/* Video monitor descriptor */
|
||
|
typedef struct tagVIDEO_MONITOR_DESCRIPTOR {
|
||
|
ULONG DescriptorSize;
|
||
|
UCHAR Descriptor[1];
|
||
|
} VIDEO_MONITOR_DESCRIPTOR;
|
||
|
typedef VIDEO_MONITOR_DESCRIPTOR *PVIDEO_MONITOR_DESCRIPTOR;
|
||
|
|
||
|
/* Video WIN32K callbacks parameters types */
|
||
|
typedef enum _VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE {
|
||
|
VideoPowerNotifyCallout = 1,
|
||
|
VideoDisplaySwitchCallout = 2,
|
||
|
VideoEnumChildPdoNotifyCallout = 3,
|
||
|
VideoFindAdapterCallout = 4,
|
||
|
VideoWakeupCallout = 5,
|
||
|
VideoChangeDisplaySettingsCallout = 6,
|
||
|
VideoPnpNotifyCallout = 7,
|
||
|
VideoDxgkDisplaySwitchCallout = 8,
|
||
|
VideoDxgkMonitorEventCallout = 9,
|
||
|
VideoDxgkFindAdapterTdrCallout = 10
|
||
|
} VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE;
|
||
|
|
||
|
/* DirectX WIN32K parameter data */
|
||
|
typedef struct _DXGK_WIN32K_PARAM_DATA {
|
||
|
PVOID PathsArray;
|
||
|
PVOID ModesArray;
|
||
|
ULONG NumPathArrayElements;
|
||
|
ULONG NumModeArrayElements;
|
||
|
ULONG SDCFlags;
|
||
|
} DXGK_WIN32K_PARAM_DATA;
|
||
|
typedef DXGK_WIN32K_PARAM_DATA *PDXGK_WIN32K_PARAM_DATA;
|
||
|
|
||
|
/* Video WIN32K callbacks parameters */
|
||
|
typedef struct _VIDEO_WIN32K_CALLBACKS_PARAMS {
|
||
|
VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE CalloutType;
|
||
|
PVOID PhysDisp;
|
||
|
ULONG_PTR Param;
|
||
|
LONG Status;
|
||
|
} VIDEO_WIN32K_CALLBACKS_PARAMS;
|
||
|
typedef VIDEO_WIN32K_CALLBACKS_PARAMS *PVIDEO_WIN32K_CALLBACKS_PARAMS;
|
||
|
|
||
|
/* Video WIN32K callout */
|
||
|
typedef VOID (NTAPI *PVIDEO_WIN32K_CALLOUT)( PVOID );
|
||
|
|
||
|
/* Video WIN32K callbacks */
|
||
|
typedef struct _VIDEO_WIN32K_CALLBACKS {
|
||
|
PVOID PhysDisp;
|
||
|
PVIDEO_WIN32K_CALLOUT Callout;
|
||
|
ULONG bACPI;
|
||
|
HANDLE pPhysDeviceObject;
|
||
|
ULONG DualviewFlags;
|
||
|
} VIDEO_WIN32K_CALLBACKS;
|
||
|
typedef VIDEO_WIN32K_CALLBACKS *PVIDEO_WIN32K_CALLBACKS;
|
||
|
|
||
|
/* Video device session status */
|
||
|
typedef struct _VIDEO_DEVICE_SESSION_STATUS {
|
||
|
ULONG bEnable;
|
||
|
ULONG bSuccess;
|
||
|
} VIDEO_DEVICE_SESSION_STATUS;
|
||
|
typedef VIDEO_DEVICE_SESSION_STATUS *PVIDEO_DEVICE_SESSION_STATUS;
|
||
|
|
||
|
/* Video hardware state header */
|
||
|
typedef 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;
|
||
|
typedef VIDEO_HARDWARE_STATE_HEADER *PVIDEO_HARDWARE_STATE_HEADER;
|
||
|
|
||
|
/* Video hardware state */
|
||
|
typedef struct _VIDEO_HARDWARE_STATE {
|
||
|
PVIDEO_HARDWARE_STATE_HEADER StateHeader;
|
||
|
ULONG StateLength;
|
||
|
} VIDEO_HARDWARE_STATE;
|
||
|
typedef VIDEO_HARDWARE_STATE *PVIDEO_HARDWARE_STATE;
|
||
|
|
||
|
/* Number of video modes */
|
||
|
typedef struct _VIDEO_NUM_MODES {
|
||
|
ULONG NumModes;
|
||
|
ULONG ModeInformationLength;
|
||
|
} VIDEO_NUM_MODES;
|
||
|
typedef VIDEO_NUM_MODES *PVIDEO_NUM_MODES;
|
||
|
|
||
|
/* Video mode */
|
||
|
typedef struct _VIDEO_MODE {
|
||
|
ULONG RequestedMode;
|
||
|
} VIDEO_MODE;
|
||
|
typedef VIDEO_MODE *PVIDEO_MODE;
|
||
|
|
||
|
/* Video mode information */
|
||
|
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;
|
||
|
typedef VIDEO_MODE_INFORMATION *PVIDEO_MODE_INFORMATION;
|
||
|
|
||
|
/* Video load font information */
|
||
|
typedef struct _VIDEO_LOAD_FONT_INFORMATION {
|
||
|
USHORT WidthInPixels;
|
||
|
USHORT HeightInPixels;
|
||
|
ULONG FontSize;
|
||
|
UCHAR Font[1];
|
||
|
} VIDEO_LOAD_FONT_INFORMATION;
|
||
|
typedef VIDEO_LOAD_FONT_INFORMATION *PVIDEO_LOAD_FONT_INFORMATION;
|
||
|
|
||
|
/* Video palette data */
|
||
|
typedef struct _VIDEO_PALETTE_DATA {
|
||
|
USHORT NumEntries;
|
||
|
USHORT FirstEntry;
|
||
|
USHORT Colors[1];
|
||
|
} VIDEO_PALETTE_DATA;
|
||
|
typedef VIDEO_PALETTE_DATA *PVIDEO_PALETTE_DATA;
|
||
|
|
||
|
/* Video color register data */
|
||
|
typedef struct _VIDEO_CLUTDATA {
|
||
|
UCHAR Red;
|
||
|
UCHAR Green;
|
||
|
UCHAR Blue;
|
||
|
UCHAR Unused;
|
||
|
} VIDEO_CLUTDATA;
|
||
|
typedef VIDEO_CLUTDATA *PVIDEO_CLUTDATA;
|
||
|
|
||
|
/* Video color registers */
|
||
|
typedef struct {
|
||
|
USHORT NumEntries;
|
||
|
USHORT FirstEntry;
|
||
|
union {
|
||
|
VIDEO_CLUTDATA RgbArray;
|
||
|
ULONG RgbLong;
|
||
|
} LookupTable[1];
|
||
|
} VIDEO_CLUT;
|
||
|
typedef VIDEO_CLUT *PVIDEO_CLUT;
|
||
|
|
||
|
/* Video cursor position */
|
||
|
typedef struct _VIDEO_CURSOR_POSITION {
|
||
|
SHORT Column;
|
||
|
SHORT Row;
|
||
|
} VIDEO_CURSOR_POSITION;
|
||
|
typedef VIDEO_CURSOR_POSITION *PVIDEO_CURSOR_POSITION;
|
||
|
|
||
|
/* Video cursor attributes */
|
||
|
typedef struct _VIDEO_CURSOR_ATTRIBUTES {
|
||
|
USHORT Width;
|
||
|
USHORT Height;
|
||
|
SHORT Column;
|
||
|
SHORT Row;
|
||
|
UCHAR Rate;
|
||
|
UCHAR Enable;
|
||
|
} VIDEO_CURSOR_ATTRIBUTES;
|
||
|
typedef VIDEO_CURSOR_ATTRIBUTES *PVIDEO_CURSOR_ATTRIBUTES;
|
||
|
|
||
|
/* Video pointer position */
|
||
|
typedef struct _VIDEO_POINTER_POSITION {
|
||
|
SHORT Column;
|
||
|
SHORT Row;
|
||
|
} VIDEO_POINTER_POSITION;
|
||
|
typedef VIDEO_POINTER_POSITION *PVIDEO_POINTER_POSITION;
|
||
|
|
||
|
/* Video pointer attributes */
|
||
|
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;
|
||
|
typedef VIDEO_POINTER_ATTRIBUTES *PVIDEO_POINTER_ATTRIBUTES;
|
||
|
|
||
|
/* Video pointer capabilities */
|
||
|
typedef struct _VIDEO_POINTER_CAPABILITIES {
|
||
|
ULONG Flags;
|
||
|
ULONG MaxWidth;
|
||
|
ULONG MaxHeight;
|
||
|
ULONG HWPtrBitmapStart;
|
||
|
ULONG HWPtrBitmapEnd;
|
||
|
} VIDEO_POINTER_CAPABILITIES;
|
||
|
typedef VIDEO_POINTER_CAPABILITIES *PVIDEO_POINTER_CAPABILITIES;
|
||
|
|
||
|
/* Video bank select */
|
||
|
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;
|
||
|
typedef VIDEO_BANK_SELECT *PVIDEO_BANK_SELECT;
|
||
|
|
||
|
/* Video bank types */
|
||
|
typedef enum _VIDEO_BANK_TYPE {
|
||
|
VideoNotBanked = 0,
|
||
|
VideoBanked1RW = 1,
|
||
|
VideoBanked1R1W = 2,
|
||
|
VideoBanked2RW = 3,
|
||
|
NumVideoBankTypes = 4
|
||
|
} VIDEO_BANK_TYPE;
|
||
|
typedef VIDEO_BANK_TYPE *PVIDEO_BANK_TYPE;
|
||
|
|
||
|
/* Video memory */
|
||
|
typedef struct _VIDEO_MEMORY {
|
||
|
PVOID RequestedVirtualAddress;
|
||
|
} VIDEO_MEMORY;
|
||
|
typedef VIDEO_MEMORY *PVIDEO_MEMORY;
|
||
|
|
||
|
/* Video share memory */
|
||
|
typedef struct _VIDEO_SHARE_MEMORY {
|
||
|
HANDLE ProcessHandle;
|
||
|
ULONG ViewOffset;
|
||
|
ULONG ViewSize;
|
||
|
PVOID RequestedVirtualAddress;
|
||
|
} VIDEO_SHARE_MEMORY;
|
||
|
typedef VIDEO_SHARE_MEMORY *PVIDEO_SHARE_MEMORY;
|
||
|
|
||
|
/* Video share memory information */
|
||
|
typedef struct _VIDEO_SHARE_MEMORY_INFORMATION {
|
||
|
ULONG SharedViewOffset;
|
||
|
ULONG SharedViewSize;
|
||
|
PVOID VirtualAddress;
|
||
|
} VIDEO_SHARE_MEMORY_INFORMATION;
|
||
|
typedef VIDEO_SHARE_MEMORY_INFORMATION *PVIDEO_SHARE_MEMORY_INFORMATION;
|
||
|
|
||
|
/* Video memory information */
|
||
|
typedef struct _VIDEO_MEMORY_INFORMATION {
|
||
|
PVOID VideoRamBase;
|
||
|
ULONG VideoRamLength;
|
||
|
PVOID FrameBufferBase;
|
||
|
ULONG FrameBufferLength;
|
||
|
} VIDEO_MEMORY_INFORMATION;
|
||
|
typedef VIDEO_MEMORY_INFORMATION *PVIDEO_MEMORY_INFORMATION;
|
||
|
|
||
|
/* Video public access ranges */
|
||
|
typedef struct _VIDEO_PUBLIC_ACCESS_RANGES {
|
||
|
ULONG InIoSpace;
|
||
|
ULONG MappedInIoSpace;
|
||
|
PVOID VirtualAddress;
|
||
|
} VIDEO_PUBLIC_ACCESS_RANGES;
|
||
|
typedef VIDEO_PUBLIC_ACCESS_RANGES *PVIDEO_PUBLIC_ACCESS_RANGES;
|
||
|
|
||
|
/* Video color capabilities */
|
||
|
typedef 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;
|
||
|
typedef VIDEO_COLOR_CAPABILITIES *PVIDEO_COLOR_CAPABILITIES;
|
||
|
|
||
|
/* Video power states */
|
||
|
typedef enum _VIDEO_POWER_STATE {
|
||
|
VideoPowerUnspecified = 0,
|
||
|
VideoPowerOn = 1,
|
||
|
VideoPowerStandBy = 2,
|
||
|
VideoPowerSuspend = 3,
|
||
|
VideoPowerOff = 4,
|
||
|
VideoPowerHibernate = 5,
|
||
|
VideoPowerShutdown = 6,
|
||
|
VideoPowerMaximum = 7
|
||
|
} VIDEO_POWER_STATE;
|
||
|
typedef VIDEO_POWER_STATE *PVIDEO_POWER_STATE;
|
||
|
|
||
|
/* Video power management */
|
||
|
typedef struct _VIDEO_POWER_MANAGEMENT {
|
||
|
ULONG Length;
|
||
|
ULONG DPMSVersion;
|
||
|
ULONG PowerState;
|
||
|
} VIDEO_POWER_MANAGEMENT;
|
||
|
typedef VIDEO_POWER_MANAGEMENT *PVIDEO_POWER_MANAGEMENT;
|
||
|
|
||
|
/* Video color LUT data */
|
||
|
typedef struct _VIDEO_COLOR_LUT_DATA {
|
||
|
ULONG Length;
|
||
|
ULONG LutDataFormat;
|
||
|
UCHAR LutData[1];
|
||
|
} VIDEO_COLOR_LUT_DATA;
|
||
|
typedef VIDEO_COLOR_LUT_DATA *PVIDEO_COLOR_LUT_DATA;
|
||
|
|
||
|
/* Video LUT RGB 256 words */
|
||
|
typedef struct _VIDEO_LUT_RGB256WORDS {
|
||
|
USHORT Red[256];
|
||
|
USHORT Green[256];
|
||
|
USHORT Blue[256];
|
||
|
} VIDEO_LUT_RGB256WORDS;
|
||
|
typedef VIDEO_LUT_RGB256WORDS *PVIDEO_LUT_RGB256WORDS;
|
||
|
|
||
|
/* Bank position */
|
||
|
typedef struct _BANK_POSITION {
|
||
|
ULONG ReadBankPosition;
|
||
|
ULONG WriteBankPosition;
|
||
|
} BANK_POSITION;
|
||
|
typedef BANK_POSITION *PBANK_POSITION;
|
||
|
|
||
|
/* Display brightness */
|
||
|
typedef struct _DISPLAY_BRIGHTNESS {
|
||
|
UCHAR ucDisplayPolicy;
|
||
|
UCHAR ucACBrightness;
|
||
|
UCHAR ucDCBrightness;
|
||
|
} DISPLAY_BRIGHTNESS;
|
||
|
typedef DISPLAY_BRIGHTNESS *PDISPLAY_BRIGHTNESS;
|
||
|
|
||
|
/* Video brightness policy */
|
||
|
typedef struct {
|
||
|
BOOLEAN DefaultToBiosPolicy;
|
||
|
UCHAR LevelCount;
|
||
|
struct {
|
||
|
UCHAR BatteryLevel;
|
||
|
UCHAR Brightness;
|
||
|
} Level[1];
|
||
|
} VIDEO_BRIGHTNESS_POLICY;
|
||
|
typedef VIDEO_BRIGHTNESS_POLICY *PVIDEO_BRIGHTNESS_POLICY;
|
||
|
|
||
|
/* Coordinate for use with the console */
|
||
|
#ifndef _WINCON_
|
||
|
typedef struct _COORD {
|
||
|
SHORT X;
|
||
|
SHORT Y;
|
||
|
} COORD;
|
||
|
typedef COORD *PCOORD;
|
||
|
#endif
|
||
|
|
||
|
/* Console character information */
|
||
|
#ifndef _WINCON_
|
||
|
typedef struct _CHAR_INFO {
|
||
|
union {
|
||
|
WCHAR UnicodeChar;
|
||
|
CHAR AsciiChar;
|
||
|
} Char;
|
||
|
USHORT Attributes;
|
||
|
} CHAR_INFO;
|
||
|
typedef CHAR_INFO *PCHAR_INFO;
|
||
|
#endif
|
||
|
|
||
|
/* Screen information */
|
||
|
typedef struct _FSCNTL_SCREEN_INFO {
|
||
|
COORD Position;
|
||
|
COORD ScreenSize;
|
||
|
ULONG nNumberOfChars;
|
||
|
} FSCNTL_SCREEN_INFO;
|
||
|
typedef FSCNTL_SCREEN_INFO *PFSCNTL_SCREEN_INFO;
|
||
|
|
||
|
/* Font image information */
|
||
|
typedef struct _FONT_IMAGE_INFO {
|
||
|
COORD FontSize;
|
||
|
PUCHAR ImageBits;
|
||
|
} FONT_IMAGE_INFO;
|
||
|
typedef FONT_IMAGE_INFO *PFONT_IMAGE_INFO;
|
||
|
|
||
|
/* Character image information */
|
||
|
typedef struct _CHAR_IMAGE_INFO {
|
||
|
CHAR_INFO CharInfo;
|
||
|
FONT_IMAGE_INFO FontImageInfo;
|
||
|
} CHAR_IMAGE_INFO;
|
||
|
typedef CHAR_IMAGE_INFO *PCHAR_IMAGE_INFO;
|
||
|
|
||
|
/* VGA character */
|
||
|
typedef struct _VGA_CHAR {
|
||
|
CHAR Char;
|
||
|
CHAR Attributes;
|
||
|
} VGA_CHAR;
|
||
|
typedef VGA_CHAR *PVGA_CHAR;
|
||
|
|
||
|
/* IOCTL_FSVIDEO_COPY_FRAME_BUFFER parameters */
|
||
|
typedef struct _FSVIDEO_COPY_FRAME_BUFFER {
|
||
|
FSCNTL_SCREEN_INFO SrcScreen;
|
||
|
FSCNTL_SCREEN_INFO DestScreen;
|
||
|
} FSVIDEO_COPY_FRAME_BUFFER;
|
||
|
typedef FSVIDEO_COPY_FRAME_BUFFER *PFSVIDEO_COPY_FRAME_BUFFER;
|
||
|
|
||
|
/* IOCTL_FSVIDEO_WRITE_TO_FRAME_BUFFER parameters */
|
||
|
typedef struct _FSVIDEO_WRITE_TO_FRAME_BUFFER {
|
||
|
PCHAR_IMAGE_INFO SrcBuffer;
|
||
|
FSCNTL_SCREEN_INFO DestScreen;
|
||
|
} FSVIDEO_WRITE_TO_FRAME_BUFFER;
|
||
|
typedef FSVIDEO_WRITE_TO_FRAME_BUFFER *PFSVIDEO_WRITE_TO_FRAME_BUFFER;
|
||
|
|
||
|
/* IOCTL_FSVIDEO_REVERSE_MOUSE_POINTER parameters */
|
||
|
typedef struct _FSVIDEO_REVERSE_MOUSE_POINTER {
|
||
|
FSCNTL_SCREEN_INFO Screen;
|
||
|
ULONG dwType;
|
||
|
} FSVIDEO_REVERSE_MOUSE_POINTER;
|
||
|
typedef FSVIDEO_REVERSE_MOUSE_POINTER *PFSVIDEO_REVERSE_MOUSE_POINTER;
|
||
|
|
||
|
/* Full screen video mode information */
|
||
|
typedef struct _FSVIDEO_MODE_INFORMATION {
|
||
|
VIDEO_MODE_INFORMATION VideoMode;
|
||
|
VIDEO_MEMORY_INFORMATION VideoMemory;
|
||
|
} FSVIDEO_MODE_INFORMATION;
|
||
|
typedef FSVIDEO_MODE_INFORMATION *PFSVIDEO_MODE_INFORMATION;
|
||
|
|
||
|
/* Full screen video screen information */
|
||
|
typedef struct _FSVIDEO_SCREEN_INFORMATION {
|
||
|
COORD ScreenSize;
|
||
|
COORD FontSize;
|
||
|
} FSVIDEO_SCREEN_INFORMATION;
|
||
|
typedef FSVIDEO_SCREEN_INFORMATION *PFSVIDEO_SCREEN_INFORMATION;
|
||
|
|
||
|
/* Full screen video cursor position */
|
||
|
typedef struct _FSVIDEO_CURSOR_POSITION {
|
||
|
VIDEO_CURSOR_POSITION Coord;
|
||
|
ULONG dwType;
|
||
|
} FSVIDEO_CURSOR_POSITION;
|
||
|
typedef FSVIDEO_CURSOR_POSITION *PFSVIDEO_CURSOR_POSITION;
|
||
|
|
||
|
/* Event */
|
||
|
typedef struct _ENG_EVENT {
|
||
|
PVOID pKEvent;
|
||
|
ULONG fFlags;
|
||
|
} ENG_EVENT;
|
||
|
typedef ENG_EVENT *PENG_EVENT;
|
||
|
typedef ENG_EVENT *PEVENT;
|
||
|
|
||
|
/* Video performance counter */
|
||
|
typedef struct _VIDEO_PERFORMANCE_COUNTER {
|
||
|
UINT64 NbOfAllocationEvicted[VIDEO_MAX_REASON + 1];
|
||
|
UINT64 NbOfAllocationMarked[VIDEO_MAX_REASON + 1];
|
||
|
UINT64 NbOfAllocationRestored[VIDEO_MAX_REASON + 1];
|
||
|
UINT64 KBytesEvicted[VIDEO_MAX_REASON + 1];
|
||
|
UINT64 KBytesMarked[VIDEO_MAX_REASON + 1];
|
||
|
UINT64 KBytesRestored[VIDEO_MAX_REASON + 1];
|
||
|
UINT64 NbProcessCommited;
|
||
|
UINT64 NbAllocationCommited;
|
||
|
UINT64 NbAllocationMarked;
|
||
|
UINT64 KBytesAllocated;
|
||
|
UINT64 KBytesAvailable;
|
||
|
UINT64 KBytesCurMarked;
|
||
|
UINT64 Reference;
|
||
|
UINT64 Unreference;
|
||
|
UINT64 TrueReference;
|
||
|
UINT64 NbOfPageIn;
|
||
|
UINT64 KBytesPageIn;
|
||
|
UINT64 NbOfPageOut;
|
||
|
UINT64 KBytesPageOut;
|
||
|
UINT64 NbOfRotateOut;
|
||
|
UINT64 KBytesRotateOut;
|
||
|
} VIDEO_PERFORMANCE_COUNTER;
|
||
|
typedef VIDEO_PERFORMANCE_COUNTER *PVIDEO_PERFORMANCE_COUNTER;
|
||
|
|
||
|
/* Video query performance counter */
|
||
|
typedef struct _VIDEO_QUERY_PERFORMANCE_COUNTER {
|
||
|
ULONG BufferSize;
|
||
|
PVIDEO_PERFORMANCE_COUNTER Buffer;
|
||
|
} VIDEO_QUERY_PERFORMANCE_COUNTER;
|
||
|
typedef VIDEO_QUERY_PERFORMANCE_COUNTER *PVIDEO_QUERY_PERFORMANCE_COUNTER;
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
} /* extern "C" */
|
||
|
#endif
|
||
|
|
||
|
#endif /* _NTDDVDEO_ */
|