вот такая проблема возникла..
есть такой код:
Код | 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 никто не сталкивался с такой проблемой? |