Макрос NdisInitializeSListHead (ndis.h)
Функция NdisInitializeSListHead инициализирует голову последовательного, заблокированного, последовательно связанного списка.
Синтаксис
void NdisInitializeSListHead(
[in] SListHead
);
Параметры
[in] SListHead
Указатель на инициализированную головку списка, предоставляемую вызывающим, которая должна находиться в памяти резидента. Структура должна быть выровнена по 16 байтам на 64-разрядных платформах.
Возвращаемое значение
Никакой
Замечания
NdisInitializeSListHead ноль инициализирует головку непрозрачного списка в SListHead и задает указатель первого входа на NULL.
Порядковый номер в списке S-List увеличивается каждый раз, когда запись вставляется в список или удаляется из него.
Все записи в списке S-List должны быть неупакованы.
Любой драйвер, использующий S-List, должен предоставить блокировку спина для NdisInterlockedPushEntrySList и функции NdisInterlockedPopEntrySList. Перед первоначальным вызовом любой из этих функций драйвер должен инициализировать блокировку спина с помощью функции NdisAllocateSpinLock. Чтобы предотвратить взаимоблокировку, драйвер не должен держать эту блокировку спина при последующих вызовах NdisInterlockPushEntrySList и NdisInterlockPopEntrySList.
Чтобы управлять пулом записей фиксированного размера из непагрегированного объема памяти, рекомендуется использовать список 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 (include Ndis.h) |
IRQL | Любой уровень |