Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > не работает драйвер


Автор: 0x00 7.5.2008, 22:21
вот такая проблема возникла..

есть такой код:

Код

NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject, PUNICODE_STRING pRegistryPath){
    UNICODE_STRING usDriverName, usDosDeviceName;
    PDEVICE_OBJECT pDeviceObject;
    NTSTATUS ntStatus;
    UINT uiIndex;

    RtlInitUnicodeString(&usDriverName, L"\\Device\\Dev1");
    RtlInitUnicodeString(&usDosDeviceName, L"\\DosDevices\\Dev1"); 
    DbgMsg("in driverentry\n");
    
    ntStatus = IoCreateDevice(pDriverObject, 0, &usDriverName, FILE_DEVICE_UNKNOWN, FILE_DEVICE_SECURE_OPEN, FALSE, &pDeviceObject);
    if(NT_SUCCESS(ntStatus)){
        DbgMsg("io create device ret nt_success\n");
        for(uiIndex = 0; uiIndex < IRP_MJ_MAXIMUM_FUNCTION; uiIndex++)
            pDriverObject->MajorFunction[uiIndex]    = Unsupported;
        pDriverObject->MajorFunction[IRP_MJ_CREATE]    = Create;
        pDriverObject->MajorFunction[IRP_MJ_WRITE]    = Write;
        pDriverObject->MajorFunction[IRP_MJ_CLOSE]    = Close;
        pDriverObject->DriverUnload            = Unload; 
        pDeviceObject->Flags |= DO_DIRECT_IO;
        pDeviceObject->Flags &= (~DO_DEVICE_INITIALIZING);
        IoCreateSymbolicLink(&usDosDeviceName, &usDriverName);
    }else{
DbgMsg("io create device ret error\n");
}
    
    return ntStatus;
}


в windows XP все работает прекрасно, в windows 2003 не срабатывает, IoCreateDevice возвращяет не NT_SUCCESS
никто не сталкивался с такой проблемой?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)