_PLUGPLAY_EVENT_BLOCK

//0x48 bytes (sizeof) struct _PLUGPLAY_EVENT_BLOCK { struct _GUID EventGuid; //0x0 enum _PLUGPLAY_EVENT_CATEGORY EventCategory; //0x10 ULONG* Result; //0x18 ULONG Flags; //0x20 ULONG TotalSize; //0x24 VOID* DeviceObject; //0x28 union { struct { struct _GUID ClassGuid; //0x30 USHORT SymbolicLinkName[1]; //0x40 } DeviceClass; //0x30 struct { USHORT DeviceIds[1]; //0x30 } TargetDevice; //0x30 struct { USHORT DeviceId[1]; //0x30 } InstallDevice; //0x30 struct { VOID* NotificationStructure; //0x30 USHORT DeviceIds[1]; //0x38 } CustomNotification; //0x30 struct { VOID* Notification; //0x30 } ProfileNotification; //0x30 struct { ULONG NotificationCode; //0x30 ULONG NotificationData; //0x34 } PowerNotification; //0x30 struct { enum _PNP_VETO_TYPE VetoType; //0x30 USHORT DeviceIdVetoNameBuffer[1]; //0x34 } VetoNotification; //0x30 struct { struct _GUID BlockedDriverGuid; //0x30 } BlockedDriverNotification; //0x30 struct { USHORT ParentId[1]; //0x30 } InvalidIDNotification; //0x30 } u; //0x30 };