Макрос NdisInterlockedPushEntrySList (ndis.h)

Функция NdisInterlockedPushEntrySList вставляет запись в начало последовательно связанного списка.

Синтаксис

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

Параметры

SListHead

Указатель на голову уже инициализированного последовательного списка, в который должна быть вставлена указанная запись.

SListEntry

Указатель на вставляемую запись.

[in] Lock

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

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

None

Remarks

Перед первоначальным вызовом функции NdisInterlockedPushEntrySList драйвер должен инициализировать головку списка с помощьюФункция NdisInitializeSListHead.

Драйвер не должен удерживать данную блокировку при вызове NdisInterlockedPushEntrySList. При необходимости драйвер должен вызвать функцию NdisReleaseSpinLock перед вызовом NdisInterlockedPushEntrySList. NdisInterlockedPushEntrySList должен получить эту блокировку перед вставкой ListEntry в начало списка, чтобы убедиться, что эта операция обрабатывается многопроцессорным способом.

Вызывающий объект должен предоставить резидентное хранилище для блокировки, который должен быть инициализирован с помощью функции NdisAllocateSpinLock перед первоначальным вызовом любого NdisInterlocked.. Подпрограмма SList .

Драйверы, которые повторяют операции ввода-вывода, должны использовать вдвойне связанную очередь и NdisInterlockedInsert/Remove.. Функции списка , а не S-List.

Если NdisInterlockedPushEntrySList вызывается в IRQL >= DISPATCH_LEVEL, хранилище для параметра ListHead и записей списка должно быть резидентным.

Требования

Требование Значение
Минимальная версия клиента Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. раздел NdisInterlockedPushEntrySList (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. раздел NdisInterlockedPushEntrySList (NDIS 5.1)) в Windows XP.
Целевая платформа Персональный компьютер
Верхняя часть ndis.h (включая Ndis.h)
IRQL Любой уровень

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

NdisAllocateSpinLock

NdisFreeSpinLock

NdisInitializeSListHead

NdisInterlockedPopEntrySList

NdisQueryDepthSList

NdisReleaseSpinLock