Função ExInterlockedPopEntrySList (wdm.h)
A rotina ExInterlockedPopEntrySList remove atomicamente a primeira entrada de uma lista vinculada sequenciadamente.
Sintaxe
NTKERNELAPI
PSLIST_ENTRY
FASTCALL
ExInterlockedPopEntrySList (
_Inout_ PSLIST_HEADER ListHead,
_Inout_opt_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock
);
Parâmetros
[in, out] ListHead
Um ponteiro para a estrutura SLIST_HEADER que serve como o cabeçalho da lista vinculada sequenciada. ListHead deve ter sido inicializado chamando ExInitializeSListHead.
[in, out] Lock
Um ponteiro para uma estrutura KSPIN_LOCK que serve como o bloqueio de rotação usado para sincronizar o acesso à lista. O armazenamento do bloqueio de rotação deve ser residente e deve ter sido inicializado chamando KeInitializeSpinLock. Você deve usar esse bloqueio de rotação somente com as rotinas da ListaXxxExInterlocked .
Retornar valor
ExInterlockedPopEntrySList retorna um ponteiro para a primeira estrutura SLIST_ENTRY na lista. Se a lista estiver vazia, a rotina retornará NULL.
Comentários
Para obter mais informações sobre como usar essa rotina para implementar uma lista vinculada em sequência, consulte Singly e Doubly Linked Listas.
No Windows 2000, os drivers devem usar a opção -D_WIN2K_COMPAT_SLIST_USAGE para vincular com êxito o código que usa ExInterlockedPopEntrySList.
ExInterlockedPopEntrySList pode ser chamado em qualquer IRQL. O armazenamento para o parâmetro ListHead deve ser residente em todas as IRQLs.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows 2000. |
Plataforma de Destino | Universal |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Qualquer nível (consulte a seção Comentários) |