SetupDiGetDeviceInterfaceDetailA 函式 (setupapi.h)
SetupDiGetDeviceInterfaceDetail 函式會傳回裝置介面的詳細數據。
語法
WINSETUPAPI BOOL SetupDiGetDeviceInterfaceDetailA(
[in] HDEVINFO DeviceInfoSet,
[in] PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
[out, optional] PSP_DEVICE_INTERFACE_DETAIL_DATA_A DeviceInterfaceDetailData,
[in] DWORD DeviceInterfaceDetailDataSize,
[out, optional] PDWORD RequiredSize,
[out, optional] PSP_DEVINFO_DATA DeviceInfoData
);
參數
[in] DeviceInfoSet
裝置資訊的指標,其中包含要擷取詳細數據的介面。 此句柄通常是由 SetupDiGetClassDevs傳回。
[in] DeviceInterfaceData
SP_DEVICE_INTERFACE_DATA 結構的指標,指定要擷取詳細數據的 deviceInfoSet 中的介面。 此類型的指標通常是由 setupDiEnumDeviceInterfaces
[out, optional] DeviceInterfaceDetailData
要接收指定介面相關信息之 SP_DEVICE_INTERFACE_DETAIL_DATA 結構的指標。 這個參數是選擇性的,而且可以 NULL。
如果 deviceInterfaceDetailSize 為零,則此參數必須 NULL。 如果指定此參數,呼叫端必須先將 deviceInterfaceDetailData
[in] DeviceInterfaceDetailDataSize
DeviceInterfaceDetailData 緩衝區的大小。 緩衝區至少必須是 (offsetof(SP_DEVICE_INTERFACE_DETAIL_DATA, DevicePath) + sizeof(TCHAR) 位元組,才能包含結構的固定部分,以及單一 NULL 來終止空的MULTI_SZ字串。
如果 DeviceInterfaceDetailData
[out, optional] RequiredSize
DWORD 類型的變數指標,可接收 DeviceInterfaceDetailData 緩衝區所需的大小。 此大小包含 結構的固定部分大小,加上可變長度裝置路徑字串所需的位元元組數目。 這個參數是選擇性的,而且可以 NULL。
[out, optional] DeviceInfoData
緩衝區的指標,接收支援所要求介面之裝置的相關信息。 呼叫端必須將 deviceInfoData
傳回值
SetupDiGetDeviceInterfaceDetail 如果函式未發生錯誤,則會傳回 true TRUE。 如果函式完成併發生錯誤,則會傳回
言論
使用此函式來取得介面的詳細資料通常是兩個步驟的程式:
-
取得所需的緩衝區大小。 使用
NULL DeviceInterfaceDetailData 指標、DeviceInterfaceDetailDataSize ,以及有效的 requiredSize 變數呼叫SetupDiGetDeviceInterfaceDetail 。 為了回應這類呼叫,此函式會傳回必要緩衝區大小,RequiredSize,並在傳回ERROR_INSUFFICIENT_BUFFER GetLastErr or 時失敗。 - 配置適當大小的緩衝區,並再次呼叫 函式以取得介面詳細數據。
SetupDiGetDeviceInterfaceDetail 可用來取得 DeviceInfoData。 如果介面存在但 DeviceInterfaceDetailDataNULL,則此函式會失敗,GetLastError 傳回ERROR_INSUFFICIENT_BUFFER,且 DeviceInfoData 結構會填入公開介面之裝置的相關信息。
注意
setupapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 SetupDiGetDeviceInterfaceDetail 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Microsoft Windows 2000 和更新版本的 Windows 中提供。 |
目標平臺 | 桌面 |
標頭 | setupapi.h (包括 Setupapi.h) |
連結庫 | Setupapi.lib |