IoGetDeviceNumaNode

NTSTATUS __stdcall IoGetDeviceNumaNode(_DEVICE_OBJECT *Pdo, UINT16 *NodeNumber){
  void *DeviceNode; 
  __int16 v4; 

  if( !Pdo )
    return -1073741811;
  DeviceNode = Pdo->DeviceObjectExtension->DeviceNode;
  if( !DeviceNode || (*((_DWORD *)DeviceNode + 99) & 0x20000) != 0 )
    return -1073741811;
  if( *((_DWORD *)DeviceNode + 165) <= 0xFFFFFFFD )
  {
    *NodeNumber = *((_WORD *)DeviceNode + 330);
    return 0;
  }
  KeQueryHighestNodeNumber((INT64)DeviceNode, (INT64)NodeNumber);
  if( !v4 )
  {
    *NodeNumber = 0;
    return 0;
  }
  return -1073741275;
}

Referenced by:

IopGetNumaNodeInformation