Compartir a través de


Función WdmlibIoGetAffinityInterrupt (iointex.h)

La función WdmlibIoGetAffinityInterrupt obtiene la afinidad de grupo de un objeto de interrupción.

Sintaxis

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

Parámetros

[in] InterruptObject

Puntero a un objeto de interrupción. Este parámetro apunta a una estructura KINTERRUPT que representa un registro por parte de un controlador para recibir interrupciones del dispositivo. La estructura es opaca. El autor de la llamada obtuvo este valor de puntero en una llamada anterior a la rutina WdmlibIoConnectInterruptEx o IoConnectInterrupt .

[out] GroupAffinity

Puntero a un búfer asignado por el autor de la llamada en el que la rutina escribe una estructura de GROUP_AFFINITY que especifica la afinidad de grupo del objeto de interrupción al que apunta InterruptObject . Este búfer debe ser lo suficientemente grande como para contener la estructura .

Valor devuelto

WdmlibIoGetAffinityInterrupt devuelve STATUS_SUCCESS si la llamada se realiza correctamente. Entre los posibles valores devueltos de error se incluyen los siguientes:

Código devuelto Descripción
STATUS_INVALID_PARAMETER
El parámetro InterruptObject no apunta a un objeto de interrupción válido.

Comentarios

Un controlador en modo kernel llama a esta rutina para obtener el conjunto de procesadores lógicos en los que la rutina de servicio de interrupción registrada del controlador (ISR) puede recibir interrupciones del dispositivo. Este conjunto de procesadores se describe mediante una estructura de GROUP_AFFINITY , que especifica un número de grupo y una máscara de afinidad. Todos los procesadores asignados a un registro de ISR determinado deben pertenecer al mismo grupo.

El controlador registró el ISR en una llamada anterior a la rutina WdmlibIoConnectInterruptEx o IoConnectInterrupt .

En Windows 7, WdmlibIoConnectInterruptEx e IoConnectInterrupt asignan interrupciones de dispositivo solo a procesadores lógicos del grupo 0. Esto se aplica de manera predeterminada. Un controlador puede especificar una afinidad de interrupción diferente para su dispositivo en un archivo INF o en su respuesta a una solicitud de IRP_MN_FILTER_RESOURCE_REQUIREMENTS . Para obtener más información sobre cómo cambiar la afinidad de interrupción, vea las notas del producto Sistemas auxiliares que tienen más de 64 procesadores en el sitio web de WHDC.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows 7 y versiones posteriores de Windows.
Plataforma de destino Windows
Encabezado iointex.h (incluya Iointex.h, Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL Cualquier nivel

Consulte también

GROUP_AFFINITY

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoConnectInterrupt

KINTERRUPT

WdmlibIoConnectInterruptEx