PlugPlayGetDeviceProperty

NTSTATUS __stdcall PlugPlayGetDeviceProperty(
        UNICODE_STRING *DeviceInstance,
        UINT64 PropertyType,
        PVOID PropertyBuffer,
        UINT64 PropertyBufferSize,
        UINT64 *RequiredSize,
        UINT64 Flags){
  unsigned int v6; 
  int v8; 
  NTSTATUS v9; 
  unsigned int v10; 
  unsigned int v12; 
  v6 = PropertyBufferSize;
  if( DeviceInstance && RequiredSize && !(_DWORD)Flags )
  {
    v12 = PropertyBufferSize;
    ZwPlugPlayControl();
    v9 = v8;
    if( v8 < 0 )
    {
      if( v8 != -1073741789 )
      {
        *(_DWORD *)RequiredSize = 0;
        return v9;
      }
    }
    else
    {
      v10 = v12;
      if( v6 <= v12 )
      {
LABEL_6:
        *(_DWORD *)RequiredSize = v10;
        return v9;
      }
      memset((INT64)PropertyBuffer + v12, 0i64);
    }
    v10 = v12;
    goto LABEL_6;
  }
  return -1073741811;
}

Referenced by:

PiPnpRtlGetDeviceNtPropertyRoutine