SdbpCheckKObject

NTSTATUS __stdcall SdbpCheckKObject(
        VOID *hSDB,
        UINT64 tiKObject,
        WCHAR *szPath,
        VOID *FileHandle,
        VOID *pImageBase,
        WCHAR *cbImageSize,
        tagSDBBMACHINEINFO *MachineInfo){
  unsigned int v7; 
  NTSTATUS SearchDBContext; 
  WCHAR **v11; 
  _DB *v12; 
  const WCHAR *v13; 
  const WCHAR *v14; 
  INT64 *v16; 
  NTSTATUS v17; 
  _MATCHMODE *pMatchMode; 
  tagSEARCHDBCONTEXT pContext[36]; 
  _MATCHMODE v20; 
  WCHAR **FileMappingHandleOut; 
  UINT64 pdwFlags; 

  HIDWORD(pdwFlags) = HIDWORD(FileHandle);
  v7 = tiKObject;
  memset(pContext, 0i64, 0x60u);
  LODWORD(pdwFlags) = 0;
  SearchDBContext = 0;
  v20 = MATCHMODE_UNKNOWN;
  v11 = 0i64;
  v12 = (_DB *)*((_QWORD *)hSDB + 1);
  FileMappingHandleOut = 0i64;
  if( !szPath
    || (v17 = AslFileMappingCreate(
                &FileMappingHandleOut,
                szPath,
                (VOID *)0xFFFFFFFFFFFFFFFFi64,
                pImageBase,
                cbImageSize),
        v11 = FileMappingHandleOut,
        v17 >= 0) )
  {
    memset(&pContext[1], 0i64, 0x5Cu);
    pContext[0] = 26;
    SearchDBContext = SdbpCreateSearchDBContext(pContext, v11, v13, v14, (_RTL_ARRAY *)pMatchMode);
    if( SearchDBContext )
    {
      SearchDBContext = SdbpCheckForMatch(hSDB, v12, v7, pContext, &v20, &pdwFlags);
      if( SearchDBContext )
      {
        v16 = (INT64 *)MachineInfo;
        if( MachineInfo )
        {
          SearchDBContext = SdbpMatchAcpi(v12, v7, *(tagSDBDEVICEINFO **)MachineInfo);
          if( SearchDBContext )
          {
            SearchDBContext = SdbpMatchOem(v12, v7, v16[1]);
            if( SearchDBContext )
            {
              SearchDBContext = SdbpMatchBios(v12, v7, v16[2]);
              if( SearchDBContext )
                SearchDBContext = SdbpMatchCpu(v12, v7, v16[3]);
            }
          }
        }
      }
    }
  }
  SdbpReleaseSearchDBContext(pContext);
  AslFileMappingDelete((UINT64)v11);
  return SearchDBContext;
}

Referenced by:

SdbGetDatabaseMatchEx