struct _PLUGPLAY_EVENT_BLOCK { struct _GUID EventGuid;/* 0x0 16 */ enum _PLUGPLAY_EVENT_CATEGORY EventCategory;/* 0x10 4 */ /* 4 bytes padding */ unsigned long* Result;/* 0x18 8 */ unsigned long Flags;/* 0x20 4 */ unsigned long TotalSize;/* 0x24 4 */ void* DeviceObject;/* 0x28 8 */ union { struct { struct _GUID ClassGuid;/* 0x30 16 */ wchar_t SymbolicLinkName[1];/* 0x40 2 */ } DeviceClass;/* 0x30 20 */ struct { wchar_t DeviceId[1];/* 0x30 2 */ } TargetDevice;/* 0x30 2 */ struct { wchar_t DeviceId[1];/* 0x30 2 */ } InstallDevice;/* 0x30 2 */ struct { void* NotificationStructure;/* 0x30 8 */ wchar_t DeviceId[1];/* 0x38 2 */ } CustomNotification;/* 0x30 16 */ struct { void* Notification;/* 0x30 8 */ } ProfileNotification;/* 0x30 8 */ struct { unsigned long NotificationCode;/* 0x30 4 */ unsigned long NotificationData;/* 0x34 4 */ } PowerNotification;/* 0x30 8 */ struct { enum _PNP_VETO_TYPE VetoType;/* 0x30 4 */ wchar_t DeviceIdVetoNameBuffer[1];/* 0x34 2 */ } VetoNotification;/* 0x30 8 */ struct { struct _GUID BlockedDriverGuid;/* 0x30 16 */ } BlockedDriverNotification;/* 0x30 16 */ struct { wchar_t ParentId[1];/* 0x30 2 */ } InvalidIDNotification;/* 0x30 2 */ struct { struct _GUID PowerSettingGuid;/* 0x30 16 */ unsigned long Flags;/* 0x40 4 */ unsigned long SessionId;/* 0x44 4 */ unsigned long DataLength;/* 0x48 4 */ unsigned char Data[1];/* 0x4c 1 */ } PowerSettingNotification;/* 0x30 32 */ struct { wchar_t DeviceId[1];/* 0x30 2 */ } PropertyChangeNotification;/* 0x30 2 */ struct { wchar_t DeviceId[1];/* 0x30 2 */ } DeviceInstanceNotification;/* 0x30 2 */ } u;/* 0x30 32 */};size 80 (0x50)7 members1 hole (4 bytes)padding 02 cachelines
Used in (1)