WdfDeviceCreateDeviceInterface 函式 (wdfdevice.h)
[適用於 KMDF 和 UMDF]
WdfDeviceCreateDeviceInterface 方法會為指定的裝置建立裝置介面。
語法
NTSTATUS WdfDeviceCreateDeviceInterface(
[in] WDFDEVICE Device,
[in] const GUID *InterfaceClassGUID,
[in, optional] PCUNICODE_STRING ReferenceString
);
參數
[in] Device
架構裝置物件的句柄。
[in] InterfaceClassGUID
識別裝置介面類別之 GUID 的指標。
[in, optional] ReferenceString
描述裝置介面參考字串 之UNICODE_STRING 結構的指標。 字串不得包含任何路徑分隔符, (“/” 或 “\”) 。 這個參數是選擇性的,而且可以是 NULL。 如需詳細資訊,請參閱接下來的<備註>一節。
傳回值
如果作業成功,WdfDeviceCreateDeviceInterface 會傳回STATUS_SUCCESS。
如需 WdfDeviceCreateDeviceInterface 可以傳回的其他傳回值清單,請參閱 Framework 物件建立錯誤。
方法可能會傳回其他 NTSTATUS值。
如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。
備註
驅動程式可以從EVT_WDF_DRIVER_DEVICE_ADD或裝置啟動之後呼叫 WdfDeviceCreateDeviceInterface。
如果驅動程式從 其EVT_WDF_DRIVER_DEVICE_ADD 回呼函式呼叫此函式,當裝置停止時,就會自動啟用介面。 若要防止自動啟用,驅動程式可以呼叫 WdfDeviceSetDeviceInterfaceStateEx ,並將 IsInterfaceEnabled 參數設定為 FALSE。
如果驅動程式在裝置啟動之後呼叫此函式,介面仍會保持停用狀態。 驅動程式可以視需要呼叫 WdfDeviceSetDeviceInterfaceState 。
驅動程式可以使用 ReferenceString 參數來區分單一介面的不同實例。 換句話說,如果驅動程式針對相同的裝置介面類別呼叫 WdfDeviceCreateDeviceInterface 兩次,驅動程式每次都可以指定不同的 ReferenceString 參數。 開啟介面的實例時,I/O 管理員會將實例的參考字串傳遞至驅動程式。 參考字串會附加至介面實例名稱的路徑元件。 驅動程式接著可以使用參考字串來判斷正在開啟的裝置介面類別實例。
如需裝置介面和 WdfDeviceCreateDeviceInterface 方法的詳細資訊,請參閱 使用裝置介面。
範例
下列範例會註冊裝置的 COM 埠介面介面類別。
NTSTATUS status;
status = WdfDeviceCreateDeviceInterface(
Device,
(LPGUID) &GUID_DEVINTERFACE_COMPORT,
NULL
);
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
最低 KMDF 版本 | 1.0 |
最低UMDF版本 | 2.0 |
標頭 | wdfdevice.h (包含 Wdf.h) |
程式庫 | Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | DriverCreate (kmdf) 、 KmdfIrql (kmdf) 、 KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf) |