建立插斷物件 (UMDF 1)
警告
UMDF 2 是最新版的 UMDF,並取代 UMDF 1。 所有新的 UMDF 驅動程式都應該使用 UMDF 2 撰寫。 未將新功能新增至 UMDF 1,且較新版本的WINDOWS 10上,UMDF 1 的支援有限。 通用 Windows 驅動程式必須使用 UMDF 2。
封存的 UMDF 1 範例可在Windows 11 22H2 - 2022 年 5 月驅動程式範例更新中找到。
如需詳細資訊,請參閱使用 UMDF 消費者入門。
處理裝置硬體中斷的 UMDF 驅動程式必須為每個裝置可支援的中斷建立架構中斷物件。
一般而言,驅動程式會在 IDriverEntry::OnDeviceAdd中建立架構中斷物件。 不過,您也可以在 IPnpCallbackHardware2::OnPrepareHardware中建立中斷物件。
若要建立架構中斷物件,您的驅動程式必須初始化 WUDF_INTERRUPT_CONFIG 結構,並將它傳遞給 IWDFDevice3::CreateInterrupt 方法。 這個方法會註冊下列驅動程式提供的事件回呼函式:
OnInterruptEnable
啟用硬體中斷。
OnInterruptDisable
停用硬體中斷。
OnInterruptIsr
插斷服務常式 (ISR) 中斷。
OnInterruptWorkItem
中斷的背景工作常式。
或者,驅動程式可以呼叫 IWDFInterrupt::SetPolicy 或 IWDFInterrupt::SetExtendedPolicy 來指定其他中斷參數。
架構會先呼叫驅動程式的IDriverEntry::OnDeviceAdd回呼函式,再隨插即用 (PnP) 管理員將系統資源指派給裝置,例如中斷向量。 PnP 管理員指派資源之後,架構會將中斷資源儲存在裝置的中斷物件中。 (不支援隨插即用驅動程式無法使用插斷物件。)
Windows Vista 和更新版本的作業系統支援訊息訊號中斷 (MSI) 。 若要讓作業系統支援裝置的 MSI,驅動程式的 INF 檔案必須在登錄中設定一些值。 如需如何設定這些值的資訊,請參閱 在登錄中啟用Message-Signaled插斷。
如果裝置可以支援特定數目的 MSI 訊息,PnP 管理員會嘗試將該數目的訊息指派給裝置。 如果 PnP 管理員無法指派裝置可支援的所有訊息,它只會將一則訊息指派給裝置。
您的驅動程式應該為每個裝置可支援的插斷向量或 MSI 訊息建立架構中斷物件。 如果 PnP 管理員未授與裝置可支援的所有中斷資源,將不會使用額外的中斷物件,而且不會呼叫其回呼函式。