StorPortInterlockedInsertHeadList 函数 (storport.h)

StorPortInterlockedInsertHeadList 例程以原子方式在 STOR_LIST_ENTRY 结构的双链接列表的开头插入一个条目。

语法

ULONG StorPortInterlockedInsertHeadList(
  [in]      PVOID            HwDeviceExtension,
  [in, out] PSTOR_LIST_ENTRY ListHead,
  [in, out] PSTOR_LIST_ENTRY ListEntry,
  [in, out] PSTOR_LIST_ENTRY *Result,
  [in, out] PSTOR_KSPIN_LOCK Lock
);

参数

[in] HwDeviceExtension

指向主机总线适配器的硬件设备扩展的指针 (HBA) 。

[in, out] ListHead

指向 STOR_LIST_ENTRY 结构的指针,该结构表示列表的标题。

[in, out] ListEntry

指向 STOR_LIST_ENTRY 结构的指针,该结构表示要插入列表的条目。

[in, out] Result

指向 STOR_LIST_ENTRY 结构的指针,该结构表示插入新条目之前列表的第一个条目。

[in, out] Lock

指向 STOR_KSPIN_LOCK 结构的指针,该结构充当用于同步对列表的访问的旋转锁。 旋转锁的存储必须是驻留的,并且必须已通过调用 StorPortInitializeSpinLock 进行初始化。

必须仅将此旋转锁与 StorPortInterlockedXxx列表 例程一起使用。

返回值

StorPortInterlockedInsertHeadList 返回如下状态代码之一:

返回代码 说明
STOR_STATUS_NOT_IMPLEMENTED 此函数未在活动操作系统上实现。
STOR_STATUS_SUCCESS 已成功删除列表项或列表已为空。
STOR_STATUS_INVALID_PARAMETER ListHeadResult 中的指针为 NULL

要求

要求
目标平台 通用
标头 storport.h (包括 Storport.h)

另请参阅

InitializeListHead

InsertHeadList

StorPortInitializeSpinLock

StorPortInterlockedInsertTailList

StorPortInterlockedRemoveHeadList