Share via


Framework 物件階層

警告

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 父子物件階層。

架構物件的存留期範圍取決於其階層中的位置,以及物件的建立方式。 架構物件的存留期範圍屬於下列其中一個類別:

  • 架構會控制物件的建立和解構。

    架構會建立和終結物件,例如 驅動程式物件裝置物件,以回應系統事件。 當使用者模式驅動程式呼叫 IWDFDriver::CreateDevice 方法來建立裝置物件時,驅動程式可以選擇性地註冊,以在終結裝置物件之前先向架構通知。

  • 架構會建立 物件;不過,驅動程式會在釋放物件時控制。

    當 I/O 向驅動程式呈現 I/O 時,I/O 要求物件會遵循此模式。 架構會建立要求物件,而且要求物件的存留期有效,直到驅動程式呼叫 IWDFIoRequest::Complete 方法為止。

  • 驅動程式會建立 物件,並將物件與另一個架構物件產生關聯。

    某些架構物件是由父架構物件實例所公開的方法所建立,這些物件要關聯至該物件以供存留期管理之用。 IWDFDevice::CreateIoQueue方法是此模式的範例。 如果 呼叫 IWDFDevice::CreateIoQueue 成功,新建立的 I/O 佇列會與 IWDFDevice 介面所代表的裝置實例相關聯。 當父物件終結時,架構會自動清除子實例。 如果驅動程式向架構註冊適當的回呼函式,驅動程式會收到這些事件的通知。