新增裝置
警告
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 消費者入門。
架構會針對在驅動程式主機進程中載入的每個裝置新增裝置物件。 若要新增裝置,架構會呼叫驅動程式的 IDriverEntry::OnDeviceAdd 方法,並在呼叫中傳遞 IWDFDriver 和 IWDFDeviceInitialize 介面。 提供的 IWDFDeviceInitialize 介面只有在驅動程式呼叫 IWDFDriver::CreateDevice之前才有效。 驅動程式可以呼叫下列 IWDFDeviceInitialize 方法來執行下列作業:
驅動程式會呼叫 IWDFDeviceInitialize::RetrieveDevicePropertyStore 方法,以擷取裝置屬性存放區的 IWDFNamedPropertyStore 介面。 驅動程式可以使用 IWDFNamedPropertyStore 來擷取和設定裝置的屬性。
驅動程式會呼叫 IWDFDeviceInitialize::SetLockingConstraint 方法,以指定架構如何呼叫其回呼函式。
驅動程式會呼叫 IWDFDeviceInitialize::SetFilter 方法,將裝置啟用為篩選裝置。
驅動程式使用IWDFDeviceInitialize初始化裝置之後,驅動程式會在呼叫IWDFDriver::CreateDevice方法中傳遞IWDFDeviceInitialize的指標,以建立裝置的UMDF 裝置物件。 建立架構裝置物件之後,驅動程式會呼叫 IWDFDevice::CreateIoQueue 方法來建立讀取和寫入 I/O 佇列。 在這些 IWDFDevice::CreateIoQueue 呼叫中,驅動程式必須識別從 I/O 佇列接收要求的方式。 如需詳細資訊,請參閱 設定 I/O 佇列的分派模式。