ioctl.cpp
来自「IO函数调用测试」· C++ 代码 · 共 57 行
CPP
57 行
#include "stdafx.h"
#include "ioctl.h"
/****************************************************************************
* IOCTL::display
* Result: CString
* A displayable IOCTL string
*
* CTL_CODE(DeviceType, function, METHOD_BUFFERED, FILE_ANY_ACCESS )
* METHOD_IN_DIRECT, FILE_READ_ACCESS )
* METHOD_OUT_DIRECT, FILE_WRITE_ACCESS)
* METHOD_NEITHER, ---- )
*
* 31 16 1514 13 2 1 0
* +--------------------------------+----+------------------------+----+
* | DeviceType |Acce| Function |Meth|
* +--------------------------------+----+------------------------+----+
* 16 bits 2bits 12 bits 2bits
****************************************************************************/
CString IOCTL::display()
{
CString s;
if(!valid)
return s;
LPCTSTR method[] = {
_T("METHOD_BUFFERED"),
_T("METHOD_IN_DIRECT"),
_T("METHOD_OUT_DIRECT"),
_T("METHOD_NEITHER")};
LPCTSTR access[] = {
_T("FILE_ANY_ACCESS"),
_T("FILE_READ_ACCESS"),
_T("FILE_WRITE_ACCESS"),
_T("FILE_READ_ACCESS | FILE_WRITE_ACCESS")
};
WORD devtype = (WORD)((code >> 16) & 0xFFFF);
CString user;
if(devtype & 0x8000)
{ /* user-defined */
devtype &= ~0x8000;
user = _T(" | 0x8000");
} /* user-defined */
s.Format(_T("CTL_CODE(%d%s, %d, %s, %s)"),
devtype,
user,
(code >> 2) & 0x0FFF,
method[ (code & 3)],
access[ (code >> 14) & 3]);
return s;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?