Nikolay Sivov (@nsivov) commented about dlls/ntdll/sync.c:
* the latter waits only on the "owners" member. Note then that "owners"
* must not be the first element in the structure.
+enum srwlock_waiter_state {
- SRWLOCK_WAITER_STATE_IS_EXCLUSIVE = 1,
- /* ???? = 2, */
- SRWLOCK_WAITER_STATE_NOTIFIED = 4,
+}; +DECLSPEC_ALIGN(16) struct srwlock_waiter {
- /* Note the prev pointer is uninitialized for the list head. */
- struct srwlock_waiter *prev;
- struct srwlock_waiter *head;
- struct srwlock_waiter *next;
- DWORD thread_id;
+#ifdef _WIN64
- DWORD padding;
+#endif
This could probably be ULONG_PTR or similarly sized integer.