Поделиться через


Функция 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.

Эту блокировку спина необходимо использовать только с подпрограммами StorPortInterlockedXxxList.

Возвращаемое значение

StorPortInterlockedInsertHeadList возвращает код состояния, например один из следующих:

Возвращаемый код Описание
STOR_STATUS_NOT_IMPLEMENTED Эта функция не реализована в активной операционной системе.
STOR_STATUS_SUCCESS Элементы списка были удалены успешно или список уже пуст.
STOR_STATUS_INVALID_PARAMETER Указатель в ListHead или ResultNULL.

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка storport.h (include Storport.h)

См. также

InitializeListHead

InsertHeadList

StorPortInitializeSpinLock

StorPortInterlockedInsertTailList

StorPortInterlockedRemoveHeadList