Макрос NdisInitializeSListHead (ndis.h)
Функция NdisInitializeSListHead инициализирует голову последовательного, взаимоблокированного списка, связанного по отдельности.
Синтаксис
void NdisInitializeSListHead(
[in] SListHead
);
Параметры
[in] SListHead
Указатель на инициализированную головку списка, предоставляемую вызывающей стороны, которая должна находиться в постоянной памяти. Структура должна быть выровнена по 16 байтам на 64-разрядных платформах.
Возвращаемое значение
None
Remarks
NdisInitializeSListHead с нуля инициализирует непрозрачный заголовок списка в SListHead и задает для указателя первого входа значение NULL.
Порядковый номер в списке S увеличивается каждый раз, когда запись вставляется в список или удаляется из него.
Все записи в S-List должны быть не загружены.
Любой драйвер, использующий S-List, должен обеспечить блокировку спина для NdisInterlockedPushEntrySList иФункции NdisInterlockedPopEntrySList. Перед первоначальным вызовом любой из этих функций драйвер должен инициализировать блокировку спина с помощью функции NdisAllocateSpinLock . Чтобы предотвратить взаимоблокировку, драйвер не должен удерживать эту спиновую блокировку при последующих вызовах NdisInterlockedPushEntrySList и NdisInterlockedPopEntrySList.
Чтобы управлять пулом записей фиксированного размера из непагрегированных памяти, рассмотрите возможность использования списка lookaside вместо S-List.
Драйверы, которые повторяют операции ввода-вывода, должны использовать вдвойне связанную очередь и функции NdisInterlockedInsertHeadList, NdisInterlockedInsertTailList и NdisInterlockedRemoveHeadList , а не S-List.
Если NdisInitializeSListHead вызывается по адресу IRQL >= DISPATCH_LEVEL, хранилище для параметра SListHead должно быть резидентным.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. раздел NdisInitializeSListHead (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. раздел NdisInitializeSListHead (NDIS 5.1)) в Windows XP. |
Целевая платформа | Персональный компьютер |
Верхняя часть | ndis.h (включая Ndis.h) |
IRQL | Любой уровень |