NtQueryEnvironmentVariableInfoEx

NTSTATUS __stdcall NtQueryEnvironmentVariableInfoEx(
        UINT64 Attributes,
        _DEVICE_OBJECT **MaxStorageSize,
        UINT64 *RemainingStorageSize,
        UINT64 *MaximumVariableSize){
  unsigned int v7; 
  _ETHREAD *CurrentThread; 
  NTSTATUS EnvironmentVariableInfo; 

  v7 = Attributes;
  if( *(&ExBootDevicesRemovedEvent + 276) != 2 )
    return -1073741822;
  if( KeGetCurrentThread()->PreviousMode )
    return -1073741727;
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --CurrentThread->Tcb.KernelApcDisable;
  ExAcquireFastMutexUnsafe((PFAST_MUTEX)((char *)&WheapDeferredInternalLogsEventLock + 2752));
  EnvironmentVariableInfo = IoQueryEnvironmentVariableInfoEx(
                              v7,
                              (UINT64 *)MaxStorageSize,
                              RemainingStorageSize,
                              MaximumVariableSize);
  ExReleaseFastMutexUnsafe((PFAST_MUTEX)((char *)&WheapDeferredInternalLogsEventLock + 2752));
  KeLeaveCriticalRegionThread(KeGetCurrentThread());
  return EnvironmentVariableInfo;
}

Referenced by:

PopEnableSystemSleepCheckpoint