-
-
[旧帖]
[求助]搞了12小时 还是打不开设备 求指点
0.00雪花
-
发表于:
2011-2-14 04:11
1096
-
[旧帖] [求助]搞了12小时 还是打不开设备 求指点
0.00雪花
//定义一个函数用于打开驱动已成功创建的设备
void OpenDriverHandle()
{
HANDLE hDevice;
hDevice=CreateFile(L"\\\\.\\MyDeviceLinkName",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (hDevice==INVALID_HANDLE_VALUE)
{
TRACE("GetLastError 错误码:%d\n",GetLastError());
CloseHandle(hDevice);
}
//干别的事情```
}
//以下是驱动里创建设备的代码
NTSTATUS CreateDevice(IN PDRIVER_OBJECT driver)
{
NTSTATUS status;
UNICODE_STRING devName;
RtlInitUnicodeString(&devName,L"\\Device\\MyDDK_Device");
PDEVICE_OBJECT pDevObj;
status=IoCreateDevice(driver,0,&devName,FILE_DEVICE_UNKNOWN,0,true,&pDevObj);
if (!NT_SUCCESS(status))
{
KdPrint(("设备创建失败"));
return status;
}
//设置设备为缓冲模式
pDevObj->Flags |= DO_BUFFERED_IO;
KdPrint(("设备创建成功"));
UNICODE_STRING symLinkName;
RtlInitUnicodeString(&symLinkName,L"\\??\\MyDeviceLinkName");
status=IoCreateSymbolicLink(&symLinkName,&devName);
if (!NT_SUCCESS(status))
{
IoDeleteDevice(pDevObj);
return status;
}
KdPrint(("创建符号连接成功"));
return STATUS_SUCCESS;
}
求解为何打不开设备?
CreateFile()返回INVALID_HANDLE_VALUE
而GetLastError()返回 1
查了下百度 GetLastError()返回1代表功能错误``啥意思
明天再看了``
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)