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

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

Синтаксис

void NdisInterlockedPopEntrySList(
        SListHead,
  [in]  Lock
);

Параметры

SListHead

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

[in] Lock

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

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

None

Remarks

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

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

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

Требования

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

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

NdisAllocateSpinLock

NdisFreeSpinLock

NdisInitializeSListHead

NdisInterlockedPushEntrySList

NdisQueryDepthSList

NdisReleaseSpinLock