📄 ctlcode.h
字号:
// ctlcode.h
//
// Define control codes for PMDGen1 driver
//
#ifndef __ctlcode__h_
#define __ctlcode__h_
///////////////////////////////////////////////////////////////////////
// CTL_CODE macro
#ifndef CTL_CODE
#define FILE_DEVICE_UNKNOWN 0x00000022
#define METHOD_BUFFERED 0
#define METHOD_IN_DIRECT 1
#define METHOD_OUT_DIRECT 2
#define METHOD_NEITHER 3
#define FILE_ANY_ACCESS 0
#define CTL_CODE( DeviceType, Function, Method, Access ) ( \
((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \
)
#endif // ifndef CTL_CODE
#define PMDGEN1_IOCTL_RESET CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PMDGEN1_IOCTL_SETUP_SIGNAL CTL_CODE(FILE_DEVICE_UNKNOWN, 0x801, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PMDGEN1_IOCTL_CHECK_READY CTL_CODE(FILE_DEVICE_UNKNOWN, 0x802, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PMDGEN1_IOCTL_CHECK_INTERRUPT CTL_CODE(FILE_DEVICE_UNKNOWN, 0x803, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PMDGEN1_IOCTL_GENERIC_COMMAND CTL_CODE(FILE_DEVICE_UNKNOWN, 0x804, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PMDGEN1_IOCTL_GENERIC_DATA CTL_CODE(FILE_DEVICE_UNKNOWN, 0x805, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PMDGEN1_IOCTL_SET_MODE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x806, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PMDGEN1_IOCTL_GET_ERR_CODE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x807, METHOD_BUFFERED, FILE_ANY_ACCESS)
/* error codes returned by the driver */
#define PMDERR_OK 0 // no error
#define PMDERR_BAD_DRVR_CMD 1 // unknown driver command
#define PMDERR_MISSING_DATA 2 // not enough data passed
#define PMDERR_OUT_BUFF_LEN 3 // output buffer not large enough
#define PMDERR_CKSUM 4 // checksum error
#define PMDERR_TIMEOUT 5 // timeout waiting on ready
#define PMDERR_ERRBIT 6 // Error bit set in status register
#define PMDERR_BAD_MODE 7 // Bad mode command code
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -