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


Функция ExInterlockedFlushSList (wdm.h)

Подпрограмма ExInterlockedFlushSList атомарно удаляет все записи из последовательно связанного списка.

Синтаксис

NTKERNELAPI
PSLIST_ENTRY
FASTCALL
ExInterlockedFlushSList (
    _Inout_ PSLIST_HEADER ListHead
    );

Параметры

[in, out] ListHead

Указатель на структуру SLIST_HEADER , которая служит заголовком для последовательно связанного списка.

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

Если в указанном списке есть записи, ExInterlockedFlushSList возвращает указатель на первую SLIST_ENTRY структуру, которая была записью в списке; В противном случае возвращается значение NULL.

Комментарии

ExInterlockedFlushSList не удаляет SLIST_ENTRY структуры, которые составили список; он задает только для внутреннего указателя ListHead на начало списка значение NULL. Драйвер должен явно освободить записи.

Подпрограмма возвращает указатель на первую структуру SLIST_ENTRY , которая была в списке. Драйвер может использовать этот указатель для итерации записей.

Дополнительные сведения об использовании этой подпрограммы для реализации последовательно связанного списка см. в статье Singly and Doubly Linked Списки.

Вызывающие функции ExInterlockedFlushSList могут выполняться в любом irQL. Хранилище для параметра ListHead и записей списка должно находиться во всех списках IRQL.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 2000.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Любой уровень (см. раздел "Примечания")

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

ExInitializesListHead