Compartir a través de


Función WdfInterruptSetPolicy (wdfinterrupt.h)

[Se aplica a KMDF y UMDF]

El método WdfInterruptSetPolicy especifica la prioridad de interrupción, la afinidad del procesador y la directiva de afinidad para una interrupción especificada.

Sintaxis

void WdfInterruptSetPolicy(
  [in] WDFINTERRUPT           Interrupt,
  [in] WDF_INTERRUPT_POLICY   Policy,
  [in] WDF_INTERRUPT_PRIORITY Priority,
  [in] KAFFINITY              TargetProcessorSet
);

Parámetros

[in] Interrupt

Identificador de un objeto de interrupción de marco.

[in] Policy

Enumerador con tipo WDF_INTERRUPT_POLICY que especifica una directiva de afinidad de procesador para la interrupción.

[in] Priority

Enumerador con tipo WDF_INTERRUPT_PRIORITY que especifica una prioridad para la interrupción.

[in] TargetProcessorSet

Valor con tipo KAFFINITY que especifica una afinidad de procesador para la interrupción, si el parámetro Policy se establece en WdfIrqPolicySpecifiedProcessors.

Valor devuelto

None

Observaciones

Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.

Windows Vista y versiones posteriores del sistema operativo permiten a los controladores especificar la prioridad de una interrupción, la afinidad de procesador y la directiva de afinidad. Para obtener información sobre cómo usar el Registro para invalidar los valores que WdfInterruptSetPolicy establece, vea Affinity and Priority (Afinidad de interrupción y prioridad).

Si un controlador se ejecuta en una versión del sistema operativo anterior a Windows Vista, el marco omite los valores que el controlador especifica cuando llama a WdfInterruptSetPolicy.

Para obtener más información sobre los valores del Registro y las secciones INF que especifican la prioridad de una interrupción, la afinidad de procesador y la directiva de afinidad, consulte Afinidad de interrupción y Prioridad.

Si un controlador llama a WdfInterruptSetPolicy, normalmente lo hace en su función de devolución de llamada EvtDriverDeviceAdd , después de llamar a WdfInterruptCreate.

Si el controlador crea interrupciones en EvtDevicePrepareHardware, no use WdfInterruptSetPolicy o WdfInterruptSetExtendedPolicy. En su lugar, aplique la directiva en EvtDeviceFilterAddResourceRequirements, manipulando directamente el requisito de recurso de interrupción que recibe esta función de devolución de llamada en su parámetro IoResourceRequirementsList .

Para obtener más información sobre el control de interrupciones en controladores basados en marcos, consulte Control de interrupciones de hardware.

Ejemplos

En el ejemplo de código siguiente se asigna una interrupción del dispositivo al procesador 0, con prioridad normal.

#define AFFINITY_MASK(n) ((ULONG_PTR)1 << (n))

WdfInterruptSetPolicy(
                      Interrupt,
                      WdfIrqPolicySpecifiedProcessors,
                      WdfIrqPriorityNormal,
                      AFFINITY_MASK(0)
                      );

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado wdfinterrupt.h (incluir Wdf.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
Reglas de cumplimiento de DDI DriverCreate(kmdf)

Consulte también

EvtDriverDeviceAdd

WdfInterruptCreate

WdfInterruptSetExtendedPolicy