gpt4 book ai didi

c++ - 带有输入无符号字符缓冲区 C++ 的 DeviceIoControl

转载 作者:行者123 更新时间:2023-11-28 03:30:11 25 4
gpt4 key购买 nike

我在使用 DeviceIOControl 将 128 字节缓冲区放入我的驱动程序时遇到问题,我使用此代码:

int Initialize(unsigned char* public_signature, int size)
{
int ret = DeviceIoControl(
DeviceFileHandle,
2236440,
public_signature,
size,
NULL,
0,
NULL,
NULL);



if(ret != 0)
return 0;

wprintf(L"Format message failed with 0x%x\n", GetLastError()); // always error 0x6!

return 1;

}

我总是收到 0x6 错误,我做错了什么?

更新我的句柄创建函数:

int CreateFileHandle()
{
DeviceFileHandle = CreateFile( L"\Device\test",
GENERIC_WRITE,
GENERIC_READ | GENERIC_WRITE,
NULL,
OPEN_EXISTING,
0,
0);
if(DeviceFileHandle)
return 0;
return 1;
}

最佳答案

错误在 CreateFile 的第一个参数中。在您的示例中,它会尝试打开文件,而不是设备。此外,您没有转义字符串中的反斜杠。 \t 和类似的字符在 C++ 中被解释为特殊字符。

设备名称应该是 "\\\\.\\Device\\test"

关于c++ - 带有输入无符号字符缓冲区 C++ 的 DeviceIoControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12800738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com