WdfInterruptSetPolicy method

[Applies to KMDF and UMDF]

The WdfInterruptSetPolicy method specifies the interrupt priority, processor affinity, and affinity policy for a specified interrupt.

Syntax


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

Parameters

Interrupt [in]

A handle to a framework interrupt object.

Policy [in]

A WDF_INTERRUPT_POLICY-typed enumerator that specifies a processor affinity policy for the interrupt.

Priority [in]

A WDF_INTERRUPT_PRIORITY-typed enumerator that specifies a priority for the interrupt.

TargetProcessorSet [in]

A KAFFINITY-typed value that specifies a processor affinity for the interrupt, if the Policy parameter is set to WdfIrqPolicySpecifiedProcessors.

Return value

None.

A bug check occurs if the driver supplies an invalid object handle.

Remarks

Windows Vista and later versions of the operating system allow drivers to specify an interrupt's priority, processor affinity, and affinity policy. For information about how to use the registry to override the values that WdfInterruptSetPolicy sets, see Interrupt Affinity and Priority.

If a driver is running on an operating system version that is earlier than Windows Vista, the framework ignores the values that the driver specifies when it calls WdfInterruptSetPolicy.

For more information about registry values and INF sections that specify an interrupt's priority, processor affinity, and affinity policy, see Interrupt Affinity and Priority.

If a driver calls WdfInterruptSetPolicy, it typically does so in its EvtDriverDeviceAdd callback function, after calling WdfInterruptCreate.

If your driver creates interrupts in EvtDevicePrepareHardware, do not use WdfInterruptSetPolicy or WdfInterruptSetExtendedPolicy. Instead, apply policy in EvtDeviceFilterAddResourceRequirements, by directly manipulating the interrupt resource requirement that this callback function receives in its IoResourceRequirementsList parameter.

For more information about handling interrupts in framework-based drivers, see Handling Hardware Interrupts.

Examples

The following code example assigns a device interrupt to processor 0, with normal priority.


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

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

Requirements

Minimum KMDF version

1.0

Minimum UMDF version

2.0

Header

Wdfinterrupt.h (include Wdf.h)

Library

Wdf01000.sys (KMDF);
WUDFx02000.dll (UMDF)

IRQL

<=DISPATCH_LEVEL

DDI compliance rules

DriverCreate

See also

WdfInterruptCreate
EvtDriverDeviceAdd
WdfInterruptSetExtendedPolicy

 

 

Send comments about this topic to Microsoft

Afficher:
© 2014 Microsoft