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
デバイス インスタンス ID のインスタンス ID 部分を表す文字列。 この値は、busQueryInstanceIDIRP_MN_QUERY_ID使用されます。 すべてのソフトウェア デバイスは "UniqueId" デバイスと見なされるため、この文字列は、このソフトウェア デバイス列挙子上のすべてのデバイスの一意の名前である必要があります。 詳細については、「 インスタンス ID」を参照してください。
pszzHardwareIds
ソフトウェア デバイスのハードウェア ID の文字列の一覧。 この値は、 IRP_MN_QUERY_IDBusQueryHardwareIDs に使用されます。 クライアントがドライバーまたはデバイスメタデータをデバイスにバインドすることを想定している場合、クライアントはハードウェア ID を指定します。
pszzCompatibleIds
ソフトウェア デバイスの互換性のある ID の文字列の一覧。 この値は、 IRP_MN_QUERY_IDBusQueryCompatibleIDs に使用されます。 クライアントがクラス ドライバーを読み込む必要がある場合、クライアントはクラス ドライバーと一致する互換性のある ID を指定します。 ドライバーが必要ない場合は、ソフトウェア デバイスの種類を分類するために互換性のある ID を指定することをお勧めします。 このメンバーで指定されている互換性のある ID に加えて、SWD\Generic と場合によっては SWD\GenericRaw は、常に最小の互換性のある ID として追加されます。
pContainerId
ソフトウェア デバイスのベース コンテナー ID を制御するために使用される値。 この値は、 IRP_MN_QUERY_IDBusQueryContainerIDs に使用されます。 一般的な状況では、このメンバーを NULL に設定し、 SWDeviceCapabilitiesRemovable フラグを使用して、デバイスが親のコンテナー ID を継承するか、PnP が新しいランダム コンテナー ID を割り当てるかを制御することをお勧めします。 クライアントがコンテナー ID を明示的に制御する必要がある場合は、このメンバーが指す変数に GUID を 指定します。
CapabilityFlags
ビットごとの OR 演算を使用して結合される SW_DEVICE_CAPABILITIES 値の組み合わせ。 結果の値は、ソフトウェア デバイスの機能を指定します。 ソフトウェア デバイスを作成するときに指定できる機能は、バス ドライバーが DEVICE_CAPABILTIES 構造を使用して指定できる機能のサブセットです。 ソフトウェアのみのデバイスの変更を許可する意味のある機能のみがサポートされています。 残りは適切な既定値を受け取ります。 使用可能な値を次に示します。
値 | 意味 |
---|---|
|
機能が指定されていません。 |
|
このビットは、デバイスが親からリムーバブルであることを指定します。 このフラグの設定は、PDO のDEVICE_CAPABILTIES構造体のリムーバブル メンバーを設定するバス ドライバーと同じです。 |
|
このビットは、通常はインストール中に表示される UI を抑制します。 このフラグの設定は、PDO のDEVICE_CAPABILTIES構造体の SilentInstall メンバーを設定するバス ドライバーと同じです。 |
|
このビットにより、デバイスが一部の UI に表示されなくなります。 このフラグの設定は、PDO のDEVICE_CAPABILTIES構造体の NoDisplayInUI メンバーを設定するバス ドライバーと同じです。 |
|
クライアントがデバイスにドライバーを読み込みたい場合、およびクライアントの機能の正しい機能にこのドライバーが必要な場合は、このビットを指定します。
このビットを指定する場合は、少なくとも 1 つの pszzHardwareIds または pszzCompatibleIds を 入力する必要があります。 このビットが指定されていて、ドライバーが見つからない場合、デバイスに問題があることを示す黄色の強打がデバイス マネージャーに表示され、トラブルシューティング ツールによって問題のあるデバイスとしてフラグが設定されます。 このビットの設定は、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 構造体へのポインター。 このメンバーが NULL の場合、 I/O マネージャー はデバイスに既定のセキュリティ記述子を割り当てます。 カスタム セキュリティ記述子が必要な場合は、自己相対セキュリティ記述子を指定します。
注釈
この情報は作成時にのみ指定でき、後でソフトウェア デバイス API を呼び出して、たとえばプロパティを設定してこの情報を変更することはできません。
要件
要件 | 値 |
---|---|
Header | swdevicedef.h (Swdevice.h を含む) |
こちらもご覧ください
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示