IoGetDeviceObjectPointer возвр STATUS_OBJECT_TYPE_MISMATCH
От: latemic Украина  
Дата: 24.11.05 17:42
Оценка:
Привет
Подскажите почему IoGetDeviceObjectPointer не выполняется корректно при попытке получить объект драйвера файловой системы FAT? Может надо как-то по-другому его получать?
UNICODE_STRING usFatDriverObj;
PFILE_OBJECT lpFileObject;
PDEVICE_OBJECT lpDeviceObject;
    
//InitializeObjectAttributes( &ObjectAttributes, &usFatDriverObj, OBJ_CASE_INSENSITIVE, NULL, NULL);
//status = ObReferenceObjectByName(&usFatDriverObj, OBJ_CASE_INSENSITIVE, NULL, 0, *IoDeviceObjectType,
//    KernelMode, NULL, &lpDeviceObject);
RtlInitUnicodeString(&usFatDriverObj, L"\\FileSystem\\Fastfat");
status = IoGetDeviceObjectPointer(
        &usFatDriverObj,               //ObjectName
        FILE_READ_DATA,                //DesiredAccess
        &lpFileObject,                 //FileObject
        &lpDeviceObject);              //DeviceObject
if(NT_SUCCESS(status)) {
    PDEVICE_OBJECT pdo = IoGetBaseFileSystemDeviceObject(lpFileObject);
    SpyFsNotification (pdo, TRUE);
    ObDereferenceObject(lpFileObject);
}

Заранее благодарен, Денис.
"Если нельзя, но очень хочется... то можно"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.