Макрос 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 | Любой уровень |