SetupDiOpenDeviceInfoA-Funktion (setupapi.h)
Die SetupDiOpenDeviceInfo-Funktion fügt einem Geräteinformationssatz ein Geräteinformationselement für ein Gerät instance hinzu, sofern noch kein Element im Geräteinformationssatz vorhanden ist, und ruft Informationen ab, die das Geräteinformationselement für das Gerät instance im Geräteinformationssatz identifiziert.
Syntax
WINSETUPAPI BOOL SetupDiOpenDeviceInfoA(
[in] HDEVINFO DeviceInfoSet,
[in] PCSTR DeviceInstanceId,
[in, optional] HWND hwndParent,
[in] DWORD OpenFlags,
[out, optional] PSP_DEVINFO_DATA DeviceInfoData
);
Parameter
[in] DeviceInfoSet
Ein Handle für den Geräteinformationssatz, zu dem SetupDiOpenDeviceInfo ein Geräteinformationselement hinzufügt, sofern noch keins vorhanden ist, für das gerät instance, das von DeviceInstanceId angegeben wird.
[in] DeviceInstanceId
Ein Zeiger auf eine NULL-endende Zeichenfolge, die das Gerät instance Bezeichner eines Geräts bereitstellt (z. B. "Root*PNP0500\0000"). Wenn DeviceInstanceIdNULL ist oder auf eine Zeichenfolge der Länge Null verweist, fügt SetupDiOpenDeviceInfo dem angegebenen Geräteinformationssatz ein Geräteinformationselement für das Stammgerät in der Gerätestruktur hinzu, sofern noch keins vorhanden ist.
[in, optional] hwndParent
Das Handle zum Fenster der obersten Ebene, das für jede Benutzeroberfläche im Zusammenhang mit der Installation des Geräts verwendet werden soll.
[in] OpenFlags
Eine Variable vom Typ DWORD, die steuert, wie das Geräteinformationselement geöffnet wird. Der Wert dieses Parameters kann mindestens einer der folgenden Werte sein:
DIOD_CANCEL_REMOVE
Wenn dieses Flag angegeben ist und das Gerät für die ausstehende Entfernung markiert wurde, bricht das Betriebssystem die ausstehende Entfernung ab.
DIOD_INHERIT_CLASSDRVS
Wenn dieses Flag angegeben wird, erbt das resultierende Geräteinformationselement die Klassentreiberliste, sofern vorhanden, die dem Geräteinformationssatz zugeordnet ist. Wenn ein Treiber für den Geräteinformationssatz ausgewählt ist, wird für das neue Geräteinformationselement derselbe Treiber ausgewählt.
Wenn das Geräteinformationselement bereits vorhanden war, wird seine Klassentreiberliste (sofern vorhanden) durch die geerbte Liste ersetzt.
[out, optional] DeviceInfoData
Ein Zeiger auf eine vom Aufrufer bereitgestellte SP_DEVINFO_DATA Struktur, die Informationen über das Geräteinformationselement für das Gerät empfängt instance, das von DeviceInstanceId angegeben wird. Der Aufrufer muss cbSize auf sizeof(SP_DEVINFO_DATA) festlegen. Dieser Parameter ist optional und kann NULL sein.
Rückgabewert
SetupDiOpenDeviceInfo gibt TRUE zurück, wenn es erfolgreich ist. Andernfalls gibt die Funktion FALSE zurück, und der protokollierte Fehler kann mit einem Aufruf von GetLastError abgerufen werden.
Hinweise
Wenn dieses Gerät instance einer Gruppe hinzugefügt wird, die über eine zugeordnete Klasse verfügt, muss die Geräteklasse identisch sein, andernfalls schlägt der Aufruf fehl. In diesem Fall gibt ein Aufruf von GetLastError ERROR_CLASS_MISMATCH zurück.
Wenn das neue Geräteinformationselement erfolgreich geöffnet wurde, aber der vom Aufrufer bereitgestellte DeviceInfoData-Puffer ungültig ist, gibt diese Funktion FALSE zurück. In diesem Fall gibt ein Aufruf von GetLastError ERROR_INVALID_USER_BUFFER zurück. Das Geräteinformationselement wird jedoch trotzdem als neues Element des Satzes hinzugefügt.
Hinweis
Der Header setupapi.h definiert SetupDiOpenDeviceInfo 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 |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Microsoft Windows 2000 und höheren Versionen von Windows. |
Zielplattform | Desktop |
Kopfzeile | setupapi.h (schließen Sie Setupapi.h ein) |
Bibliothek | Setupapi.lib |