Función KeSetImportanceDpc (ntddk.h)
La rutina KeSetImportanceDpc especifica en qué momento se ejecuta la rutina DPC.
Sintaxis
void KeSetImportanceDpc(
[in, out] PRKDPC Dpc,
[in] KDPC_IMPORTANCE Importance
);
Parámetros
[in, out] Dpc
Puntero al objeto DPC del autor de la llamada, que KeInitializeDpc ya inicializó.
[in] Importance
Especifica uno de los siguientes valores definidos por el sistema para determinar el comportamiento de KeInsertQueueDpc e IoRequestDpc cuando se usa cualquiera de las rutinas para poner en cola el DPC.
LowImportance
Coloque el DPC al final de la cola DPC y no comience el procesamiento de la cola.
MediumImportance
Coloque el DPC al final de la cola de DPC. Si el DPC se asigna a la cola DPC del procesador actual, comience a procesar la cola inmediatamente. MediumImportance es el valor predeterminado de Importance.
MediumHighImportance
Coloque el DPC al final de la cola DPC y comience a procesar la cola inmediatamente. MediumHighImportance solo está disponible en Windows Vista y versiones posteriores de Windows.
HighImportance
Coloque el DPC al principio de la cola DPC y comience a procesar la cola inmediatamente.
Valor devuelto
None
Observaciones
La rutina KeSetImportanceDpc influye en la rapididad en que se ejecuta un DPC después de que se pone en cola mediante la determinación de:
- Ubicación del DPC dentro de la cola de DPC. Normalmente, las rutinas KeInsertQueueDpc e IoRequestDpc colocan un DPC al final de la cola. Si un controlador llama primero a KeSetImportanceDpc con Importance = HighImportance, KeInsertQueueDpc e IoRequestDpc colocarán el DPC al principio de la cola.
- Cuando el sistema comienza a procesar la cola DPC. Normalmente, KeInsertQueueDpc e IoRequestDpc comienzan inmediatamente a procesar la cola DPC para el procesador actual. Los controladores pueden especificar valores diferentes para que Importance cambie este comportamiento.
Para Windows Vista y versiones posteriores del sistema operativo Windows, puedes usar KeSetImportanceDpc para LOS DPC en subprocesos. Si el autor de la llamada establece Importance en HighImportance, el DPC se coloca al principio de la cola; de lo contrario, se coloca al final. La rutina no afecta cuando se procesa la cola DPC en subproceso. Los DPC en subprocesos siempre se procesan mediante un subproceso dedicado en IRQL = PASSIVE_LEVEL. Para obtener más información sobre los DPC en subprocesos, consulte Introducción a los DPC en subprocesos.
Tenga en cuenta que un controlador debe llamar a KeSetImportanceDpc antes de llamar a KeInsertQueueDpc e IoRequestDpc para tener cualquier efecto.
Para obtener más información sobre cómo el sistema procesa la cola DPC, consulte Organización de colas de DPC.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible a partir de Windows 2000. |
Plataforma de destino | Universal |
Encabezado | ntddk.h (incluya Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | Cualquier nivel |