NdisInterlockedPushEntrySList 宏 (ndis.h)

NdisInterlockedPushEntrySList 函数在经过排序的单独链接列表的头部插入一个条目。

语法

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

参数

SListHead

指向已初始化的单独链接列表的头的指针,指定条目将插入其中。

SListEntry

指向要插入的条目的指针。

[in] Lock

指向调用方提供的旋转锁的指针,当前不由调用方持有。

返回值

备注

在驱动程序初始调用 NdisInterlockedPushEntrySList 函数之前,它必须使用 初始化列表头 NdisInitializeSListHead 函数。

驱动程序在调用 NdisInterlockedPushEntrySList不得持有给定的锁。 如有必要,驱动程序必须在调用 NdisInterlockedPushEntrySList 之前调用 NdisReleaseSpinLock 函数。 NdisInterlockedPushEntrySList 必须先获取此锁本身,然后才能在列表的头部插入 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