SW_DEVICE_CREATE_INFO結構 (swdevicedef.h)

描述 PnP 用來建立軟體裝置的資訊。

語法

typedef struct _SW_DEVICE_CREATE_INFO {
  ULONG                     cbSize;
  PCWSTR                    pszInstanceId;
  PCZZWSTR                  pszzHardwareIds;
  PCZZWSTR                  pszzCompatibleIds;
  const GUID                *pContainerId;
  ULONG                     CapabilityFlags;
  PCWSTR                    pszDeviceDescription;
  PCWSTR                    pszDeviceLocation;
  const SECURITY_DESCRIPTOR *pSecurityDescriptor;
} SW_DEVICE_CREATE_INFO, *PSW_DEVICE_CREATE_INFO;

成員

cbSize

這個結構以位元組為單位的大小。 將它當做版本欄位使用。 將它初始化為sizeof(SW_DEVICE_CREATE_INFO)。

pszInstanceId

字串,表示 裝置實例標識碼 部分的 實例標識碼。 此值用於 IRP_MN_QUERY_IDBusQueryInstanceID。 由於所有軟體裝置都會被視為 「UniqueId」 裝置,因此此字串對於此軟體裝置列舉值上的所有裝置都必須是唯一的名稱。

pszzHardwareIds

軟體裝置 硬體識別碼的字串清單。 此值用於 IRP_MN_QUERY_IDBusQueryHardwareIDs。 如果客戶端預期要在裝置上安裝驅動程式套件,客戶端應該指定硬體識別碼。

pszzCompatibleIds

軟體裝置 相容標識符的字串清單。 此值用於 IRP_MN_QUERY_IDBusQueryCompatibleIDs。 如果客戶端預期類別驅動程式套件安裝在裝置上,用戶端會指定符合類別驅動程式套件的相容識別碼。 如果不需要驅動程式套件,建議您指定相容的標識碼來分類軟體裝置的類型。 除了這個成員中指定的兼容標識碼之外,SWD\Generic 且可能 SWD\GenericRaw 一律會新增為最不特定的相容標識符。

pContainerId

值,用來控制軟體裝置的基底容器標識碼。 此值會用於 IRP_MN_QUERY_IDBusQueryContainerIDs。 在一般情況下,建議將此成員設定為 NULL,並使用 SWDeviceCapabilitiesRemovable 旗標來控制裝置是否繼承父系的容器標識符,或 PnP 指派新的隨機容器標識符。 如需影響裝置容器標識碼指派方式的詳細資訊,請參閱 卸除式裝置功能概觀。 如果用戶端需要明確控制容器標識碼,請在這個成員指向的變數中指定 GUID。 一般而言,您不應該為容器標識元指定NULL_GUID。 如需容器標識碼和NULL_GUID特殊意義的詳細資訊,請參閱 容器標識符概觀

CapabilityFlags

使用位 OR 運算結合的 SW_DEVICE_CAPABILITIES 值。 產生的值會指定軟體裝置的功能。 建立軟體裝置時可以指定的功能是總線驅動程式可以使用 DEVICE_CAPABILTIES 結構所指定的功能子集。 僅支援允許僅針對軟體裝置變更有意義的功能。 其餘的會接收適當的預設值。 以下是可能的值:

價值 意義
SWDeviceCapabilitiesNone
0x00000000
尚未指定任何功能。
SWDeviceCapabilitiesRemovable
0x00000001
此位會指定裝置從其父系卸載裝置。 設定此旗標相當於設定 PDO DEVICE_CAPABILTIES 結構 卸除式 成員的總線驅動程式。
SWDeviceCapabilitiesSilentInstall
0x00000002
這個位會隱藏通常會在安裝期間顯示的UI。 設定此旗標相當於設定 PDO DEVICE_CAPABILTIES 結構 成員 SilentInstall 的總線驅動程式。
SWDeviceCapabilitiesNoDisplayInUI
0x00000004
此位可防止裝置在某些UI中顯示。 設定此旗標相當於為 PDO 設定 DEVICE_CAPABILTIES 結構的 NoDisplayInUI 成員的匯流驅動程式。
SWDeviceCapabilitiesDriverRequired
0x00000008
當用戶端想要在裝置上載入驅動程式,以及需要此驅動程式才能正確運作用戶端功能時,請指定此位。

指定此位時,至少必須填入其中一個 pszzHardwareIdspszzCompatibleIds

如果指定此位,如果找不到驅動程式,裝置會在 設備管理器 顯示黃色砰,以指出裝置有問題,而疑難解答員會將此標示為有問題的裝置。 設定此位相當於總線驅動程式未設定 PDO DEVICE_CAPABILTIES 結構 RawDeviceOK 成員。

指定此位時,驅動程式會擁有為裝置建立介面,而且您無法呼叫裝置的 SwDeviceInterfaceRegister

pszDeviceDescription

字串,包含UI中裝置名稱所顯示的文字。 此值用於 IRP_MN_QUERY_DEVICE_TEXTDeviceTextDescription

附注  

當 INF 與裝置相符時,除非採取保留此名稱的步驟,否則 INF 中的名稱會覆寫此名稱。

我們建議此字串是可本地化資源的參考。 如需參考資源的語法,請參閱 DEVPROP_TYPE_STRING_INDIRECT

 

pszDeviceLocation

字串,包含UI中裝置位置顯示的文字。 此值用於 IRP_MN_QUERY_DEVICE_TEXTDeviceTextLocationInformation

注意 指定位置並不常見。
 

pSecurityDescriptor

SECURITY_DESCRIPTOR 結構的指標,其中包含與軟體裝置相關聯的安全性資訊。 如果此成員 NULLI/O 管理員 會將預設的安全性描述元指派給裝置。 如果需要自定義安全性描述元,請指定自我相對的安全性描述元。

言論

您只能在建立時指定這項資訊,而且您稍後無法藉由設定屬性來呼叫軟體裝置 API 來修改這項資訊。

要求

要求 價值
標頭 swdevicedef.h (包括 Swdevice.h)

另請參閱

SwDeviceCreate