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


Функция 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 возвращается в значении, на которое указывает результирующий.

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

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

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

Замечания

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows 8.
целевая платформа Всеобщий
заголовка storport.h (include Storport.h)
IRQL <= DISPATCH_LEVEL

См. также

StorPortInitializeSListHead

StorPortInterlockedFlushSList

StorPortInterlockedPopEntrySList

StorPortQueryDepthSList