CM_Get_Device_Interface_ListA-Funktion (cfgmgr32.h)
Die funktion CM_Get_Device_Interface_List ruft eine Liste der Geräteschnittstelleninstanzen ab, die zu einer angegebenen Geräteschnittstellenklasse gehören.
Syntax
CMAPI CONFIGRET CM_Get_Device_Interface_ListA(
[in] LPGUID InterfaceClassGuid,
[in, optional] DEVINSTID_A pDeviceID,
[out] PZZSTR Buffer,
[in] ULONG BufferLen,
[in] ULONG ulFlags
);
Parameter
[in] InterfaceClassGuid
Stellt eine GUID bereit, die eine Geräteschnittstellenklasse identifiziert.
[in, optional] pDeviceID
Vom Aufrufer bereitgestellter Zeiger auf eine NULL-endende Zeichenfolge, die ein Gerät instance-ID darstellt. Wenn angegeben, ruft die Funktion Geräteschnittstellen ab, die vom Gerät für die angegebene Klasse unterstützt werden. Wenn dieser Wert NULL ist oder auf eine Zeichenfolge der Länge Null zeigt, ruft die Funktion alle Schnittstellen ab, die zur angegebenen Klasse gehören.
[out] Buffer
Vom Aufrufer bereitgestellter Zeiger auf einen Puffer, der mehrere unicode-Zeichenfolgen mit NULL-Termin empfängt, die jeweils den symbolischen Linknamen einer Schnittstelle instance.
[in] BufferLen
Vom Aufrufer bereitgestellter Wert, der die Länge des Puffers in Zeichen angibt, auf den buffer verweist. Rufen Sie CM_Get_Device_Interface_List_Size auf, um die erforderliche Puffergröße zu bestimmen.
[in] ulFlags
Enthält eines der folgenden vom Aufrufer bereitgestellten Flags:
CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES
Die -Funktion stellt eine Liste mit Geräteschnittstellen bereit, die allen Geräten zugeordnet sind, die der angegebenen GUID und der gerätespezifischen instance-ID (sofern vorhanden) entsprechen.
CM_GET_DEVICE_INTERFACE_LIST_PRESENT
Die Funktion stellt eine Liste mit Geräteschnittstellen bereit, die Geräten zugeordnet sind, die derzeit aktiv sind und der angegebenen GUID und gerätespezifischen instance-ID entsprechen, falls vorhanden.
Rückgabewert
Wenn der Vorgang erfolgreich ist, gibt die Funktion CR_SUCCESS zurück. Andernfalls wird einer der Fehlercodes mit dem CR_ Präfix zurückgegeben, wie in Cfgmgr32.h definiert.
Die folgende Tabelle enthält einige der häufigeren Fehlercodes, die diese Funktion möglicherweise zurückgibt.
Rückgabecode | Beschreibung |
---|---|
|
Der Pufferpuffer ist zu klein, um die angeforderte Liste der Geräteschnittstellen zu speichern. |
Hinweise
Zwischen dem Aufruf CM_Get_Device_Interface_List_Size zum Abrufen der Größe der Liste und dem Aufrufen von CM_Get_Device_Interface_List zum Abrufen der Liste kann dem System eine neue Geräteschnittstelle hinzugefügt werden, die dazu führt, dass die zurückgegebene Größe nicht mehr gültig ist. Aufrufer sollten gegenüber dieser Bedingung robust sein und versuchen, die Größe und die Liste abzurufen, wenn CM_Get_Device_Interface_ListCR_BUFFER_SMALL zurückgibt.
Beispiele
Dieser Codeausschnitt veranschaulicht das Abrufen der Größe und der Liste, wie im Abschnitt "Hinweise" beschrieben.
CONFIGRET cr = CR_SUCCESS;
PWSTR DeviceInterfaceList = NULL;
ULONG DeviceInterfaceListLength = 0;
do {
cr = CM_Get_Device_Interface_List_Size(&DeviceInterfaceListLength,
(LPGUID)&GUID_DEVINTERFACE_VOLUME,
NULL,
CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES);
if (cr != CR_SUCCESS)
{
break;
}
if (DeviceInterfaceList != NULL) {
HeapFree(GetProcessHeap(),
0,
DeviceInterfaceList);
}
DeviceInterfaceList = (PWSTR)HeapAlloc(GetProcessHeap(),
HEAP_ZERO_MEMORY,
DeviceInterfaceListLength * sizeof(WCHAR));
if (DeviceInterfaceList == NULL)
{
cr = CR_OUT_OF_MEMORY;
break;
}
cr = CM_Get_Device_Interface_List((LPGUID)&GUID_DEVINTERFACE_VOLUME,
NULL,
DeviceInterfaceList,
DeviceInterfaceListLength,
CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES);
} while (cr == CR_BUFFER_SMALL);
if (cr != CR_SUCCESS)
{
goto Exit;
}
Hinweis
Der cfgmgr32.h-Header definiert CM_Get_Device_Interface_List 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 | Universell |
Header | cfgmgr32.h (include Cfgmgr32.h) |
Bibliothek | Cfgmgr32.lib |
DLL | CfgMgr32.dll |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für