PipAllocateDeviceNode

NTSTATUS __stdcall PipAllocateDeviceNode(PDEVICE_OBJECT PhysicalDeviceObject, PDEVICE_NODE *DeviceNode){
  VOID **PoolWithTag; 
  _QWORD *v5; 
  _QWORD *v6; 
  _QWORD *v7; 
  _QWORD *v8; 
  _QWORD *v9; 
  _QWORD *v10; 
  _QWORD *v11; 
  _QWORD *v12; 

  PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 0x310ui64, 1685024324i64);
  *(_QWORD *)DeviceNode = PoolWithTag;
  if( !PoolWithTag )
    return -1073741670;
  _InterlockedIncrement((_DWORD *)&PnpReplaceEvent + 1500);
  memset(*(VOID **)DeviceNode, 0i64, 0x310u);
  *(_DWORD *)(*(_QWORD *)DeviceNode + 448i64) = -1;
  *(_DWORD *)(*(_QWORD *)DeviceNode + 452i64) = -1;
  *(_DWORD *)(*(_QWORD *)DeviceNode + 456i64) = -1;
  *(_DWORD *)(*(_QWORD *)DeviceNode + 460i64) = -1;
  *(_WORD *)(*(_QWORD *)DeviceNode + 464i64) = -1;
  *(_DWORD *)(*(_QWORD *)DeviceNode + 300i64) = 769;
  *(_DWORD *)(*(_QWORD *)DeviceNode + 600i64) = 0;
  *(_DWORD *)(*(_QWORD *)DeviceNode + 640i64) = 0;
  *(_QWORD *)(*(_QWORD *)DeviceNode + 648i64) = 0i64;
  *(_DWORD *)(*(_QWORD *)DeviceNode + 656i64) = 0;
  *(_DWORD *)(*(_QWORD *)DeviceNode + 660i64) = -1;
  *(_WORD *)(*(_QWORD *)DeviceNode + 466i64) = 0;
  v5 = (_QWORD *)(*(_QWORD *)DeviceNode + 488i64);
  v5[1] = v5;
  *v5 = v5;
  v6 = (_QWORD *)(*(_QWORD *)DeviceNode + 504i64);
  v6[1] = v6;
  *v6 = v6;
  if( PhysicalDeviceObject )
  {
    *(_QWORD *)(*(_QWORD *)DeviceNode + 32i64) = PhysicalDeviceObject;
    PhysicalDeviceObject->DeviceObjectExtension->DeviceNode = *(void **)DeviceNode;
    PhysicalDeviceObject->Flags &= ~0x80u;
  }
  v7 = (_QWORD *)(*(_QWORD *)DeviceNode + 472i64);
  v7[1] = v7;
  *v7 = v7;
  v8 = (_QWORD *)(*(_QWORD *)DeviceNode + 576i64);
  v8[1] = v8;
  *v8 = v8;
  v9 = (_QWORD *)(*(_QWORD *)DeviceNode + 608i64);
  v9[1] = v9;
  *v9 = v9;
  v10 = (_QWORD *)(*(_QWORD *)DeviceNode + 624i64);
  v10[1] = v10;
  *v10 = v10;
  v11 = (_QWORD *)(*(_QWORD *)DeviceNode + 176i64);
  v11[1] = v11;
  *v11 = v11;
  v12 = (_QWORD *)(*(_QWORD *)DeviceNode + 192i64);
  v12[1] = v12;
  *v12 = v12;
  return 0;
}

Referenced by:

IoReportDetectedDevice
IopInitializeDeviceInstanceKey
IopInitializePlugPlayServices
IopLegacyResourceAllocation
PiInitializeDevice
PipProcessEnumeratedChildDevice