Freigeben über


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
SWDeviceCapabilitiesNone
0x00000000
Es wurden keine Funktionen angegeben.
SWDeviceCapabilitiesRemovable
0x00000001
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.
SWDeviceCapabilitiesSilentInstall
0x00000002
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.
SWDeviceCapabilitiesNoDisplayInUI-
0x00000004
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.
SWDeviceCapabilitiesDriverRequired
0x00000008
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.

Hinweis Angeben eines Standorts ist ungewöhnlich.
 

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)

Siehe auch

SwDeviceCreate