Microsoft Windows CE 3.0  

NdisInitializeListHead

Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

This function initializes a doubly linked, driver-maintained interlocked queue or doubly linked list.

VOID
NdisInitializeListHead(
IN PLIST_ENTRY
ListHead
);

Parameters

ListHead
Pointer to driver-allocated nonpaged storage for the head of the interlocked queue or list.

Remarks

This function can be called from a MiniportInitializefunction or from a protocol driver's DriverEntryfunction if the driver queues requests internally. However, miniport drivers seldom set up internal queues because the NDIS library serializes requests and packets sent to miniports.

Any NDIS driver that maintains an internal queue is responsible for synchronizing driver functions' accesses to queued entries. The NdisInterlocked XXXListfunctions ensure that only one driver function can access queued entries at any moment, even if the driver is running on a multiprocessor machine, because the queue is protected by a caller-supplied spin lock.

For an interlocked queue, the driver must also provide nonpaged storage for a spin lock. It must initialize the spin lock with NdisAllocateSpinLockbefore passing a pointer to that spin lock to any of the NdisInterlocked XXXListfunctions.

A driver that calls this function usually runs at IRQL PASSIVE_LEVEL because this function is commonly called at initialization.

Requirements

Runs on Versions Defined in Include Link to
Windows CE OS 2.0 and later Ndis.h    
Note   This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API.

See Also

NdisAllocateSpinLock, NdisInterlockedInsertHeadList, NdisInterlockedInsertTailList, NdisInterlockedRemoveHeadList



 Last updated on Tuesday, July 13, 2004

© 2004 Microsoft Corporation. All rights reserved.