NdisInterlockedPushEntrySList 宏 (ndis.h)

NdisInterlockedPushEntrySList 函式會在循序、單選連結清單的前端插入專案。

語法

void NdisInterlockedPushEntrySList(
        SListHead,
        SListEntry,
  [in]  Lock
);

參數

SListHead

已初始化之已初始化之前端的指標,此列表會以單一方式連結清單,其中要插入指定的專案。

SListEntry

要插入之專案的指標。

[in] Lock

呼叫端提供的微調鎖定指標,目前不是由呼叫端持有。

傳回值

備註

在驅動程式的初始呼叫 NdisInterlockedPushEntrySList 函式之前,它必須使用 初始化清單前端 NdisInitializeSListHead 函式。

驅動程式在呼叫 NdisInterlockedPushEntrySList,不得保留指定的 Lock。 如有必要,驅動程式必須先呼叫 NdisReleaseSpinLock 函式,才能呼叫 NdisInterlockedPushEntrySListNdisInterlockedPushEntrySList 必須先取得此鎖定本身,才能將 ListEntry 插入清單的前端,以確保此作業是以多處理器安全的方式處理。

呼叫端必須提供 Lock 的駐留記憶體,其必須在初始呼叫任何 NdisInterlocked 之前,使用 NdisAllocateSpinLock 函式初始化 。SList 例程。

重試 I/O 作業的驅動程序應該使用已連結的雙聯結佇列和 NdisInterlockedInsert/Remove。。列出 函式,而不是 S-List。

如果在 IRQL >= DISPATCH_LEVEL 呼叫 NdisInterlockedPushEntrySList則 ListHead 參數和列表專案的記憶體必須位於

規格需求

需求
最低支援的用戶端 支援 NDIS 6.0 和 NDIS 5.1 驅動程式 (請參閱 Windows Vista 中的 NdisInterlockedPushEntrySList (NDIS 5.1) ) 。 支援 NDIS 5.1 驅動程式 (請參閱 Windows XP 中的 NdisInterlockedPushEntrySList (NDIS 5.1) ) 。
目標平台 桌面
標頭 ndis.h (包含 Ndis.h)
IRQL 任何層級

另請參閱

NdisAllocateSpinLock

NdisFreeSpinLock

NdisInitializeSListHead

NdisInterlockedPopEntrySList

NdisQueryDepthSList

NdisReleaseSpinLock