Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A rotina ExInterlockedPopEntryList remove atomicamente uma entrada do início de uma lista vinculada de estruturas de SINGLE_LIST_ENTRY .
Sintaxe
PSINGLE_LIST_ENTRY ExInterlockedPopEntryList(
[in, out] PSINGLE_LIST_ENTRY ListHead,
[in, out] PKSPIN_LOCK Lock
);
Parâmetros
[in, out] ListHead
Um ponteiro para a estrutura SINGLE_LIST_ENTRY que serve como o cabeçalho de lista. O armazenamento para ListHead deve ser residente em todas as IRQLs.
[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
ExInterlockedPopEntryList retorna um ponteiro para a estrutura SINGLE_LIST_ENTRY removida da lista. Se a lista estiver vazia, a rotina retornará NULL.
Comentários
ExInterlockedPopEntryList executa a mesma operação que PopEntryList, mas atomicamente. Não misture chamadas atômicas e não atômicas na mesma lista.
Para obter mais informações sobre como usar essa rotina para implementar uma lista vinculada, consulte Singly e Doubly Linked Listas.
A rotina ExInterlockedPopEntryList pode ser chamada 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) |