typedef struct _RTL_SRWLOCK                                                     // 7 / 7 elements; 0x0004 / 0x0008 Bytes
{
    union                                                                       // 3 / 3 elements; 0x0004 / 0x0008 Bytes
    {
        struct                                                                  // 5 / 5 elements; 0x0004 / 0x0008 Bytes
        {
            UINT_PTR            Locked                                     : 1; // 0x0000 / 0x0000; Bit:   0
            UINT_PTR            Waiting                                    : 1; // 0x0000 / 0x0000; Bit:   1
            UINT_PTR            Waking                                     : 1; // 0x0000 / 0x0000; Bit:   2
            UINT_PTR            MultipleShared                             : 1; // 0x0000 / 0x0000; Bit:   3
#if defined(_M_X64)
            UINT64              Shared                                     :60; // ------ / 0x0000; Bits:  4 - 63
#else                                                                           // #if defined(_M_X64)
            ULONG32             Shared                                     :28; // 0x0000 / ------; Bits:  4 - 31
#endif                                                                          // #if defined(_M_X64)
        };
        UINT_PTR                Value;                                          // 0x0000 / 0x0000; 0x0004 / 0x0008 Bytes
        PVOID                   Ptr;                                            // 0x0000 / 0x0000; 0x0004 / 0x0008 Bytes
    };
} RTL_SRWLOCK, * PRTL_SRWLOCK;

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