DeviceIoControl函數的調用方式如下:
HANDLE hDevice = CreateFile(
L"\\\\.\\DeviceName", // 設備名或文件名
GENERIC_READ | GENERIC_WRITE, // 訪問權限
FILE_SHARE_READ | FILE_SHARE_WRITE, // 共享模式
NULL, // 安全屬性
OPEN_EXISTING, // 打開方式
FILE_ATTRIBUTE_NORMAL, // 文件屬性
NULL // 模板句柄
);
DWORD dwBytesReturned; // 用于接收返回的字節數
BYTE* lpInBuffer = NULL; // 輸入緩沖區
DWORD nInBufferSize = 0; // 輸入緩沖區大小
BYTE* lpOutBuffer = NULL; // 輸出緩沖區
DWORD nOutBufferSize = 0; // 輸出緩沖區大小
BOOL bResult = DeviceIoControl(
hDevice, // 設備句柄
dwIoControlCode, // 控制碼
lpInBuffer, // 輸入緩沖區
nInBufferSize, // 輸入緩沖區大小
lpOutBuffer, // 輸出緩沖區
nOutBufferSize, // 輸出緩沖區大小
&dwBytesReturned, // 實際返回的字節數
NULL // 重疊操作
);
if (bResult)
{
// 操作成功
}
else
{
// 操作失敗,可以使用GetLastError函數獲取錯誤碼
DWORD dwError = GetLastError();
}
CloseHandle(hDevice);
請注意,以上代碼僅為示例,實際使用時需要根據具體的設備或文件進行調整。