共用方式為


WdfInterruptSetExtendedPolicy 函式 (wdfinterrupt.h)

[適用於 KMDF 和 UMDF]

WdfInterruptSetExtendedPolicy 方法會指定指定中斷優先順序、處理器親和性、親和性原則,以及指定中斷的處理器群組。

語法

void WdfInterruptSetExtendedPolicy(
  [in] WDFINTERRUPT                   Interrupt,
  [in] PWDF_INTERRUPT_EXTENDED_POLICY PolicyAndGroup
);

參數

[in] Interrupt

架構中斷物件的句柄。

[in] PolicyAndGroup

呼叫端配置和初始化 之WDF_INTERRUPT_EXTENDED_POLICY 結構的指標。

傳回值

備註

如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。

Windows Vista 和更新版本的操作系統可讓驅動程式使用 WdfInterruptSetPolicy 方法來指定中斷的優先順序、處理器親和性和親和性原則。 此外,1.9 版和更新版本的 KMDF 可讓驅動程式使用 WdfInterruptSetExtendedPolicy 方法來指定中斷的優先順序、處理器親和性、同質原則和處理器群組。

如需如何使用登錄來覆寫 WdfInterruptSetExtendedPolicy 設定 的值的相關信息,請參閱 中斷親和性和優先順序

如果驅動程式是在早於 Windows 7 的作業系統版本上執行,則架構會忽略驅動程式在呼叫 WdfInterruptSetExtendedPolicy 時為處理器群組編號指定的值。

如果驅動程式是在早於 Windows Vista 的作業系統版本上執行,架構會忽略驅動程式呼叫 WdfInterruptSetPolicyWdfInterruptSetExtendedPolicy 時所指定的所有值。

如需指定中斷優先順序、處理器親和性和親和性原則之登錄值和 INF 區段的詳細資訊,請參閱 中斷親和性和優先順序

如果驅動程式呼叫 WdfInterruptSetExtendedPolicy,在呼叫 WdfInterruptCreate 之後,它通常會在其 EvtDriverDeviceAdd 回呼函式中執行此動作。

如果您的驅動程式在 EvtDevicePrepareHardware 中建立中斷,請勿使用 WdfInterruptSetPolicyWdfInterruptSetExtendedPolicy。 相反地,您可以直接操作此回呼函式在其 IoResourceRequirementsList 參數中接收的中斷資源需求,改為在 EvtDeviceFilterAddResourceRequirements 中套用原則。

如需在架構型驅動程式中處理中斷的詳細資訊,請參閱 處理硬體中斷

範例

下列程式代碼範例會 呼叫 WDF_INTERRUPT_EXTENDED_POLICY_INIT 來初始化 WDF_INTERRUPT_EXTENDED_POLICY 結構;會設定原則、優先順序和目標處理器集的值;和 會呼叫 WdfInterruptSetExtendedPolicy。 此範例會設定中斷的一般優先順序,並將中斷指派給處理器群組 2 中的處理器 0。

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

WDF_INTERRUPT_EXTENDED_POLICY myExtendedPolicy;

WDF_INTERRUPT_EXTENDED_POLICY_INIT(&myExtendedPolicy);
myExtendedPolicy.Policy = WdfIrqPolicySpecifiedProcessors;
myExtendedPolicy.Priority = WdfIrqPriorityNormal;
myExtendedPolicy.TargetProcessorSetAndGroup.Mask = AFFINITY_MASK(0);
myExtendedPolicy.TargetProcessorSetAndGroup.Group = 2;

WdfInterruptSetExtendedPolicy(
                              Interrupt,
                              &myExtendedPolicy
 );

規格需求

需求
目標平台 Universal
最低 KMDF 版本 1.9
最低UMDF版本 2.0
標頭 wdfinterrupt.h (包含 Wdf.h)
程式庫 Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI 合規性規則 DriverCreate (kmdf)

另請參閱

WdfInterruptSetPolicy