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