StorPortInterlockedPushEntrySList function (storport.h)

Inserts an item at the front of a Storport managed singly linked list. Access to the list is synchronized on a multiprocessor system.

Syntax

ULONG StorPortInterlockedPushEntrySList(
  [in]      PVOID                              HwDeviceExtension,
  [in, out] PSTOR_SLIST_HEADER                 SListHead,
  [in, out] __drv_aliasesMem PSTOR_SLIST_ENTRY SListEntry,
  [out]     PSTOR_SLIST_ENTRY                  *Result
);

Parameters

[in] HwDeviceExtension

A pointer to the hardware device extension for the host bus adapter (HBA).

[in, out] SListHead

A pointer to an STOR_SLIST_HEADER structure that represents the head of a singly linked list. This structure is considered opaque and is for use by the Storport driver only.

[in, out] SListEntry

A pointer to an STOR_SLIST_ENTRY structure that represents the item to insert into the singly linked list.

[out] Result

A pointer to a list entry pointer. The value returned is a pointer to the previous item that existed at the front of the list. This pervious item remains in the list behind the item new item added from SListEntry. If the list is empty, then NULL is returned in value pointed to by Result.

Return value

StorPortInterlockedPushEntrySList returns one of the following status codes:

Return code Description
STOR_STATUS_NOT_IMPLEMENTED
This function is not implemented on the active operating system.
STOR_STATUS_SUCCESS
The list item was successfully inserted into the list or is already empty.
STOR_STATUS_INVALID_PARAMETER
A pointer in SListHead, SListEntry, or Result is NULL.

Remarks

When allocated by the caller, the STOR_SLIST_ENTRY structure pointed to by SListEntry must be aligned at a MEMORY_ALLOCATION_ALIGNMENT boundary. MEMORY_ALLOCATION_ALIGNMENT is defined in miniport.h.

Requirements

Requirement Value
Minimum supported client Available in starting with Windows 8.
Target Platform Universal
Header storport.h (include Storport.h)
IRQL <= DISPATCH_LEVEL

See also

StorPortInitializeSListHead

StorPortInterlockedFlushSList

StorPortInterlockedPopEntrySList

StorPortQueryDepthSList