阅读:1258回复:0
请问:diskperf中创建的符号链接的问题
各位大侠:
我在diskperf中参考filedisk的代码,在startdevice的时候根据磁盘扇区的个数创建设备,设备都创建成功,符号链接也没有问题。而应用层在createfile的时候却一直失败,错误代码2,也就是系统找不到指定文件。请大侠们帮我看看代码。 swprintf(device_name_buffer,DEVICE_NAME_PREFIX L"%u",Number); RtlInitUnicodeString(&device_name, device_name_buffer); status = IoCreateDevice(DriverObject,sizeof(DEVICE_EXTENSION),&device_name,FILE_DEVICE_DISK,0,FALSE,&device_object); if (!NT_SUCCESS(status)) { return status; } device_object->Flags |= DO_DIRECT_IO; device_extension = (PDEVICE_EXTENSION) device_object->DeviceExtension; device_extension->media_in_device = FALSE; InitializeListHead(&device_extension->list_head); KeInitializeSpinLock(&device_extension->list_lock); KeInitializeEvent(&device_extension->request_event,SynchronizationEvent,FALSE); device_extension->terminate_thread = FALSE; 这是驱动中创建的设备。 char VolumeName[] = "\\\\.\\i:"; char DeviceName[255]; memset(DeviceName,0,255); DWORD DeviceNumber = 0; wsprintf(DeviceName, DEVICE_NAME_PREFIX "%u", DeviceNumber); if (!DefineDosDevice( DDD_RAW_TARGET_PATH, &VolumeName[4], DeviceName )) { //PrintLastError(&VolumeName[4]); DWORD dwErrWin32 = GetLastError(); return ; } HANDLE device = CreateFile( VolumeName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, NULL, NULL ); 这是在应用程序中。代码都是从filedisk中得来的。但是为什么filedisk能createfile成功,而代码移植到diskperf却不行了呢? |
|