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 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 punta InterruptObject . Questo buffer deve essere sufficientemente grande da contenere la struttura.

Valore restituito

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

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

Commenti

Un driver in modalità kernel chiama questa routine per ottenere il set di processori logici in cui la routine del servizio di interruzione registrata del driver (ISR) può ricevere interruzioni del dispositivo. Questo set di processori viene 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 assegnano interrupt del dispositivo solo ai processori logici nel gruppo 0. Questo accade 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 (Sistemi di supporto con più di 64 processori ) nel sito Web WHDC.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows 7 e versioni successive di Windows.
Piattaforma di destinazione Windows
Intestazione iointex.h (include Iointex.h, Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Qualsiasi livello

Vedi anche

GROUP_AFFINITY

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoConnectInterrupt

KINTERRUPT

WdmlibIoConnectInterruptEx