NtDeleteDriverEntry

NTSTATUS __stdcall NtDeleteDriverEntry(UINT64 Id){
  unsigned int v1; 
  char PreviousMode; 
  _ETHREAD *CurrentThread; 
  NTSTATUS EnvironmentVariable; 
  UINT64 Attributes; 
  UINT64 ValueLength; 
  WCHAR Dst[12]; 

  v1 = Id;
  if( *(&ExBootDevicesRemovedEvent + 276) != 2 )
    return -1073741822;
  if( (unsigned int)Id > 0xFFFF )
    return -1073741811;
  PreviousMode = KeGetCurrentThread()->PreviousMode;
  if( PreviousMode && !SeSinglePrivilegeCheck(*(_QWORD *)&SeSystemEnvironmentPrivilege, PreviousMode) )
    return -1073741727;
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --CurrentThread->Tcb.KernelApcDisable;
  ExAcquireFastMutexUnsafe((PFAST_MUTEX)((char *)&WheapDeferredInternalLogsEventLock + 2752));
  swprintf_s(Dst, 0xBui64, (WCHAR *)L"Driver%04X", v1);
  LODWORD(ValueLength) = 0;
  EnvironmentVariable = IoGetEnvironmentVariableEx(Dst, (_GUID *)&EfiDriverVariablesGuid, 0i64, &ValueLength, 0i64);
  if( EnvironmentVariable != -1073741568 )
    goto LABEL_11;
  if( ((2 * ((v1 | (2 * v1)) & 0xC4444444)) & v1) != 0 )
  {
    swprintf_s(Dst, 0xBui64, (WCHAR *)L"Driver%04x", v1);
    LODWORD(ValueLength) = 0;
    EnvironmentVariable = IoGetEnvironmentVariableEx(Dst, (_GUID *)&EfiDriverVariablesGuid, 0i64, &ValueLength, 0i64);
LABEL_11:
    if( !EnvironmentVariable || EnvironmentVariable == -1073741789 )
    {
      LODWORD(Attributes) = 1;
      EnvironmentVariable = IoSetEnvironmentVariableEx(Dst, (_GUID *)&EfiDriverVariablesGuid, 0i64, 0i64, Attributes);
    }
  }
  ExReleaseFastMutexUnsafe((PFAST_MUTEX)((char *)&WheapDeferredInternalLogsEventLock + 2752));
  KeLeaveCriticalRegionThread(KeGetCurrentThread());
  return EnvironmentVariable;
}

Referenced by:

No references.