InterlockedPushListSListEx function (interlockedapi.h)

Inserts a singly-linked list at the front of another singly linked list. Access to the lists is synchronized on a multiprocessor system. This version of the method does not use the __fastcall calling convention.


PSLIST_ENTRY InterlockedPushListSListEx(
  [in, out] PSLIST_HEADER ListHead,
  [in, out] PSLIST_ENTRY  List,
  [in, out] PSLIST_ENTRY  ListEnd,
  [in]      ULONG         Count


[in, out] ListHead

Pointer to an SLIST_HEADER structure that represents the head of a singly linked list. The list specified by the List and ListEnd parameters is inserted at the front of this list.

[in, out] List

Pointer to an SLIST_ENTRY structure that represents the first item in the list to be inserted.

[in, out] ListEnd

Pointer to an SLIST_ENTRY structure that represents the last item in the list to be inserted.

[in] Count

The number of items in the list to be inserted.

Return value

The return value is the previous first item in the list specified by the ListHead parameter. If the list was previously empty, the return value is NULL.


All list items must be aligned on a MEMORY_ALLOCATION_ALIGNMENT boundary; otherwise, this function will behave unpredictably. See _aligned_malloc.


Minimum supported client Windows 8 [desktop apps | UWP apps]
Minimum supported server Windows Server 2012 [desktop apps | UWP apps]
Target Platform Windows
Header interlockedapi.h (include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

See also

Interlocked Singly Linked Lists





Using Singly Linked Lists