SW_DEVICE_CREATE_INFO Struktur (swdevicedef.h)
Beschreibt Informationen, die PnP zum Erstellen des Softwaregeräts verwendet.
Syntax
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;
Angehörige
cbSize
Die Größe in Byte dieser Struktur. Verwenden Sie es als Versionsfeld. Initialisieren Sie sie in sizeof(SW_DEVICE_CREATE_INFO).
pszInstanceId
Eine Zeichenfolge, die die Instanz-ID Teil der Geräteinstanz-IDdarstellt. Dieser Wert wird für IRP_MN_QUERY_IDBusQueryInstanceIDverwendet. Da alle Softwaregeräte als "UniqueId"-Geräte gelten, muss diese Zeichenfolge ein eindeutiger Name für alle Geräte auf diesem Softwaregerät-Enumerator sein.
pszzHardwareIds
Eine Liste der Zeichenfolgen für die Hardware-IDs für das Softwaregerät. Dieser Wert wird für IRP_MN_QUERY_IDBusQueryHardwareIDsverwendet. Wenn ein Client erwartet, dass ein Treiberpaket auf dem Gerät installiert wird, sollte der Client Hardware-IDs angeben.
pszzCompatibleIds
Eine Liste der Zeichenfolgen für die kompatiblen IDs für das Softwaregerät. Dieser Wert wird für IRP_MN_QUERY_IDBusQueryCompatibleIDsverwendet. Wenn ein Client erwartet, dass ein Klassentreiberpaket auf dem Gerät installiert wird, gibt der Client kompatible IDs an, die mit dem Klassentreiberpaket übereinstimmen. Wenn ein Treiberpaket nicht benötigt wird, empfehlen wir, eine kompatible ID anzugeben, um den Typ des Softwaregeräts zu klassifizieren. Zusätzlich zu den in diesem Member angegebenen kompatiblen IDs werden SWD\Generic
und möglicherweise SWD\GenericRaw
immer als die am wenigsten spezifischen kompatiblen IDs hinzugefügt.
pContainerId
Ein Wert, der zum Steuern der Basiscontainer-ID für das Softwaregerät verwendet wird. Dieser Wert wird für IRP_MN_QUERY_IDBusQueryContainerIDsverwendet. In typischen Situationen wird empfohlen, dieses Element auf NULL- festzulegen und die SWDeviceCapabilitiesRemovable Flag zu verwenden, um zu steuern, ob das Gerät die Container-ID des übergeordneten Elements erbt oder PnP eine neue zufällige Container-ID zuweist. Weitere Informationen dazu, wie sich dies auf die Zuweisung der Container-ID für das Gerät auswirkt, finden Sie unter Übersicht über die Wechselmedienfunktion. Wenn der Client die Container-ID explizit steuern muss, geben Sie eine GUID- in der Variablen an, auf die dieses Element verweist. Im Allgemeinen sollten Sie keine NULL_GUID für die Container-ID angeben. Weitere Informationen zu Container-IDs und der besonderen Bedeutung von NULL_GUID finden Sie unter Übersicht über Container-IDs.
CapabilityFlags
Eine Kombination aus SW_DEVICE_CAPABILITIES Werten, die mithilfe eines bitweisen OR-Vorgangs kombiniert werden. Der resultierende Wert gibt funktionen des Softwaregeräts an. Die Funktionen, die Sie angeben können, wenn Sie ein Softwaregerät erstellen, sind eine Teilmenge der Funktionen, die ein Bustreiber mithilfe der DEVICE_CAPABILTIES Struktur angeben kann. Es werden nur Funktionen unterstützt, die sinnvoll sind, die Änderung für ein Nur-Software-Gerät zu ermöglichen. Der Rest empfängt entsprechende Standardwerte. Hier sind mögliche Werte:
Wert | Bedeutung |
---|---|
|
Es wurden keine Funktionen angegeben. |
|
Dieses Bit gibt an, dass das Gerät vom übergeordneten Gerät entfernt werden kann. Das Festlegen dieses Kennzeichens entspricht einem Bustreiber, der die Wechselmedien Mitglied der DEVICE_CAPABILTIES-Struktur für eine PDO festlegt. |
|
Dieses Bit unterdrückt die Benutzeroberfläche, die normalerweise während der Installation angezeigt wird. Das Festlegen dieses Kennzeichens entspricht einem Bustreiber, der das SilentInstall Member der DEVICE_CAPABILTIES-Struktur für eine PDO festlegt. |
|
Dieses Bit verhindert, dass das Gerät in einer Benutzeroberfläche angezeigt wird. Das Festlegen dieses Kennzeichens entspricht einem Bustreiber, der das NoDisplayInUI- Mitglied der DEVICE_CAPABILTIES-Struktur für eine PDO festlegt. |
|
Geben Sie dieses Bit an, wenn der Client möchte, dass ein Treiber auf dem Gerät geladen wird und wenn dieser Treiber für die richtige Funktion des Clientfeatures erforderlich ist.
Wenn dieses Bit angegeben wird, müssen mindestens eine pszzHardwareIds oder pszzCompatibleIds ausgefüllt werden. Wenn dieses Bit angegeben ist und ein Treiber nicht gefunden werden kann, zeigt das Gerät einen gelben Knall in Geräte-Manager- an, um anzugeben, dass das Gerät ein Problem hat, und problembehandlungsbehebung kennzeichnen dies als Gerät mit einem Problem. Das Festlegen dieses Bits entspricht einem Bustreiber, der die RawDeviceOK- Mitglied der DEVICE_CAPABILTIES-Struktur für eine PDO nicht festlegt. Wenn dieses Bit angegeben ist, besitzt der Treiber die Erstellung von Schnittstellen für das Gerät, und Sie können SwDeviceInterfaceRegister- für das Gerät nicht aufrufen. |
pszDeviceDescription
Eine Zeichenfolge, die den Text enthält, der für den Gerätenamen in der Benutzeroberfläche angezeigt wird. Dieser Wert wird für IRP_MN_QUERY_DEVICE_TEXTDeviceTextDescription-verwendet.
Wenn ein INF mit dem Gerät abgeglichen wird, setzt der Name aus dem INF diesen Namen außer Kraft, es sei denn, die Schritte zum Beibehalten dieses Namens werden ausgeführt.
Es wird empfohlen, dass diese Zeichenfolge ein Verweis auf eine lokalisierbare Ressource ist. Informationen zur Syntax des Verweisens auf Ressourcen finden Sie unter DEVPROP_TYPE_STRING_INDIRECT.
pszDeviceLocation
Eine Zeichenfolge, die den Text enthält, der für die Geräteposition auf der Benutzeroberfläche angezeigt wird. Dieser Wert wird für IRP_MN_QUERY_DEVICE_TEXTDeviceTextLocationInformationverwendet.
pSecurityDescriptor
Ein Zeiger auf eine SECURITY_DESCRIPTOR Struktur, die die Sicherheitsinformationen enthält, die dem Softwaregerät zugeordnet sind. Wenn dieses Element NULL-ist, weist der E/A-Manager dem Gerät den Standardsicherheitsdeskriptor zu. Wenn ein benutzerdefinierter Sicherheitsdeskriptor erforderlich ist, geben Sie einen selbstrelativen Sicherheitsdeskriptor an.
Bemerkungen
Sie können diese Informationen nur zur Erstellungszeit angeben, und Sie können die Softwaregeräte-API nicht später aufrufen, um diese Informationen zu ändern, indem Sie z. B. Eigenschaften festlegen.
Anforderungen
Anforderung | Wert |
---|---|
Header- | swdevicedef.h (include Swdevice.h) |