IoSetOplockPrivateFoExt
NTSTATUS __stdcall IoSetOplockPrivateFoExt(_FILE_OBJECT *FileObject, _OPLOCK_FOEXT *InputOplockFoExt){
int v2;
_QWORD *FileObjectExtension;
char v5;
VOID *v6;
NTSTATUS result;
_OWORD *v8;
VOID *FoExt;
v2 = 0;
FoExt = 0i64;
if( !FileObject->FileObjectExtension )
{
IopAllocateFileObjectExtension(FileObject, &FoExt);
v2 = result;
if( result < 0 )
return result;
goto LABEL_9;
}
FileObjectExtension = IopGetFileObjectExtension(FileObject, FoExtTypeOplockKey, &FoExt);
if( !FileObjectExtension )
{
LABEL_9:
v8 = ExAllocateFromNPagedLookasideList((_NPAGED_LOOKASIDE_LIST *)((char *)&WheapErrorSourceTable + 2984));
FileObjectExtension = v8;
if( !v8 )
return -1073741670;
v5 = 1;
*v8 = 0i64;
v8[1] = 0i64;
v8[2] = 0i64;
}
FileObjectExtension[5] = *((_QWORD *)InputOplockFoExt + 5);
if( v5 )
{
v2 = IopSetTypeSpecificFoExtension((_IOP_FILE_OBJECT_EXTENSION *)FoExt, FoExtTypeOplockKey, FileObjectExtension);
if( v2 < 0 )
ExFreeToNPagedLookasideList((_NPAGED_LOOKASIDE_LIST *)((char *)&WheapErrorSourceTable + 2984), v6);
}
return v2;
}Referenced by:
No references.