Share via


IPortableDeviceManager::GetDevices 方法 (portabledeviceapi.h)

擷取連線到電腦的可攜式裝置清單。

語法

HRESULT GetDevices(
  [in, out] LPWSTR *pPnPDeviceIDs,
  [in, out] DWORD  *pcPnPDeviceIDs
);

參數

[in, out] pPnPDeviceIDs

字串指標的呼叫端配置數位,可保存所有連線裝置 隨插即用 名稱。 若要瞭解此參數的必要大小,請先呼叫這個方法,並將此參數設定為 NULL ,並將 pcPnPDDeviceID 設定為零,然後根據 pcPnPDeviceID 所擷取的值配置緩衝區。 IPortableDevice::Open 可以使用這些名稱來建立裝置的連線。

[in, out] pcPnPDeviceIDs

在輸入時, pPnPDeviceID 可以 保存的值數目。 輸出時,實際寫入 pPnPDeviceID 的裝置數目指標。

傳回值

方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。

傳回碼 描述
S_OK
此方法已成功。
E_POINTER
至少有一個必要的自變數是 NULL 指標。
S_FALSE
pPnPDeviceIDs 緩衝區太小,無法保存要求的所有值,但pcPnPDeviceIDs值已寫入 pPnPDeviceIDs

備註

裝置管理員具現化時會產生裝置清單;它不會在裝置連線和中斷連線時重新整理。 若要重新整理已連線裝置的清單,請呼叫 RefreshDeviceList

API 會為 pPnPDeviceIDs 陣列所指向的每個字串配置記憶體。 一旦應用程式不再需要這些字串,它就必須逐一查看此陣列,並藉由呼叫 CoTaskMemFree 函式來釋放相關聯的記憶體。

範例

如需如何使用這個方法來列舉裝置的範例,請參閱 列舉裝置。 如需如何使用這個方法來列舉服務的範例,請參閱 列舉服務

規格需求

需求
目標平台 Windows
標頭 portabledeviceapi.h
程式庫 PortableDeviceGUIDs.lib

另請參閱

列舉裝置

列舉服務

IPortableDeviceManager 介面