SetupDiGetDeviceInterfaceDetailA-Funktion (setupapi.h)

Die SetupDiGetDeviceInterfaceDetail-Funktion gibt Details zu einer Geräteschnittstelle zurück.

Syntax

WINSETUPAPI BOOL SetupDiGetDeviceInterfaceDetailA(
  [in]            HDEVINFO                           DeviceInfoSet,
  [in]            PSP_DEVICE_INTERFACE_DATA          DeviceInterfaceData,
  [out, optional] PSP_DEVICE_INTERFACE_DETAIL_DATA_A DeviceInterfaceDetailData,
  [in]            DWORD                              DeviceInterfaceDetailDataSize,
  [out, optional] PDWORD                             RequiredSize,
  [out, optional] PSP_DEVINFO_DATA                   DeviceInfoData
);

Parameter

[in] DeviceInfoSet

Ein Zeiger auf den Geräteinformationssatz , der die Schnittstelle enthält, für die Details abgerufen werden sollen. Dieses Handle wird in der Regel von SetupDiGetClassDevs zurückgegeben.

[in] DeviceInterfaceData

Ein Zeiger auf eine SP_DEVICE_INTERFACE_DATA-Struktur , die die Schnittstelle in DeviceInfoSet angibt, für die Details abgerufen werden sollen. Ein Zeiger dieses Typs wird in der Regel von SetupDiEnumDeviceInterfaces zurückgegeben.

[out, optional] DeviceInterfaceDetailData

Ein Zeiger auf eine SP_DEVICE_INTERFACE_DETAIL_DATA-Struktur zum Empfangen von Informationen über die angegebene Schnittstelle. Dieser Parameter ist optional und kann NULL sein. Dieser Parameter muss NULL sein, wenn DeviceInterfaceDetailSize null ist. Wenn dieser Parameter angegeben ist, muss der Aufrufer DeviceInterfaceDetailData.cbSize auf sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA) festlegen, bevor diese Funktion aufgerufen wird. Der cbSize-Member enthält immer die Größe des festen Teils der Datenstruktur, nicht eine Größe, die die Zeichenfolge variabler Länge am Ende widerspiegelt.

[in] DeviceInterfaceDetailDataSize

Die Größe des DeviceInterfaceDetailData-Puffers . Der Puffer muss mindestens (offsetof(SP_DEVICE_INTERFACE_DETAIL_DATA, DevicePath) + sizeof(TCHAR)) Bytes sein, um den festen Teil der Struktur und einen einzelnen NULL-Wert zu enthalten, um eine leere MULTI_SZ Zeichenfolge zu beenden.

Dieser Parameter muss null sein, wenn DeviceInterfaceDetailDataNULL ist.

[out, optional] RequiredSize

Ein Zeiger auf eine Variable vom Typ DWORD, die die erforderliche Größe des DeviceInterfaceDetailData-Puffers empfängt . Diese Größe umfasst die Größe des festen Teils der Struktur sowie die Anzahl der Bytes, die für die Gerätepfadzeichenfolge mit variabler Länge erforderlich sind. Dieser Parameter ist optional und kann NULL sein.

[out, optional] DeviceInfoData

Ein Zeiger auf einen Puffer, der Informationen über das Gerät empfängt, das die angeforderte Schnittstelle unterstützt. Der Aufrufer muss DeviceInfoData.cbSize auf sizeof(SP_DEVINFO_DATA) festlegen. Dieser Parameter ist optional und kann NULL sein.

Rückgabewert

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

Hinweise

Die Verwendung dieser Funktion zum Abrufen von Details zu einer Schnittstelle ist in der Regel ein zweistufiger Prozess:

  1. Rufen Sie die erforderliche Puffergröße ab. Rufen Sie SetupDiGetDeviceInterfaceDetail mit einem NULLDeviceInterfaceDetailData-Zeiger , einem DeviceInterfaceDetailDataSize-Wert von 0 und einer gültigen RequiredSize-Variablen auf. Als Reaktion auf einen solchen Aufruf gibt diese Funktion die erforderliche Puffergröße bei RequiredSize zurück und schlägt fehl, wenn GetLastError ERROR_INSUFFICIENT_BUFFER zurückgibt.
  2. Weisen Sie einen Puffer mit angemessener Größe zu, und rufen Sie die Funktion erneut auf, um die Schnittstellendetails abzurufen.
Das von dieser Funktion zurückgegebene Schnittstellendetail besteht aus einem Gerätepfad, der an Win32-Funktionen wie CreateFile übergeben werden kann. Versuchen Sie nicht, den symbolischen Namen des Gerätepfads zu analysieren. Der Gerätepfad kann über Systemstarts hinweg wiederverwendet werden.

SetupDiGetDeviceInterfaceDetail kann verwendet werden, um nur die DeviceInfoData abzurufen. Wenn die Schnittstelle vorhanden ist, DeviceInterfaceDetailData aber NULL ist, schlägt diese Funktion fehl, GetLastError gibt ERROR_INSUFFICIENT_BUFFER zurück, und die DeviceInfoData-Struktur ist mit Informationen über das Gerät gefüllt, das die Schnittstelle verfügbar macht.

Hinweis

Der Setupapi.h-Header definiert SetupDiGetDeviceInterfaceDetail 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

   
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

Weitere Informationen

SetupDiEnumDeviceInterfaces

SetupDiGetClassDevs