Freigeben über


SetupDiOpenDeviceInterfaceA-Funktion (setupapi.h)

Die SetupDiOpenDeviceInterface-Funktion ruft Informationen zu einer Geräteschnittstelle ab und fügt die Schnittstelle dem angegebenen Geräteinformationssatz für ein lokales System oder ein Remotesystem hinzu.

Syntax

WINSETUPAPI BOOL SetupDiOpenDeviceInterfaceA(
  [in]            HDEVINFO                  DeviceInfoSet,
  [in]            PCSTR                     DevicePath,
  [in]            DWORD                     OpenFlags,
  [out, optional] PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData
);

Parameter

[in] DeviceInfoSet

Ein Zeiger auf einen Geräteinformationssatz , der ein Geräteinformationselement enthält, das das Gerät darstellt, das das Öffnen der Schnittstelle unterstützt.

[in] DevicePath

Ein Zeiger auf eine NULL-beendete Zeichenfolge, die den Namen der zu öffnenden Geräteschnittstelle angibt. Dieser Name ist ein Win32-Gerätepfad, der in der Regel in einer PnP-Benachrichtigungsstruktur empfangen oder durch einen vorherigen Aufruf von SetupDiEnumDeviceInterfaces und den zugehörigen Funktionen abgerufen wird.

[in] OpenFlags

Flags, die bestimmen, wie das Geräteschnittstellenelement geöffnet werden soll. Das einzige gültige Flag lautet wie folgt:

DIODI_NO_ADD

Gibt an, dass das Geräteinformationselement für das zugrunde liegende Gerät nicht erstellt wird, wenn dieses Element nicht bereits im angegebenen Geräteinformationssatz vorhanden ist. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise" .

[out, optional] DeviceInterfaceData

Ein Zeiger auf eine vom Aufrufer initialisierte SP_DEVICE_INTERFACE_DATA Struktur, die die angeforderten Schnittstellendaten empfängt. Dieser Zeiger ist optional und kann NULL sein. Wenn ein Puffer angegeben wird, muss der Aufrufer das cbSize-Element der Struktur auf sizeof(SP_DEVICE_INTERFACE_DATA) festlegen, bevor SetupDiOpenDeviceInterface aufgerufen wird. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise" .

Rückgabewert

SetupDiOpenDeviceInterface gibt TRUE zurück, wenn die Funktion ohne Fehler abgeschlossen wurde. Wenn die Funktion mit einem Fehler abgeschlossen wurde, gibt sie FALSE zurück, und der Fehlercode für den Fehler kann durch Aufrufen von GetLastError abgerufen werden.

Hinweise

Wenn in DeviceInfoSet bereits ein Geräteschnittstellenelement für die Schnittstelle vorhanden ist, aktualisiert SetupDiOpenDeviceInterface die Flags. Daher kann diese Funktion verwendet werden, um die Flags für eine Geräteschnittstelle zu aktualisieren. Beispielsweise war eine Schnittstelle beim ersten Öffnen möglicherweise inaktiv, wurde aber anschließend aktiv. Wenn das Geräteinformationselement für das zugrunde liegende Gerät noch nicht in DeviceInfoSet vorhanden ist, erstellt diese Funktion eines und fügt es DeviceInfoSet hinzu.

Wenn die Funktion die neue Geräteschnittstelle erfolgreich öffnet, der Aufrufer jedoch keine gültige Struktur im DeviceInterfaceData-Parameter bereitgestellt hat, gibt die Funktion FALSE zurück, und ein späterer Aufruf von GetLastError gibt ERROR_INVALID_USER_BUFFER zurück. In dieser Situation fügt SetupDiOpenDeviceInterface dem Geräteinformationssatz jedoch die angeforderte Schnittstelle hinzu.

Wenn die neue Geräteschnittstelle erfolgreich geöffnet wurde, aber der vom Aufrufer bereitgestellte DeviceInterfaceData-Puffer ungültig ist, gibt diese Funktion FALSE zurück, und GetLastError gibt ERROR_INVALID_USER_BUFFER zurück. Der Pufferfehler des Aufrufers verhindert nicht, dass die Schnittstelle geöffnet wird.

Wenn das DIODI_NO_ADD-Flag für den OpenFlags-Parameter angegeben ist und ein Geräteinformationselement für das zugrunde liegende Gerät noch nicht im angegebenen Geräteinformationssatz vorhanden ist, gibt diese Funktion FALSE zurück, und GetLastError gibt ERROR_NO_SUCH_DEVICE_INTERFACE zurück.

Wenn die Anwendung die von SetupDiOpenDeviceInterface abgerufenen Informationen verwendet hat, muss die Anwendung SetupDiDeleteDeviceInterfaceData aufrufen.

MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK-Attribut kann als Wert des DevicePath-Arguments der SetupDiOpenDeviceInterface-Funktion übergeben werden.

Hinweis

Der setupapi.h-Header definiert SetupDiOpenDeviceInterface als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code 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 (einschließlich Setupapi.h)
Bibliothek Setupapi.lib

Weitere Informationen

SetupDiDeleteDeviceInterfaceData

SetupDiEnumDeviceInterfaces