CmCallbackGetKeyObjectID

NTSTATUS __stdcall CmCallbackGetKeyObjectID(
        PEX_CALLBACK_FUNCTION Function,
        PCUNICODE_STRING Altitude,
        PVOID Driver,
        PVOID Context,
        PLARGE_INTEGER Cookie,
        PVOID Reserved){
  _CM_KEY_CONTROL_BLOCK *Buffer; 
  NTSTATUS started; 
  UINT8 *v9; 
  _UNICODE_STRING *KeyPath; 
  INT64 v12[2]; 
  PPRIVILEGE_SET Privileges[2]; 
  KAPC_STATE ApcState; 
  KeyPath = 0i64;
  *(_OWORD *)v12 = 0i64;
  WORD1(v12[0]) = -1;
  memset(&ApcState, 0, sizeof(ApcState));
  *(_OWORD *)Privileges = 0i64;
  if( !Altitude || *(_DWORD *)&Altitude->Length != 1803104306 || !Function )
    goto LABEL_16;
  Buffer = (_CM_KEY_CONTROL_BLOCK *)Altitude->Buffer;
  if( Driver )
    *(_QWORD *)Driver = Buffer;
  if( !Context )
  {
    started = 0;
    goto LABEL_17;
  }
  if( ((unsigned __int8)Buffer & 1) == 0 )
  {
    CmpAttachToRegistryProcess(&ApcState);
    CmpLockRegistry();
    started = CmpStartKcbStackForTopLayerKcb((INT64)v12, (INT64)Buffer);
    if( started >= 0 )
    {
      CmpLockKcbStackShared((INT64)v12);
      if( Buffer->NameBlock && (int)CmpConstructAndCacheName(Buffer, &KeyPath, v9) >= 0 )
      {
        started = 0;
        *(_QWORD *)Context = KeyPath;
      }
      else
      {
        started = -1073741670;
      }
      CmpUnlockKcbStack((__int64)v12);
    }
    CmpUnlockRegistry();
    KiUnstackDetachProcess(&ApcState, 0i64);
  }
  else
  {
LABEL_16:
    started = -1073741811;
  }
LABEL_17:
  if( Privileges[1] )
    CmSiFreeMemory(Privileges[1]);
  return started;
}

Referenced by:

EtwpRegTraceCallback