IoGetFileObjectFilterContext
NTSTATUS __stdcall IoGetFileObjectFilterContext(
_FILE_OBJECT *FileObject,
PVOID *FilterContext,
UINT8 AllocateIfNecessary){
_QWORD *FileObjectExtension;
void *v4;
NTSTATUS result;
FileObjectExtension = FileObject->FileObjectExtension;
v4 = 0i64;
if( FileObjectExtension )
goto LABEL_2;
if( !AllocateIfNecessary )
{
result = 0;
goto LABEL_5;
}
IopAllocateFileObjectExtension(FileObject, 0i64);
if( result >= 0 )
{
FileObjectExtension = FileObject->FileObjectExtension;
if( !FileObjectExtension )
{
LABEL_4:
result = 0;
goto LABEL_5;
}
LABEL_2:
if( FileObjectExtension != IopRevocationExtension )
v4 = (void *)FileObjectExtension[4];
goto LABEL_4;
}
LABEL_5:
*FilterContext = v4;
return result;
}Referenced by:
FsRtlInsertPerFileObjectContext
FsRtlPTeardownPerFileObjectContexts
FsRtlRemovePerFileObjectContext