Compartir a través de


Función KeSetImportanceDpc (ntddk.h)

La rutina KeSetImportanceDpc especifica la próxima ejecución de 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 inicializado.

[in] Importance

Especifica uno de los siguientes valores definidos por el sistema para determinar el comportamiento de keInsertQueueDpc y ioRequestDpc cuando se usa alguna rutina 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 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

Ninguno

Observaciones

La rutina KeSetImportanceDpc influye en la rapide ejecución de un DPC después de ponerla en cola mediante la determinación de:

  • Ubicación del DPC dentro de la cola DPC. Normalmente, el keInsertQueueDpc y ioRequestDpc las rutinas colocan un DPC al final de la cola. Si un controlador llama primero a KeSetImportanceDpc con Importance = HighImportance, KeInsertQueueDpc y IoRequestDpc colocará el DPC al principio de la cola.
  • Cuando el sistema comienza a procesar la cola DPC. Normalmente, KeInsertQueueDpc y IoRequestDpc comienza inmediatamente a procesar la cola DPC para el procesador actual. Los controladores pueden especificar valores diferentes para Importancia para cambiar este comportamiento.
De forma predeterminada, los DPC se asignan a la cola DPC para el procesador actual, por lo que especificar mediumImportance o MediumHighImportance para Importance tiene el mismo efecto. Sin embargo, los controladores pueden usar keSetTargetProcessorDpc para cambiar el procesador al que se asignará el DPC.

Para Windows Vista y versiones posteriores del sistema operativo Windows, puede usar KeSetImportanceDpc para 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 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 DPCs en subprocesos.

Tenga en cuenta que un controlador debe llamar a KeSetImportanceDpc antes de llamar a KeInsertQueueDpc y 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 Valor
cliente mínimo admitido Disponible a partir de Windows 2000.
de la plataforma de destino de Universal
encabezado de ntddk.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL Cualquier nivel

Consulte también

ioRequestDpc

KeInitializeDpc

KeInsertQueueDpc

keSetTargetProcessorDpc

keSynchronizeExecution