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
字串,表示
pszzHardwareIds
軟體裝置
pszzCompatibleIds
軟體裝置 SWD\Generic
且可能 SWD\GenericRaw
一律會新增為最不特定的相容標識符。
pContainerId
值,用來控制軟體裝置的基底容器標識碼。 此值會用於 IRP_MN_QUERY_IDBusQueryContainerIDs。 在一般情況下,建議將此成員設定為 NULL,並使用 SWDeviceCapabilitiesRemovable 旗標來控制裝置是否繼承父系的容器標識符,或 PnP 指派新的隨機容器標識符。 如需影響裝置容器標識碼指派方式的詳細資訊,請參閱 卸除式裝置功能概觀。 如果用戶端需要明確控制容器標識碼,請在這個成員指向的變數中指定 GUID。 一般而言,您不應該為容器標識元指定NULL_GUID。 如需容器標識碼和NULL_GUID特殊意義的詳細資訊,請參閱 容器標識符概觀。
CapabilityFlags
使用位 OR 運算結合的 SW_DEVICE_CAPABILITIES 值。 產生的值會指定軟體裝置的功能。 建立軟體裝置時可以指定的功能是總線驅動程式可以使用 DEVICE_CAPABILTIES 結構所指定的功能子集。 僅支援允許僅針對軟體裝置變更有意義的功能。 其餘的會接收適當的預設值。 以下是可能的值:
價值 | 意義 |
---|---|
|
尚未指定任何功能。 |
|
此位會指定裝置從其父系卸載裝置。 設定此旗標相當於設定 PDO DEVICE_CAPABILTIES 結構 卸除式 成員的總線驅動程式。 |
|
這個位會隱藏通常會在安裝期間顯示的UI。 設定此旗標相當於設定 PDO |
|
此位可防止裝置在某些UI中顯示。 設定此旗標相當於為 PDO 設定 DEVICE_CAPABILTIES 結構的 NoDisplayInUI 成員的匯流驅動程式。 |
|
當用戶端想要在裝置上載入驅動程式,以及需要此驅動程式才能正確運作用戶端功能時,請指定此位。
指定此位時,至少必須填入其中一個 pszzHardwareIds 或 pszzCompatibleIds。 如果指定此位,如果找不到驅動程式,裝置會在 設備管理器 顯示黃色砰,以指出裝置有問題,而疑難解答員會將此標示為有問題的裝置。 設定此位相當於總線驅動程式未設定 PDO 指定此位時,驅動程式會擁有為裝置建立介面,而且您無法呼叫裝置的 SwDeviceInterfaceRegister。 |
pszDeviceDescription
字串,包含UI中裝置名稱所顯示的文字。 此值用於 IRP_MN_QUERY_DEVICE_TEXTDeviceTextDescription。
當 INF 與裝置相符時,除非採取保留此名稱的步驟,否則 INF 中的名稱會覆寫此名稱。
我們建議此字串是可本地化資源的參考。 如需參考資源的語法,請參閱 DEVPROP_TYPE_STRING_INDIRECT。
pszDeviceLocation
字串,包含UI中裝置位置顯示的文字。 此值用於 IRP_MN_QUERY_DEVICE_TEXTDeviceTextLocationInformation。
pSecurityDescriptor
SECURITY_DESCRIPTOR 結構的指標,其中包含與軟體裝置相關聯的安全性資訊。 如果此成員 NULL,I/O 管理員 會將預設的安全性描述元指派給裝置。 如果需要自定義安全性描述元,請指定自我相對的安全性描述元。
言論
您只能在建立時指定這項資訊,而且您稍後無法藉由設定屬性來呼叫軟體裝置 API 來修改這項資訊。
要求
要求 | 價值 |
---|---|
標頭 | swdevicedef.h (包括 Swdevice.h) |