Função KeInitializeQueue (ntifs.h)
A rotina KeInitializeQueue inicializa um objeto de fila no qual os threads podem aguardar entradas.
Sintaxe
void KeInitializeQueue(
[out] PRKQUEUE Queue,
[in] ULONG Count
);
Parâmetros
[out] Queue
Ponteiro para uma estrutura KQUEUE para a qual o chamador deve fornecer armazenamento residente em pool nãopagado. Essa estrutura é definida da seguinte maneira:
typedef struct _KQUEUE {
DISPATCHER_HEADER Header;
LIST_ENTRY EntryListHead;
ULONG CurrentCount;
ULONG MaximumCount;
LIST_ENTRY ThreadListHead;
} KQUEUE, *PKQUEUE, *RESTRICTED_POINTER PRKQUEUE;
Membro | Significado |
---|---|
Cabeçalho | Cabeçalho da fila. |
EntryListHead | Ponteiro para a primeira entrada na fila. |
Currentcount | Número atual de threads aguardando na fila. |
Maximumcount | Número máximo de threads simultâneos pelos quais a fila pode atender às esperas. |
ThreadListHead | Ponteiro para a primeira entrada na lista de threads. |
[in] Count
O número máximo de threads para os quais as esperas no objeto de fila podem ser atendidas simultaneamente. Se esse parâmetro não for fornecido, o número de processadores no computador será usado.
Retornar valor
Nenhum
Comentários
Normalmente, o chamador de KeInitializeQueue também cria um conjunto de threads dedicados para enfileirar e remover a fila de suas entradas. Esse chamador pode especificar uma Contagem explícita para impedir que muitos de seus threads dedicados esperem simultaneamente em seu objeto de fila.
KeInitializeQueue define o estado de sinal inicial do objeto de fila como Não Sinalizado.
Para obter mais informações sobre como usar filas internas gerenciadas pelo driver, consulte Filas IRP gerenciadas pelo driver.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Cabeçalho | ntifs.h (inclua Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |