Condividi tramite


Funzione KeSetImportanceDpc (ntddk.h)

La routine KeSetImportanceDpc specifica il tempo di esecuzione della 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 ha 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.

MediumImportance

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

MediumHighImportance

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

HighImportance

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

Valore restituito

nessuno

Osservazioni

La routine KeSetImportanceDpc influisce sulla frequenza di esecuzione di un DPC dopo la coda determinando:

  • Posizione del DPC all'interno della coda DPC. In genere, le routine KeInsertQueueDpc e IoRequestDpc posizionano un DPC alla fine della coda. Se un driver chiama prima KeSetImportanceDpc con Importance = HighImportance, KeInsertQueueDpc e IoRequestDpc inserisce 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 Importance 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 Importance su HighImportance, il DPC viene posizionato all'inizio della coda; in caso contrario, viene posizionato alla fine. La routine non influisce sull'elaborazione della coda DPC threaded. I DPC in thread vengono sempre elaborati da un thread dedicato in IRQL = PASSIVE_LEVEL. Per altre informazioni sui DPC thread, vedere Introduzione ai DPC con thread.

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

Per altre informazioni sull'elaborazione della coda DPC da parte del sistema, vedere Organizzazione delle code DPC.

Requisiti

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

Vedi anche

IoRequestDpc

KeInitializeDpc

KeInsertQueueDpc

KeSetTargetProcessorDpc

KeSynchronizeExecution