📄 dvdcom.h
字号:
#ifndef DVDCOM_H_
#define DVDCOM_H_
#undef WIN95ONLY
//***Ring 3 talk through this DEVCTRL in WIN95ONLY mode
#ifdef WIN95ONLY
#define IDEVXD_VERSION 1
#define IDEVXD_GETPHYSFROMLINEAR 2
#define IDEVXD_MAPANDGETLINEARFROMPHYSICAL 3
#define IDEVXD_SENDIDECOMMAND 4
#define IDEVXD_READIDEBUFFER 5
#define IDEVXD_GETDVDDRIVESTATUS 6
#define IDEVXD_ISDRIVEOPEN 7
#else //WIN95ONLY Else the unify version of kernel drivers
#define FILE_DEVICE_IDECTRL 0x00008111
#define IDECTRL_IOCTL_INDEX 0x00000811
#define IDEVXD_VERSION CTL_CODE(FILE_DEVICE_IDECTRL,\
IDECTRL_IOCTL_INDEX,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IDEVXD_GETPHYSFROMLINEAR CTL_CODE(FILE_DEVICE_IDECTRL, \
IDECTRL_IOCTL_INDEX+1,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IDEVXD_MAPANDGETLINEARFROMPHYSICAL CTL_CODE(FILE_DEVICE_IDECTRL, \
IDECTRL_IOCTL_INDEX+2,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IDEVXD_SENDIDECOMMAND CTL_CODE(FILE_DEVICE_IDECTRL, \
IDECTRL_IOCTL_INDEX+3,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IDEVXD_READIDEBUFFER CTL_CODE(FILE_DEVICE_IDECTRL, \
IDECTRL_IOCTL_INDEX+4,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IDEVXD_GETDVDDRIVESTATUS CTL_CODE(FILE_DEVICE_IDECTRL, \
IDECTRL_IOCTL_INDEX+5,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IDEVXD_ISDRIVEOPEN CTL_CODE(FILE_DEVICE_IDECTRL, \
IDECTRL_IOCTL_INDEX+6,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IDEVXD_MAPUSERTOPHYS CTL_CODE(FILE_DEVICE_IDECTRL, \
IDECTRL_IOCTL_INDEX+7,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#endif //WIN95ONLY
//***Error Codes
#define ERR_UNSUPPORTED_DVD_DRIVE 0x00000001
#define ERR_NO_DVDROM_DRIVE 0x00000002
#define ERR_NO_DVD_DISK 0x00000004
#define ERR_DVD_DRIVE_OPEN 0x00000008
#define ERR_NO_KERNEL_DRIVER 0x00000010
#define ERR_UNKNOWN 0x00000020
//***This is for the release version of 1.00 that supported Creative Drive
//***and Hitachi Drive. Note the upper define is for older software that
//***using the software authentication.
#define ERROR_NONE 0x0
#define ERROR_NOAUTHREQUIRE 0x1
#define ERROR_NODVDDISK 0x2
#define ERROR_DRIVEOPEN 0x4
#define ERROR_UNSUPPORTED_DRIVE 0x8
#define ERROR_NO_KERNEL_DRIVER 0x10
#define ERROR_UNKNOWN 0x80
typedef struct tagSENDDEVICEBUFFER
{
unsigned short *pwCommandBuffer; //***Always 6 words length
unsigned short *pwDataBuffer; //***Variable length
unsigned long dwDataBufferSize; //***Data Buffer size in words
unsigned long dwReserved;
}SENDDEVICEBUFFER, *PSENDDEVICEBUFFER;
typedef struct tagREADDEVICEBUFFER
{
unsigned short *pwDataBuffer;
unsigned long dwDataBufferSize;
unsigned long dwReserved;
}READDEVICEBUFFER, *PREADDEVICEBUFFER;
typedef struct tagAUTHSTR
{
unsigned char EDK[5];
unsigned char ERDK[5];
unsigned char TK[5];
unsigned long dwErrorCode;
}AUTHSTR, *PAUTHSTR;
#endif //DVDCOM_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -