PnpCtxDestroyNode

NTSTATUS __fastcall PnpCtxDestroyNode(VOID *P){
  __int64 v2; 
  __int64 v3; 
  __int64 v4; 
  __int64 v5; 
  __int64 v6; 
  __int64 v7; 
  __int64 v8; 
  __int64 v9; 
  __int64 v10; 
  __int64 v11; 
  void *v12; 

  RtlFreeAnsiString((_UNICODE_STRING *)P + 2);
  v2 = *((_QWORD *)P + 8);
  if( (unsigned __int64)(v2 - 1) <= 0xFFFFFFFFFFFFFFFDui64 )
    ZwClose(v2);
  v3 = *((_QWORD *)P + 9);
  if( (unsigned __int64)(v3 - 1) <= 0xFFFFFFFFFFFFFFFDui64 )
    ZwClose(v3);
  v4 = *((_QWORD *)P + 10);
  if( (unsigned __int64)(v4 - 1) <= 0xFFFFFFFFFFFFFFFDui64 )
    ZwClose(v4);
  v5 = *((_QWORD *)P + 11);
  if( (unsigned __int64)(v5 - 1) <= 0xFFFFFFFFFFFFFFFDui64 )
    ZwClose(v5);
  v6 = *((_QWORD *)P + 12);
  if( (unsigned __int64)(v6 - 1) <= 0xFFFFFFFFFFFFFFFDui64 )
    ZwClose(v6);
  v7 = *((_QWORD *)P + 13);
  if( (unsigned __int64)(v7 - 1) <= 0xFFFFFFFFFFFFFFFDui64 )
    ZwClose(v7);
  v8 = *((_QWORD *)P + 14);
  if( (unsigned __int64)(v8 - 1) <= 0xFFFFFFFFFFFFFFFDui64 )
    ZwClose(v8);
  v9 = *((_QWORD *)P + 16);
  if( (unsigned __int64)(v9 - 1) <= 0xFFFFFFFFFFFFFFFDui64 )
    ZwClose(v9);
  v10 = *((_QWORD *)P + 17);
  if( (unsigned __int64)(v10 - 1) <= 0xFFFFFFFFFFFFFFFDui64 )
    ZwClose(v10);
  v11 = *((_QWORD *)P + 18);
  if( (unsigned __int64)(v11 - 1) <= 0xFFFFFFFFFFFFFFFDui64 )
    ZwClose(v11);
  v12 = (void *)*((_QWORD *)P + 7);
  if( v12 )
    SysCtxCloseMachine(v12);
  ExFreePoolWithTag(P, 0);
  return 0;
}

Referenced by:

PnpCtxCloseMachine
PnpCtxOpenMachine
PnpCtxRegisterMachineNode