Condividi tramite


Funzione KeSetImportanceDpc (wdm.h)

La routine KeSetImportanceDpc specifica quanto presto viene eseguita la routine DPC.

Sintassi

void KeSetImportanceDpc(
  [in, out] PRKDPC          Dpc,
  [in]      KDPC_IMPORTANCE Importance
);

Parametri

[in, out] Dpc

Puntatore all'oggetto DPC del chiamante, che KeInitializeDpc già inizializzato.

[in] Importance

Specifica uno dei valori definiti dal sistema seguenti per determinare il comportamento di KeInsertQueueDpc e IoRequestDpc quando una delle routine viene usata per accodare il DPC.

LowImportance

Posizionare il DPC alla fine della coda DPC e non iniziare l'elaborazione della coda.

MediaImportanza

Posizionare il DPC alla fine della coda DPC. Se il DPC viene assegnato alla coda DPC del processore corrente, iniziare a elaborare immediatamente la coda. MediumImportance è il valore predefinito per l'importanza.

MediumHighImportance

Posizionare il DPC alla fine della coda DPC e iniziare a elaborare immediatamente la coda. MediumHighImportance è disponibile solo in Windows Vista e versioni successive di Windows.

HighImportance

Posizionare il DPC all'inizio della coda DPC e iniziare a elaborare immediatamente la coda.

Valore restituito

nessuno

Osservazioni

La routine KeSetImportanceDpc influisce sul modo in cui viene eseguito un DPC dopo la coda determinando:

  • Posizione del DPC all'interno della coda DPC. In genere, le routine KeInsertQueueDpc e IoRequestDpc inserisce un DPC alla fine della coda. Se un driver chiama prima KeSetImportanceDpc con Importanza = HighImportance, KeInsertQueueDpc e IoRequestDpc posiziona il DPC all'inizio della coda.
  • Quando il sistema inizia a elaborare la coda DPC. In genere, KeInsertQueueDpc e IoRequestDpc iniziano immediatamente a elaborare la coda DPC per il processore corrente. I driver possono specificare valori diversi per Importanza per modificare questo comportamento.
Per impostazione predefinita, i controller di dominio vengono assegnati alla coda DPC per il processore corrente, quindi specificando MediumImportance o MediumHighImportance for Importance ha lo stesso effetto. Tuttavia, i driver possono usare KeSetTargetProcessorDpc per modificare il processore a cui verrà assegnato il DPC.

Per Windows Vista e versioni successive del sistema operativo Windows, è possibile usare KeSetImportanceDpc per i controller di dominio thread. Se il chiamante imposta Importanza su HighImportance, il DPC viene posizionato all'inizio della coda; in caso contrario, viene posizionato alla fine. La routine non influisce quando viene elaborata la coda DPC threaded. I DPC threadati vengono sempre elaborati da un thread dedicato in IRQL = PASSIVE_LEVEL. Per altre informazioni sui controller di dominio con thread, vedere Introduzione ai DPC thread.

Si noti che un driver deve chiamare KeSetImportanceDpc prima di chiamare KeInsertQueueDpc e IoRequestDpc per avere alcun effetto.

Per altre informazioni su come il sistema elabora la coda DPC, vedere Organizzazione delle code DPC.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 2000.
Piattaforma di destinazione Universale
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Qualsiasi livello

Vedi anche

IoRequestDpc

KeInitializeDpc

KeInsertQueueDpc

KeSetTargetProcessorDpc

KeSynchronizeExecution