共用方式為


啟用和停用裝置介面實例

成功啟動裝置之後,註冊介面的驅動程式會呼叫 IoSetDeviceInterfaceState 來啟用介面實例。 驅動程式會將 IoRegisterDeviceInterface 傳回的符號連結名稱連同布林值 TRUE 一起傳遞,以啟用介面實例。

如果驅動程式可以順利啟動其裝置,則應該呼叫此常式,同時 隨插即用 (處理 PnP) 管理員IRP_MN_START_DEVICE要求。

IRP_MN_START_DEVICE要求完成之後,PnP 管理員會將裝置介面抵達通知發出給任何要求它們的核心模式或使用者模式元件。 如需詳細資訊,請參閱 註冊裝置介面變更通知

若要停用裝置介面實例,驅動程式會呼叫IoSetDeviceInterfaceState,傳遞IoRegisterDeviceInterface傳回的SymbolicLinkNameFALSE作為Enable的值。

驅動程式在處理裝置 的IRP_MN_SURPRISE_REMOVALIRP_MN_REMOVE_DEVICE 要求時,應該停用裝置的介面。 如果驅動程式在處理這些移除 IRP 時不會停用裝置的介面,則後續不得嘗試這樣做,因為 PnP 管理員會在移除裝置時停用介面。

當裝置停止 (IRP_MN_STOP_DEVICE) 時,驅動程式不應該停用介面;相反地,它應該讓任何裝置介面保持啟用狀態,並將 I/O 要求排入佇列,直到收到另一個 IRP_MN_START_DEVICE 要求為止。 同樣地,當裝置處於睡眠狀態時,驅動程式不應該停用其介面。 它應該將 I/O 要求排入佇列,直到裝置喚醒為止。 如需詳細資訊,請參閱 支援具有Wake-Up功能的裝置