Condividi tramite


Funzione WdmlibIoGetAffinityInterrupt (iointex.h)

La funzione WdmlibIoGetAffinityInterrupt ottiene l'affinità di gruppo di un oggetto interrupt.

Sintassi

NTSTATUS WdmlibIoGetAffinityInterrupt(
  [in]  PKINTERRUPT     InterruptObject,
  [out] PGROUP_AFFINITY GroupAffinity
);

Parametri

[in] InterruptObject

Puntatore a un oggetto interrupt. Questo parametro punta a una struttura KINTERRUPT che rappresenta una registrazione da parte di un driver per ricevere gli interrupt del dispositivo. La struttura è opaca. Il chiamante ha ottenuto questo valore del puntatore in una chiamata precedente alla routine WdmlibIoConnectInterruptEx o IoConnectInterrupt.

[out] GroupAffinity

Puntatore a un buffer allocato dal chiamante in cui la routine scrive una struttura GROUP_AFFINITY che specifica l'affinità di gruppo dell'oggetto interrupt a cui interruptObject punta. Questo buffer deve essere sufficientemente grande da contenere la struttura.

Valore restituito

WdmlibIoGetAffinityInterrupt restituisce STATUS_SUCCESS se la chiamata ha esito positivo. I possibili valori restituiti dall'errore includono quanto segue:

Codice restituito Descrizione
STATUS_INVALID_PARAMETER
Il parametro InterruptObject non punta a un oggetto interrupt valido.

Osservazioni

Un driver in modalità kernel chiama questa routine per ottenere il set di processori logici in cui la routine del servizio interrupt registrato del driver (ISR) può ricevere interrupt del dispositivo. Questo set di processori è descritto da una struttura GROUP_AFFINITY, che specifica un numero di gruppo e una maschera di affinità. Tutti i processori assegnati a una particolare registrazione ISR devono appartenere allo stesso gruppo.

Il driver ha registrato l'ISR in una chiamata precedente alla routine WdmlibIoConnectInterruptEx o IoConnectInterrupt.

In Windows 7 WdmlibIoConnectInterruptEx e IoConnectInterrupt assegnare interrupt del dispositivo solo ai processori logici nel gruppo 0. Questa opzione è per impostazione predefinita. Un driver può specificare un'affinità di interruzione diversa per il dispositivo in un file INF o nella risposta a una richiesta di IRP_MN_FILTER_RESOURCE_REQUIREMENTS. Per altre informazioni su come modificare l'affinità di interruzione, vedere il white paper Support Systems that have More Than 64 Processors white paper (Sistemi di supporto di con più di 64 processori sul sito Web WHDC).

Fabbisogno

Requisito Valore
client minimo supportato Disponibile in Windows 7 e versioni successive di Windows.
piattaforma di destinazione Finestre
intestazione iointex.h (include Iointex.h, Wdm.h, Ntddk.h, Ntifs.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL Qualsiasi livello

Vedere anche

GROUP_AFFINITY

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoConnectInterrupt

KINTERRUPT

WdmlibIoConnectInterruptEx