Condividi tramite


Funzione KeSetImportanceDpc (wdm.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 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 immediatamente l'elaborazione della coda. MediumImportance è il valore predefinito per Importance.

MediumHighImportance

Posizionare il DPC alla fine della coda DPC e iniziare immediatamente l'elaborazione della 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 influenza il tempo 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 inserirà il DPC all'inizio della coda.
  • Quando il sistema inizia a elaborare la coda DPC. In genere, KeInsertQueueDpc e IoRequestDpc iniziare 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 rete vengono assegnati alla coda DPC per il processore corrente, quindi specificando MediumImportance o MediumHighImportance per 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, puoi 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 CONTROLLER di dominio threadati vengono sempre elaborati da un thread dedicato in IRQL = PASSIVE_LEVEL. Per altre informazioni sui controller di dominio threadati, vedere Introduzione ai CONTROLLER di dominio 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.

Fabbisogno

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

Vedere anche

IoRequestDpc

KeInitializeDpc

KeInsertQueueDpc

KeSetTargetProcessorDpc

KeSynchronizeExecution