KseQueryDeviceFlags

NTSTATUS __stdcall KseQueryDeviceFlags(PWCHAR DeviceId, PWCHAR DeviceClass, UINT64 *DeviceFlags){
  NTSTATUS DeviceData; 
  WCHAR v7; 
  int v9; 
  WCHAR v10; 
  struct _UNICODE_STRING DeviceClassa; 
  struct _UNICODE_STRING DestinationString; 
  UINT64 LoadFlags; 
  if( dword_140C50324 != 2 || (*(_BYTE *)KseEngine & 2) != 0 )
    return -1073741275;
  if( !DeviceId || !DeviceClass || !DeviceFlags )
    return -1073741811;
  *DeviceFlags = 0i64;
  LODWORD(LoadFlags) = 11;
  DeviceData = KseQueryDeviceData((_SECTION *)DeviceId, DeviceClass, (UINT64)&LoadFlags);
  if( DeviceData >= 0 )
  {
    v9 = LoadFlags;
    if( (LoadFlags & 0xCFFFFFFF) == 11 )
    {
      DestinationString = 0i64;
      DeviceClassa = 0i64;
      RtlInitUnicodeString(&DestinationString, DeviceId, v7);
      RtlInitUnicodeString(&DeviceClassa, DeviceClass, v10);
      KsepEvntLogFlagsApplied(&DestinationString, &DeviceClassa, (v9 & 0x10000000) == 0, 0i64);
      *DeviceFlags = 0i64;
      return DeviceData;
    }
    return -1073741275;
  }
  return DeviceData;
}

Referenced by:

No references.