NdisInterlockedPopEntrySList function

The NdisInterlockedPopEntrySList function removes the first entry from a sequenced, singly linked list.

Syntax


PSINGLE_LIST_ENTRY NdisInterlockedPopEntrySList(
  _In_  PSLIST_HEADER ListHead,
  _In_  PNDIS_SPIN_LOCK Lock
);

Parameters

ListHead [in]

A pointer to the head of the already initialized sequenced, singly linked list from which the entry is to be returned.

Lock [in]

A pointer to a caller-supplied spin lock, not currently held by the caller.

Return value

NdisInterlockedPopEntrySList returns a pointer to the first entry in the list. If the list was empty, this routine returns NULL.

Remarks

A driver must not be holding the given Lock when it calls NdisInterlockedPopEntrySList. If necessary, the driver should call the NdisReleaseSpinLock function before making this call. NdisInterlockedPopEntrySList itself must acquire this spin lock to remove the first entry in the S-List, if any, in a multiprocessor-safe way.

The caller must provide resident storage for the Lock, which must be initialized with the NdisAllocateSpinLock function before the initial call to any NdisInterlocked..SList function.

If NdisInterlockedPopEntrySList is called at IRQL >= DISPATCH_LEVEL, the storage for the ListHead parameter must be resident.

Requirements

Version

Supported for NDIS 6.0 and NDIS 5.1 drivers (see NdisInterlockedPopEntrySList (NDIS 5.1)) in Windows Vista. Supported for NDIS 5.1 drivers (see NdisInterlockedPopEntrySList (NDIS 5.1)) in Windows XP.

Header

Ndis.h (include Ndis.h)

IRQL

Any level

See also

NdisAllocateSpinLock
NdisFreeSpinLock
NdisInitializeSListHead
NdisInterlockedPushEntrySList
NdisReleaseSpinLock
NdisQueryDepthSList

 

 

Send comments about this topic to Microsoft

Mostrar:
© 2014 Microsoft