IopGetBasicInformationFile
NTSTATUS __stdcall IopGetBasicInformationFile(
_FILE_OBJECT *FileObject,
_FILE_BASIC_INFORMATION *BasicInformationBuffer){
__int64 v4;
__int64 v5;
__int64 v6;
__int64(__fastcall *v7)(_FILE_OBJECT *, __int64, _FILE_BASIC_INFORMATION *, __int128 *, __int64);
VOID *v8;
__int64 v9;
char v10;
__int128 v12;
UINT64 ReturnedLength;
v12 = 0i64;
LODWORD(v4) = IoGetRelatedDeviceObject((INT64)FileObject);
v5 = v4;
v6 = *(_QWORD *)(*(_QWORD *)(v4 + 8) + 80i64);
if( !v6 )
return IopGetFileInformation(FileObject, 0x28ui64, FileBasicInformation, BasicInformationBuffer, &ReturnedLength);
v7 = *(__int64(__fastcall **)(_FILE_OBJECT *, __int64, _FILE_BASIC_INFORMATION *, __int128 *, __int64))(v6 + 32);
if( !v7 )
return IopGetFileInformation(FileObject, 0x28ui64, FileBasicInformation, BasicInformationBuffer, &ReturnedLength);
v8 = (MmVerifierData & 0x10) != 0 ? VfFastIoSnapState() : 0i64;
v9 = FileObject->Flags >> 1;
LOBYTE(v9) = (FileObject->Flags & 2) != 0;
v10 = v7(FileObject, v9, BasicInformationBuffer, &v12, v5);
if( v8 )
VfFastIoCheckState(v8, v7);
if( v10 )
return v12;
else
return IopGetFileInformation(FileObject, 0x28ui64, FileBasicInformation, BasicInformationBuffer, &ReturnedLength);
}Referenced by:
IopOpenLinkOrRenameTarget