Compartir a través de


Función KeInitializeQueue (ntifs.h)

La rutina KeInitializeQueue inicializa un objeto de cola en el que los subprocesos pueden esperar entradas.

Sintaxis

void KeInitializeQueue(
  [out] PRKQUEUE Queue,
  [in]  ULONG    Count
);

Parámetros

[out] Queue

Puntero a una estructura KQUEUE para la que el autor de la llamada debe proporcionar almacenamiento residente en un grupo no paginado. Esta estructura se define de la siguiente manera:

typedef struct _KQUEUE {
    DISPATCHER_HEADER Header;
    LIST_ENTRY EntryListHead;
    ULONG CurrentCount;
    ULONG MaximumCount;
    LIST_ENTRY ThreadListHead;
} KQUEUE, *PKQUEUE, *RESTRICTED_POINTER PRKQUEUE;
Miembro Significado
Encabezado Encabezado de cola.
EntryListHead Puntero a la primera entrada de la cola.
CurrentCount Número actual de subprocesos que esperan en la cola.
MaximumCount Número máximo de subprocesos simultáneos que la cola puede satisfacer las esperas.
ThreadListHead Puntero a la primera entrada de la lista de subprocesos.

[in] Count

Número máximo de subprocesos para los que se pueden satisfacer simultáneamente las esperas en el objeto de cola. Si no se proporciona este parámetro, se usa el número de procesadores de la máquina.

Valor devuelto

None

Observaciones

Normalmente, el autor de la llamada de KeInitializeQueue también crea un conjunto de subprocesos dedicados para poner en cola y quitar sus entradas. Este tipo de llamador puede especificar un recuento explícito para evitar que demasiados de sus subprocesos dedicados esperen simultáneamente en su objeto de cola.

KeInitializeQueue establece el estado de señal inicial del objeto de cola en Not Signaled.

Para obtener más información sobre el uso de colas internas administradas por controladores, consulte Colas irP administradas por controladores.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado ntifs.h (incluya Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

Consulte también

ExAllocatePoolWithTag

IoAllocateWorkItem

IoQueueWorkItem

KeInsertQueue

KeRemoveQueue

KeRundownQueue

PsCreateSystemThread