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 |
---|---|
|
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 |