typedef struct _PLUGPLAY_EVENT_BLOCK                                            // 7 / 8 elements; 0x0044 / 0x0050 Bytes
{
    GUID                        EventGuid;                                      // 0x0000 / 0x0000; 0x0010 / 0x0010 Bytes
    PLUGPLAY_EVENT_CATEGORY     EventCategory;                                  // 0x0010 / 0x0010; 0x0004 / 0x0004 Bytes
#if defined(_M_X64)
    UINT8                       _PADDING0_[4];                                  // ------ / 0x0014; ------ / 0x0004 Bytes
#endif                                                                          // #if defined(_M_X64)
    PULONG32                    Result;                                         // 0x0014 / 0x0018; 0x0004 / 0x0008 Bytes
    ULONG32                     Flags;                                          // 0x0018 / 0x0020; 0x0004 / 0x0004 Bytes
    ULONG32                     TotalSize;                                      // 0x001C / 0x0024; 0x0004 / 0x0004 Bytes
    PVOID                       DeviceObject;                                   // 0x0020 / 0x0028; 0x0004 / 0x0008 Bytes
#if defined(_M_X64)
    union                                                                       // ------ / 0x0030; -- / 12 elements; ------ / 0x0020 Bytes
    {
        struct                                                                  // ------ / 0x0030; - / 2 elements; ------ / 0x0014 Bytes
        {
            GUID ClassGuid;                                                     // ------ / 0x0030; ------ / 0x0010 Bytes
            WCHAR               SymbolicLinkName[1];                            // ------ / 0x0040; ------ / 0x0002 Bytes
            UINT8               _PADDING0_[2];                                  // ------ / 0x0042; ------ / 0x0002 Bytes
        } DeviceClass;                                                          // ------ / 0x0030; ------ / 0x0014 Bytes
        struct                                                                  // ------ / 0x0030; - / 1 elements; ------ / 0x0002 Bytes
        {
            WCHAR               DeviceId[1];                                    // ------ / 0x0030; ------ / 0x0002 Bytes
        } TargetDevice;                                                         // ------ / 0x0030; ------ / 0x0002 Bytes
        struct                                                                  // ------ / 0x0030; - / 1 elements; ------ / 0x0002 Bytes
        {
            WCHAR               DeviceId[1];                                    // ------ / 0x0030; ------ / 0x0002 Bytes
        } InstallDevice;                                                        // ------ / 0x0030; ------ / 0x0002 Bytes
        struct                                                                  // ------ / 0x0030; - / 2 elements; ------ / 0x0010 Bytes
        {
            PVOID               NotificationStructure;                          // ------ / 0x0030; ------ / 0x0008 Bytes
            WCHAR               DeviceId[1];                                    // ------ / 0x0038; ------ / 0x0002 Bytes
            UINT8               _PADDING0_[6];                                  // ------ / 0x003A; ------ / 0x0006 Bytes
        } CustomNotification;                                                   // ------ / 0x0030; ------ / 0x0010 Bytes
        struct                                                                  // ------ / 0x0030; - / 1 elements; ------ / 0x0008 Bytes
        {
            PVOID               Notification;                                   // ------ / 0x0030; ------ / 0x0008 Bytes
        } ProfileNotification;                                                  // ------ / 0x0030; ------ / 0x0008 Bytes
        struct                                                                  // ------ / 0x0030; - / 2 elements; ------ / 0x0008 Bytes
        {
            ULONG32             NotificationCode;                               // ------ / 0x0030; ------ / 0x0004 Bytes
            ULONG32             NotificationData;                               // ------ / 0x0034; ------ / 0x0004 Bytes
        } PowerNotification;                                                    // ------ / 0x0030; ------ / 0x0008 Bytes
        struct                                                                  // ------ / 0x0030; - / 2 elements; ------ / 0x0008 Bytes
        {
            PNP_VETO_TYPE VetoType;                                             // ------ / 0x0030; ------ / 0x0004 Bytes
            WCHAR               DeviceIdVetoNameBuffer[1];                      // ------ / 0x0034; ------ / 0x0002 Bytes
            UINT8               _PADDING0_[2];                                  // ------ / 0x0036; ------ / 0x0002 Bytes
        } VetoNotification;                                                     // ------ / 0x0030; ------ / 0x0008 Bytes
        struct                                                                  // ------ / 0x0030; - / 1 elements; ------ / 0x0010 Bytes
        {
            GUID BlockedDriverGuid;                                             // ------ / 0x0030; ------ / 0x0010 Bytes
        } BlockedDriverNotification;                                            // ------ / 0x0030; ------ / 0x0010 Bytes
        struct                                                                  // ------ / 0x0030; - / 1 elements; ------ / 0x0002 Bytes
        {
            WCHAR               ParentId[1];                                    // ------ / 0x0030; ------ / 0x0002 Bytes
        } InvalidIDNotification;                                                // ------ / 0x0030; ------ / 0x0002 Bytes
        struct                                                                  // ------ / 0x0030; - / 5 elements; ------ / 0x0020 Bytes
        {
            GUID PowerSettingGuid;                                              // ------ / 0x0030; ------ / 0x0010 Bytes
            ULONG32             Flags;                                          // ------ / 0x0040; ------ / 0x0004 Bytes
            ULONG32             SessionId;                                      // ------ / 0x0044; ------ / 0x0004 Bytes
            ULONG32             DataLength;                                     // ------ / 0x0048; ------ / 0x0004 Bytes
            UINT8               Data[1];                                        // ------ / 0x004C; ------ / 0x0001 Bytes
            UINT8               _PADDING0_[3];                                  // ------ / 0x004D; ------ / 0x0003 Bytes
        } PowerSettingNotification;                                             // ------ / 0x0030; ------ / 0x0020 Bytes
        struct                                                                  // ------ / 0x0030; - / 1 elements; ------ / 0x0002 Bytes
        {
            WCHAR               DeviceId[1];                                    // ------ / 0x0030; ------ / 0x0002 Bytes
        } PropertyChangeNotification;                                           // ------ / 0x0030; ------ / 0x0002 Bytes
        struct                                                                  // ------ / 0x0030; - / 1 elements; ------ / 0x0002 Bytes
        {
            WCHAR               DeviceId[1];                                    // ------ / 0x0030; ------ / 0x0002 Bytes
        } DeviceInstanceNotification;                                           // ------ / 0x0030; ------ / 0x0002 Bytes
    } u;                                                                        // ------ / 0x0030; ------ / 0x0020 Bytes
#else                                                                           // #if defined(_M_X64)
    union                                                                       // 0x0024 / ------; 12 / -- elements; 0x0020 / ------ Bytes
    {
        struct                                                                  // 0x0024 / ------; 2 / - elements; 0x0014 / ------ Bytes
        {
            GUID ClassGuid;                                                     // 0x0024 / ------; 0x0010 / ------ Bytes
            WCHAR               SymbolicLinkName[1];                            // 0x0034 / ------; 0x0002 / ------ Bytes
            UINT8               _PADDING0_[2];                                  // 0x0036 / ------; 0x0002 / ------ Bytes
        } DeviceClass;                                                          // 0x0024 / ------; 0x0014 / ------ Bytes
        struct                                                                  // 0x0024 / ------; 1 / - elements; 0x0002 / ------ Bytes
        {
            WCHAR               DeviceId[1];                                    // 0x0024 / ------; 0x0002 / ------ Bytes
        } TargetDevice;                                                         // 0x0024 / ------; 0x0002 / ------ Bytes
        struct                                                                  // 0x0024 / ------; 1 / - elements; 0x0002 / ------ Bytes
        {
            WCHAR               DeviceId[1];                                    // 0x0024 / ------; 0x0002 / ------ Bytes
        } InstallDevice;                                                        // 0x0024 / ------; 0x0002 / ------ Bytes
        struct                                                                  // 0x0024 / ------; 2 / - elements; 0x0008 / ------ Bytes
        {
            PVOID               NotificationStructure;                          // 0x0024 / ------; 0x0004 / ------ Bytes
            WCHAR               DeviceId[1];                                    // 0x0028 / ------; 0x0002 / ------ Bytes
            UINT8               _PADDING0_[2];                                  // 0x002A / ------; 0x0002 / ------ Bytes
        } CustomNotification;                                                   // 0x0024 / ------; 0x0008 / ------ Bytes
        struct                                                                  // 0x0024 / ------; 1 / - elements; 0x0004 / ------ Bytes
        {
            PVOID               Notification;                                   // 0x0024 / ------; 0x0004 / ------ Bytes
        } ProfileNotification;                                                  // 0x0024 / ------; 0x0004 / ------ Bytes
        struct                                                                  // 0x0024 / ------; 2 / - elements; 0x0008 / ------ Bytes
        {
            ULONG32             NotificationCode;                               // 0x0024 / ------; 0x0004 / ------ Bytes
            ULONG32             NotificationData;                               // 0x0028 / ------; 0x0004 / ------ Bytes
        } PowerNotification;                                                    // 0x0024 / ------; 0x0008 / ------ Bytes
        struct                                                                  // 0x0024 / ------; 2 / - elements; 0x0008 / ------ Bytes
        {
            PNP_VETO_TYPE VetoType;                                             // 0x0024 / ------; 0x0004 / ------ Bytes
            WCHAR               DeviceIdVetoNameBuffer[1];                      // 0x0028 / ------; 0x0002 / ------ Bytes
            UINT8               _PADDING0_[2];                                  // 0x002A / ------; 0x0002 / ------ Bytes
        } VetoNotification;                                                     // 0x0024 / ------; 0x0008 / ------ Bytes
        struct                                                                  // 0x0024 / ------; 1 / - elements; 0x0010 / ------ Bytes
        {
            GUID BlockedDriverGuid;                                             // 0x0024 / ------; 0x0010 / ------ Bytes
        } BlockedDriverNotification;                                            // 0x0024 / ------; 0x0010 / ------ Bytes
        struct                                                                  // 0x0024 / ------; 1 / - elements; 0x0002 / ------ Bytes
        {
            WCHAR               ParentId[1];                                    // 0x0024 / ------; 0x0002 / ------ Bytes
        } InvalidIDNotification;                                                // 0x0024 / ------; 0x0002 / ------ Bytes
        struct                                                                  // 0x0024 / ------; 5 / - elements; 0x0020 / ------ Bytes
        {
            GUID PowerSettingGuid;                                              // 0x0024 / ------; 0x0010 / ------ Bytes
            ULONG32             Flags;                                          // 0x0034 / ------; 0x0004 / ------ Bytes
            ULONG32             SessionId;                                      // 0x0038 / ------; 0x0004 / ------ Bytes
            ULONG32             DataLength;                                     // 0x003C / ------; 0x0004 / ------ Bytes
            UINT8               Data[1];                                        // 0x0040 / ------; 0x0001 / ------ Bytes
            UINT8               _PADDING0_[3];                                  // 0x0041 / ------; 0x0003 / ------ Bytes
        } PowerSettingNotification;                                             // 0x0024 / ------; 0x0020 / ------ Bytes
        struct                                                                  // 0x0024 / ------; 1 / - elements; 0x0002 / ------ Bytes
        {
            WCHAR               DeviceId[1];                                    // 0x0024 / ------; 0x0002 / ------ Bytes
        } PropertyChangeNotification;                                           // 0x0024 / ------; 0x0002 / ------ Bytes
        struct                                                                  // 0x0024 / ------; 1 / - elements; 0x0002 / ------ Bytes
        {
            WCHAR               DeviceId[1];                                    // 0x0024 / ------; 0x0002 / ------ Bytes
        } DeviceInstanceNotification;                                           // 0x0024 / ------; 0x0002 / ------ Bytes
    } u;                                                                        // 0x0024 / ------; 0x0020 / ------ Bytes
#endif                                                                          // #if defined(_M_X64)
} PLUGPLAY_EVENT_BLOCK, * PPLUGPLAY_EVENT_BLOCK;

Return to OS-specific structures/unions/enums list.
Return to OS version list.