//0x50 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
            WCHAR SymbolicLinkName[1];                                      //0x40
        } DeviceClass;                                                      //0x30
        struct
        {
            WCHAR DeviceId[1];                                              //0x30
        } TargetDevice;                                                     //0x30
        struct
        {
            WCHAR DeviceId[1];                                              //0x30
        } InstallDevice;                                                    //0x30
        struct
        {
            VOID* NotificationStructure;                                    //0x30
            WCHAR DeviceId[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
            WCHAR DeviceIdVetoNameBuffer[1];                                //0x34
        } VetoNotification;                                                 //0x30
        struct
        {
            struct _GUID BlockedDriverGuid;                                 //0x30
        } BlockedDriverNotification;                                        //0x30
        struct
        {
            WCHAR ParentId[1];                                              //0x30
        } InvalidIDNotification;                                            //0x30
        struct
        {
            struct _GUID PowerSettingGuid;                                  //0x30
            ULONG Flags;                                                    //0x40
            ULONG SessionId;                                                //0x44
            ULONG DataLength;                                               //0x48
            UCHAR Data[1];                                                  //0x4c
        } PowerSettingNotification;                                         //0x30
        struct
        {
            WCHAR DeviceId[1];                                              //0x30
        } PropertyChangeNotification;                                       //0x30
        struct
        {
            WCHAR DeviceId[1];                                              //0x30
        } DeviceInstanceNotification;                                       //0x30
    } u;                                                                    //0x30
};