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


Функция StorPortInterlockedPushEntrySList (storport.h)

Вставляет элемент в начало списка, управляемого Storport, отдельно связанного. Доступ к списку синхронизируется в многопроцессорной системе.

Синтаксис

ULONG StorPortInterlockedPushEntrySList(
  [in]      PVOID                              HwDeviceExtension,
  [in, out] PSTOR_SLIST_HEADER                 SListHead,
  [in, out] __drv_aliasesMem PSTOR_SLIST_ENTRY SListEntry,
  [out]     PSTOR_SLIST_ENTRY                  *Result
);

Параметры

[in] HwDeviceExtension

Указатель на расширение аппаратного устройства для адаптера шины узла (HBA).

[in, out] SListHead

Указатель на структуру STOR_SLIST_HEADER , представляющую заголовок последовательно связанного списка. Эта структура считается непрозрачной и предназначена только для драйвера Storport.

[in, out] SListEntry

Указатель на структуру STOR_SLIST_ENTRY , представляющую элемент, вставляемый в отдельно связанный список.

[out] Result

Указатель на указатель на вход в список. Возвращаемое значение является указателем на предыдущий элемент, который существовал в начале списка. Предыдущий элемент остается в списке за новым элементом, добавленным из SListEntry. Если список пуст, возвращается значение NULL в значении, на которое указывает Result.

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

StorPortInterlockedPushEntrySList возвращает один из следующих кодов состояния:

Код возврата Описание
STOR_STATUS_NOT_IMPLEMENTED
Эта функция не реализована в активной операционной системе.
STOR_STATUS_SUCCESS
Элемент списка был успешно вставлен в список или уже пуст.
STOR_STATUS_INVALID_PARAMETER
Указатель в SListHead, SListEntry или Result имеет значение NULL.

Комментарии

При выделении вызывающим объектом структура STOR_SLIST_ENTRY , на которую указывает SListEntry , должна быть выровнена по MEMORY_ALLOCATION_ALIGNMENT границе. MEMORY_ALLOCATION_ALIGNMENT определяется в файле miniport.h.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 8.
Целевая платформа Универсальное
Верхняя часть storport.h (включая Storport.h)
IRQL <= DISPATCH_LEVEL

См. также раздел

StorPortInitializesListHead

StorPortInterlockedFlushSList

StorPortInterlockedPopEntrySList

StorPortQueryDepthSList