SetupDiCreateDeviceInfoA 函式 (setupapi.h)

SetupDiCreateDeviceInfo函式會建立新的裝置資訊元素,並將其新增為指定裝置資訊集的新成員。

語法

WINSETUPAPI BOOL SetupDiCreateDeviceInfoA(
  [in]            HDEVINFO         DeviceInfoSet,
  [in]            PCSTR            DeviceName,
  [in]            const GUID       *ClassGuid,
  [in, optional]  PCSTR            DeviceDescription,
  [in, optional]  HWND             hwndParent,
  [in]            DWORD            CreationFlags,
  [out, optional] PSP_DEVINFO_DATA DeviceInfoData
);

參數

[in] DeviceInfoSet

本機電腦 所設定裝置資訊的 控制碼。

[in] DeviceName

Null 終止字串的指標,提供完整的 裝置實例識別碼 (例如「Root*PNP0500\0000」) ,或是不含列舉值前置詞的根列舉 裝置 識別碼,以及實例識別碼尾碼 (例如「*PNP0500」) 。 只有在 CreationFlags 參數中指定了DICD_GENERATE_ID旗標時,才能使用根列舉的裝置識別碼。

[in] ClassGuid

裝置之裝置安裝類別GUID 的指標。 如果不知道裝置的裝置安裝類別,請將 *ClassGuid 設定為GUID_Null結構。

[in, optional] DeviceDescription

提供裝置文字描述之 Null 終止字串的指標。 此指標是選擇性的,可以是 Null

[in, optional] hwndParent

最上層視窗的控制碼,用於與安裝裝置相關的任何使用者介面。 此控制碼是選擇性的,可以是 Null

[in] CreationFlags

DWORD 類型的變數,可控制裝置資訊元素的建立方式。 可以是下列值的組合:

DICD_GENERATE_ID

如果指定此旗標, DeviceName 只會包含根列舉 的裝置識別碼 ,而且系統會使用該識別碼為新的裝置資訊專案產生完整的 裝置實例識別碼

呼叫 SetupDiGetDeviceInstanceId 以擷取為此裝置資訊專案產生的裝置實例識別碼。

DICD_INHERIT_CLASSDRVS

如果指定這個旗標,產生的裝置資訊元素會繼承與裝置資訊集相關聯的類別驅動程式清單。 此外,如果裝置資訊集有選取的驅動程式,則會針對新的裝置資訊元素選取相同的驅動程式。

[out, optional] DeviceInfoData

接收新裝置資訊專案的 SP_DEVINFO_DATA 結構的指標。 此指標是選擇性的,可以是 Null。 如果提供 結構,呼叫端必須先將此結構的 cbSize 成員設定為 sizeof (SP_DEVINFO_DATA ) ,再呼叫 函式。 如需詳細資訊,請參閱下列一節。

傳回值

如果函式成功,函式會傳回 TRUE 。 否則,它會傳回 FALSE ,而且可以藉由呼叫 GetLastError來擷取記錄的錯誤。

備註

此函式的呼叫端必須是 Administrators 群組的成員。

如果將這個裝置實例新增至具有相關聯類別的集合,則裝置類別必須相同,否則呼叫會失敗。 在此情況下, 對 GetLastError 的呼叫會傳回ERROR_CLASS_MISMATCH。

如果指定的裝置實例與登錄中現有的裝置實例機碼相同,呼叫就會失敗。 在此情況下, 對 GetLastError 的呼叫會傳回ERROR_DEVINST_ALREADY_EXISTS。 只有在未設定DICD_GENERATE_ID旗標時,才會發生這種情況。

如果已成功建立新的裝置資訊元素,但呼叫端提供的 DeviceInfoData 緩衝區無效,函式會傳回 FALSE。 在此情況下, 對 GetLastError 的呼叫會傳回ERROR_INVALID_USER_BUFFER。 不過,裝置資訊元素已新增為集合的新成員。

DeviceInfoSet只能包含本機電腦上的元素。

注意

setupapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 SetupDiCreateDeviceInfo 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

   
最低支援的用戶端 可在 Microsoft Windows 2000 和更新版本的 Windows 中使用。
目標平台 桌上型
標頭 setupapi.h (包括 Setupapi.h)
程式庫 Setupapi.lib

另請參閱

SP_DEVINFO_DATA

SetupDiDeleteDeviceInfo

SetupDiEnumDeviceInfo

SetupDiOpenDeviceInfo