KseQueryDeviceData

NTSTATUS __stdcall KseQueryDeviceData(
        WCHAR *DeviceId,
        WCHAR *DataName,
        UINT64 *DataType,
        UINT64 *DataBufferLength,
        VOID *DataBuffer){
  int v9; 
  NTSTATUS v10; 
  NTSTATUS Device; 
  UINT64 *v13; 
  VOID *v14; 
  __int64 v15; 
  VOID *v16; 
  VOID *InsertObject; 

  InsertObject = 0i64;
  if( dword_140C50324 != 2 || (Engine & 2) != 0 )
    return -1073741275;
  if( !DataName || !DataType || !DataBufferLength )
    return -1073741811;
  v9 = *(_DWORD *)DataType;
  *(_DWORD *)DataType = 0;
  if( (v9 & 0x20000000) == 0 )
  {
    HIDWORD(v16) = HIDWORD(DataBuffer);
    KsepDbQueryRegistryDeviceData(DeviceId, DataName, DataType, DataBufferLength);
    Device = v10;
    if( v10 != -1073741275 )
      goto LABEL_14;
  }
  if( KsepShimDbChanged() )
  {
    KseResetDeviceCache();
  }
  else
  {
    Device = KsepDbCacheQueryDevice(DeviceId, DataName, DataType, DataBufferLength, DataBuffer);
    if( Device != -1073741275 )
      goto LABEL_14;
  }
  Device = KsepDbCacheReadDevice(DeviceId, &InsertObject);
  if( Device < 0 )
    return Device;
  v13 = DataType;
  v14 = InsertObject;
  Device = KsepDbCacheQueryDeviceData(
             (__int64)InsertObject,
             DataName,
             v13,
             (unsigned int *)DataBufferLength,
             DataBuffer);
  if( KsepDbCacheInsertDevice(DeviceId, v14) < 0 )
    KsepCacheDeviceFree(v14);
LABEL_14:
  if( Device >= 0 )
  {
    if( !*(_DWORD *)DataBufferLength )
      Device = -1073741275;
    v15 = ((unsigned __int8)_InterlockedExchangeAdd(&KsepHistoryMessagesIndex, 1u) + 1) & 0x3F;
    HIDWORD(KsepHistoryMessages[v15]) = 0;
    LODWORD(KsepHistoryMessages[v15]) = 592101;
    if( (KsepDebugFlag & 1) != 0 )
    {
      LODWORD(v16) = Device;
      KsepDebugPrint(0i64, "KSE: Query device [%ws, %ws]: found in cache %08x\n", DataName, DeviceId, v16);
    }
    LODWORD(v16) = Device;
    KsepLogInfo(0, "KSE: Query device [%ws, %ws]: found in cache %08x\n", DataName, DeviceId, v16);
  }
  return Device;
}

Referenced by:

ExpGetDeviceDataInformation
KseQueryDeviceFlags