IWDFDevice3::CreateInterrupt 方法 (wudfddi.h)
[警告: UMDF 2 是最新版本的 UMDF,並取代 UMDF 1。 所有新的UMDF驅動程式都應該使用UMDF 2撰寫。 未將新功能新增至 UMDF 1,而且較新版本的 Windows 10 上對 UMDF 1 的支援有限。 通用 Windows 驅動程式必須使用 UMDF 2。 如需詳細資訊,請參閱 開始使用 UMDF。]
CreateInterrupt 方法會建立架構中斷物件。
語法
HRESULT CreateInterrupt(
[in] PWUDF_INTERRUPT_CONFIG Configuration,
[out] IWDFInterrupt **ppInterrupt
);
參數
[in] Configuration
由呼叫 WUDF_INTERRUPT_CONFIG_INIT 巨集所初始化之 WUDF_INTERRUPT_CONFIG 結構的指標。
[out] ppInterrupt
緩衝區的指標,接收新插斷物件的 IWDFInterrupt 介面指標。
傳回值
如果作業成功,此方法會傳回S_OK。 否則,此方法會傳回 Winerror.h 中定義的其中一個錯誤碼。
言論
您的驅動程式必須針對裝置所需的每個中斷向量呼叫 CreateInterrupt 一次。 如果裝置支援訊息訊號中斷 (MSI),驅動程式必須為每個裝置可支援的訊息建立插斷物件。
驅動程式通常會從 OnDeviceAdd 回呼函式呼叫 CreateInterrupt 方法,但也可以從 IPnpCallbackHardware2::OnPrepareHardware呼叫此方法。
在隨插即用 (PnP) 管理員將系統資源指派給裝置之後,架構會將裝置指派的中斷資源的相關信息儲存在驅動程式已建立的插斷物件中。 (不支援隨插即用的驅動程式無法使用插斷物件。
系統可能不會指派裝置可支援的所有中斷資源。 例如,驅動程式會為能夠支援八個 MSI 訊息的裝置建立八個中斷物件。 不過,系統可能只將一則訊息指派給裝置。 在此情況下,將會使用七個中斷物件。
一般而言,驅動程式應該將插斷特定資訊儲存在中斷對象的內容空間中,例如裝置中斷緩存器複製的內容。 驅動程式會呼叫 IWDFObject::AssignContext 來註冊內容,並在對象變成無效時要求通知。
UMDF 支援從 Windows 8 開始的層級觸發中斷。 如果 Windows 8 之前的作系統上執行的驅動程式會在 OnDeviceAdd中建立層級觸發的中斷,CreateInterrupt 成功,因為作系統尚未指派資源。 不過,當架構稍後嘗試連線中斷時,裝置將無法啟動。
如需處理 UMDF 驅動程式中斷的詳細資訊,請參閱 存取硬體和處理中斷。
例子
HRESULT hr;
IWDFInterrupt* pInterrupt;
WUDF_INTERRUPT_CONFIG interruptConfig;
WUDF_INTERRUPT_CONFIG_INIT(&interruptConfig,
MyInterruptIsr,
MyInterruptWorkItem);
hr = pDevice->Create(&interruptConfig,
&pInterrupt);
要求
要求 | 價值 |
---|---|
終止支援 | UMDF 2.0 和更新版本中無法使用。 |
目標平臺 | 桌面 |
最低 UMDF 版本 | 1.11 |
標頭 | wudfddi.h |
DLL | WUDFx.dll |