Función WdmlibIoGetAffinityInterrupt (iointex.h)

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

Sintaxis

C++
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 de 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 de 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 interruptObject apunta. 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 valores devueltos de error posibles 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.

Observaciones

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 WdmlibIoConnectInterrupt Ex o IoConnectInterrupt.

En Windows 7, WdmlibIoConnectInterruptEx y IoConnectInterrupt asignar interrupciones de dispositivo solo a procesadores lógicos del grupo 0. Esto es de forma 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, consulte las notas del producto sistemas auxiliares que tienen más de 64 procesadores notas del producto en el sitio web de WHDC.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible en Windows 7 y versiones posteriores de Windows.
de la plataforma de destino de Windows
encabezado de iointex.h (incluya Iointex.h, Wdm.h, Ntddk.h, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL Cualquier nivel

Consulte también

GROUP_AFFINITY

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

ioConnectInterrupt

KINTERRUPT

WdmlibIoConnectInterruptEx