IopGetFileObjectExtension

VOID *__stdcall IopGetFileObjectExtension(_FILE_OBJECT *FileObject, _FILE_OBJECT_EXTENSION_TYPE Type, VOID **FoExt){
  _QWORD *FileObjectExtension; 
  VOID *result; 

  FileObjectExtension = FileObject->FileObjectExtension;
  if( !FileObjectExtension )
  {
    if( FoExt )
      *FoExt = 0i64;
    return 0i64;
  }
  if( FileObjectExtension == IopRevocationExtension )
    return 0i64;
  result = (VOID *)FileObjectExtension[Type + 1];
  if( FoExt )
    *FoExt = FileObjectExtension;
  return result;
}

Referenced by:

CcInitializeCacheMapEx
IoChangeFileObjectFilterContext
IoCopyDeviceObjectHint
IoFreeSfioStreamIdentifier
IoGetFileMemoryPartitionInformation
IoGetInitiatorProcess
IoGetOplockKeyContext
IoGetOplockKeyContextEx
IoSetOplockKeyContext
IoSetOplockPrivateFoExt
IopAdjustFileObjectKeepAliveCount
IopCloseFile
IopGetSetSpecificExtension
IopGraftName
IopOpenLinkOrRenameTarget
IopSetFileObjectIosbRange
IopSetLockOperationProcess
IopSymlinkCreateECP
IopSymlinkPropagateToExtensionIfNeeded
IopSymlinkSetFoExtension
IopSynchronousServiceTail