Freigeben über


SetupDiCreateDeviceInfoA-Funktion (setupapi.h)

Die SetupDiCreateDeviceInfo-Funktion erstellt ein neues Geräteinformationselement und fügt es dem angegebenen Geräteinformationssatz als neues Element hinzu.

Syntax

WINSETUPAPI BOOL SetupDiCreateDeviceInfoA(
  [in]            HDEVINFO         DeviceInfoSet,
  [in]            PCSTR            DeviceName,
  [in]            const GUID       *ClassGuid,
  [in, optional]  PCSTR            DeviceDescription,
  [in, optional]  HWND             hwndParent,
  [in]            DWORD            CreationFlags,
  [out, optional] PSP_DEVINFO_DATA DeviceInfoData
);

Parameter

[in] DeviceInfoSet

Ein Handle zum Geräteinformationssatz für den lokalen Computer.

[in] DeviceName

Ein Zeiger auf eine MIT NULL beendete Zeichenfolge, die entweder eine vollständige Geräteinstanz-ID (z. B. "Root*PNP0500\0000") oder eine aufgezählte Geräte-ID ohne Enumeratorpräfix und Instanzbezeichnersuffix (z. B. "*PNP0500") bereitstellt. Der aufgezählte Gerätebezeichner kann nur verwendet werden, wenn das DICD_GENERATE_ID Flag im CreationFlags Parameter angegeben ist.

[in] ClassGuid

Ein Zeiger auf die Geräteeinrichtungsklasse GUID für das Gerät. Wenn die Gerätesetupklasse des Geräts nicht bekannt ist, legen Sie *ClassGuid auf eine GUID_NULL Struktur fest.

[in, optional] DeviceDescription

Ein Zeiger auf eine MIT NULL beendete Zeichenfolge, die die Textbeschreibung des Geräts bereitstellt. Dieser Zeiger ist optional und kann NULL-sein.

[in, optional] hwndParent

Ein Handle für das Fenster auf oberster Ebene, das für jede Benutzeroberfläche verwendet werden soll, die sich auf die Installation des Geräts bezieht. Dieses Handle ist optional und kann NULL-werden.

[in] CreationFlags

Eine Variable vom Typ DWORD, die steuert, wie das Geräteinformationselement erstellt wird. Dies kann eine Kombination der folgenden Werte sein:

DICD_GENERATE_ID

Wenn dieses Flag angegeben ist, enthält DeviceName- nur eine Geräte-ID root-enumerated, und das System verwendet diese ID, um eine vollständige Geräteinstanz-ID für das neue Geräteinformationselement zu generieren.

Rufen Sie SetupDiGetDeviceInstanceId auf, um die Geräteinstanz-ID abzurufen, die für dieses Geräteinformationselement generiert wurde.

DICD_INHERIT_CLASSDRVS

Wenn dieses Flag angegeben ist, erbt das resultierende Geräteinformationselement die Klassentreiberliste( falls vorhanden), die dem Geräteinformationssatz zugeordnet ist. Wenn ein ausgewählter Treiber für den Geräteinformationssatz vorhanden ist, wird derselbe Treiber für das neue Geräteinformationselement ausgewählt.

[out, optional] DeviceInfoData

Ein Zeiger auf eine SP_DEVINFO_DATA Struktur, die das neue Geräteinformationselement empfängt. Dieser Zeiger ist optional und kann NULL-sein. Wenn die Struktur bereitgestellt wird, muss der Aufrufer das cbSize Member dieser Struktur auf Sizeof(SP_DEVINFO_DATA ) festlegen, bevor die Funktion aufgerufen wird. Weitere Informationen finden Sie im folgenden abschnitt Anmerkungen.

Rückgabewert

Die Funktion gibt TRUE- zurück, wenn sie erfolgreich ist. Andernfalls wird FALSE- zurückgegeben, und der protokollierte Fehler kann abgerufen werden, indem ein Aufruf an GetLastError-ausgeführt wird.

Bemerkungen

Der Aufrufer dieser Funktion muss Mitglied der Gruppe "Administratoren" sein.

Wenn diese Geräteinstanz einem Satz hinzugefügt wird, der eine zugeordnete Klasse aufweist, muss die Geräteklasse identisch sein, oder der Anruf schlägt fehl. In diesem Fall gibt ein Aufruf von GetLastError ERROR_CLASS_MISMATCH zurück.

Wenn die angegebene Geräteinstanz mit einem vorhandenen Geräteinstanzschlüssel in der Registrierung identisch ist, schlägt der Aufruf fehl. In diesem Fall gibt ein Aufruf von GetLastError ERROR_DEVINST_ALREADY_EXISTS zurück. Dies tritt nur auf, wenn das DICD_GENERATE_ID Flag nicht festgelegt ist.

Wenn das neue Geräteinformationselement erfolgreich erstellt wurde, aber der vom Aufrufer bereitgestellte DeviceInfoData- Puffer ungültig ist, gibt die Funktion FALSEzurück. In diesem Fall gibt ein Aufruf von GetLastError ERROR_INVALID_USER_BUFFER zurück. Das Geräteinformationselement wurde jedoch bereits als neues Element der Gruppe hinzugefügt.

Das DeviceInfoSet- darf nur Elemente auf dem lokalen Computer enthalten.

Anmerkung

Der header setupapi.h definiert SetupDiCreateDeviceInfo als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Microsoft Windows 2000 und höheren Versionen von Windows.
Zielplattform- Desktop
Header- setupapi.h (include Setupapi.h)
Library Setupapi.lib

Siehe auch

SP_DEVINFO_DATA

SetupDiDeleteDeviceInfo-

SetupDiEnumDeviceInfo

SetupDiOpenDeviceInfo