首页
社区
课程
招聘
[旧帖] [求助][求助]设备和设备链接都创建成功,但是在应用层CreateFile失败,GetlastErr返回1 0.00雪花
2013-8-11 14:09 1733

[旧帖] [求助][求助]设备和设备链接都创建成功,但是在应用层CreateFile失败,GetlastErr返回1 0.00雪花

2013-8-11 14:09
1733
附上驱动创建设备的源码

NTSTATUS CreateDevice(PDRIVER_OBJECT pDriver)
{
    NTSTATUS status = STATUS_SUCCESS;
    UNICODE_STRING strLinkName;
    PDEVICE_OBJECT pDevice = NULL;
    PDEVICE_EXTENSION pDeviceExtension = NULL;
    UNICODE_STRING strDeviceName;
    RtlInitUnicodeString(&strDeviceName, L"\\Device\\FileToolDevice");

    status = IoCreateDevice(pDriver, 
        sizeof(DEVICE_EXTENSION), 
        &strDeviceName, 
        FILE_DEVICE_UNKNOWN, 
        0, 
        FALSE, 
        &pDevice);

    if (!NT_SUCCESS(status))
    {
        return status;
    }
    KdPrint(("Create Device Succ!\n"));
    pDevice->Flags |= DO_BUFFERED_IO;
    pDevice->Flags &= ~DO_DEVICE_INITIALIZING;
    pDeviceExtension = (PDEVICE_EXTENSION)pDevice->DeviceExtension;
    pDeviceExtension->pDevice = pDevice;
    pDeviceExtension->ustrDeviceName = strDeviceName;
    pDeviceExtension->ulHideNum = 0;
    pDeviceExtension->ulProtectNum = 0;
    
    RtlInitUnicodeString(&strLinkName, L"\\??\\FileTool");
    pDeviceExtension->ustrSymLinkName = strLinkName;
    status = IoCreateSymbolicLink(&strLinkName, &strDeviceName);

    if (!NT_SUCCESS(status))
    {
        KdPrint(("IoCreateSymbolicLink Err\n"));
        IoDeleteDevice(pDevice);
        return status;
    }
    ///> 这里能成功打印
    KdPrint(("Create IoCreateSymbolicLink Succ!\n"));
    return STATUS_SUCCESS;
    
}

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (1)
雪    币: 44
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lingyuner 2013-8-12 10:36
2
0
额额 偶瞅瞅
游客
登录 | 注册 方可回帖
返回