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


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

См. также

NdisInitializeNPagedLookasideList

NdisInterlockedPopEntrySList

NdisInterlockedPushEntrySList

NdisQueryDepthSList

NdisQueueIoWorkItem