PiRemoveDeferredSetInterfaceState

NTSTATUS __stdcall PiRemoveDeferredSetInterfaceState(PDEVICE_NODE DeviceNode, PUNICODE_STRING SymbolicLinkName){
  __int64 v2; 
  _UNICODE_STRING *v4; 
  NTSTATUS v5; 
  void **v7; 
  void **Buffer; 

  v2 = *(_QWORD *)&DeviceNode + 608i64;
  v4 = *(_UNICODE_STRING **)(*(_QWORD *)&DeviceNode + 608i64);
  v5 = -1073741823;
  if( v4 != (_UNICODE_STRING *)(*(_QWORD *)&DeviceNode + 608i64) )
  {
    while( 1 )
    {
      v7 = *(void ***)&v4->Length;
      if( (unsigned __int8)RtlEqualUnicodeString(v4 + 1, SymbolicLinkName, 1u) )
        break;
      v4 = (_UNICODE_STRING *)v7;
      if( v7 == (void **)v2 )
        return v5;
    }
    if( v7[1] != v4 || (Buffer = (void **)v4->Buffer, *Buffer != v4) )
      __fastfail(3u);
    *Buffer = v7;
    v7[1] = Buffer;
    ExFreePoolWithTag(v4[1].Buffer, 0);
    ExFreePoolWithTag(v4, 0);
    return 0;
  }
  return v5;
}

Referenced by:

IopProcessSetInterfaceState