typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR { unsigned char Type; unsigned char ShareDisposition; unsigned short Flags; union { struct { LARGE_INTEGER Start; unsigned long Length; } Generic; struct { LARGE_INTEGER Start; unsigned long Length; } Port; struct { unsigned short Level; unsigned short Group; unsigned long Vector; unsigned __int64 Affinity; } Interrupt; struct { union { struct { unsigned short Group; unsigned short MessageCount; unsigned long Vector; unsigned __int64 Affinity; } Raw; struct { unsigned short Level; unsigned short Group; unsigned long Vector; unsigned __int64 Affinity; } Translated; }; } MessageInterrupt; struct { LARGE_INTEGER Start; unsigned long Length; } Memory; struct { unsigned long Channel; unsigned long Port; unsigned long Reserved1; } Dma; struct { unsigned long Data[3]; } DevicePrivate; struct { unsigned long Start; unsigned long Length; unsigned long Reserved; } BusNumber; struct { unsigned long DataSize; unsigned long Reserved1; unsigned long Reserved2; } DeviceSpecificData; struct { LARGE_INTEGER Start; unsigned long Length40; } Memory40; struct { LARGE_INTEGER Start; unsigned long Length48; } Memory48; struct { LARGE_INTEGER Start; unsigned long Length64; } Memory64; } u; } CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR;