KseQueryDeviceFlags

NTSTATUS __stdcall KseQueryDeviceFlags(WCHAR *DeviceId, WCHAR *DeviceClass, UINT64 *DeviceFlags){
  int v6; 
  int v8; 
  UINT64 v9; 
  UINT64 DataBufferLength; 
  UINT64 Flags; 
  _UNICODE_STRING DeviceClassa; 
  _UNICODE_STRING DestinationString; 
  UINT64 DataType; 

  Flags = 0i64;
  if( dword_140C50324 != 2 || (Engine & 2) != 0 )
    return -1073741275;
  if( !DeviceId || !DeviceClass || !DeviceFlags )
    return -1073741811;
  *DeviceFlags = 0i64;
  LODWORD(DataType) = 11;
  LODWORD(DataBufferLength) = 8;
  v6 = KseQueryDeviceData(DeviceId, DeviceClass, &DataType, &DataBufferLength, &Flags);
  if( v6 >= 0 )
  {
    v8 = DataType;
    if( (DataType & 0xCFFFFFFF) == 11 )
    {
      DestinationString = 0i64;
      DeviceClassa = 0i64;
      RtlInitUnicodeString(&DestinationString, DeviceId);
      RtlInitUnicodeString(&DeviceClassa, DeviceClass);
      v9 = Flags;
      KsepEvntLogFlagsApplied(&DestinationString, &DeviceClassa, (v8 & 0x10000000) == 0, Flags);
      *DeviceFlags = v9;
      return v6;
    }
    return -1073741275;
  }
  return v6;
}

Referenced by:

No references.