PiUpdateGuestAssignedState

NTSTATUS __stdcall PiUpdateGuestAssignedState(_DEVICE_NODE *DeviceNode, INT8 a2){
  unsigned int StateFlags; 
  unsigned int v4; 
  int v6; 
  int v8; 

  StateFlags = DeviceNode->StateFlags;
  v4 = StateFlags | 0x2000;
  if( !a2 )
    v4 = StateFlags & 0xFFFFDFFF;
  DeviceNode->StateFlags = v4;
  if( ((StateFlags & 0x2000) != 0) == a2 )
    return 0;
  v6 = PipSetGuestAssignedProperty((INT64)DeviceNode, a2);
  if( v6 < 0 || (PipSendGuestAssignedNotification((__int64)DeviceNode, a2), v6 = v8, v8 < 0) )
    PnpRequestDeviceRemoval((__int64)DeviceNode, 0, 57, v6);
  return v6;
}

Referenced by:

PiProcessQueryDeviceState
PnpDeleteLockedDeviceNodes