CM_Get_Device_Interface_ListW-Funktion (cfgmgr32.h)
Die CM_Get_Device_Interface_List-Funktion ruft eine Liste der Geräteschnittstelleninstanzen ab, die zu einer angegebenen Geräteschnittstellenklasse gehören.
Syntax
CMAPI CONFIGRET CM_Get_Device_Interface_ListW(
[in] LPGUID InterfaceClassGuid,
[in, optional] DEVINSTID_W pDeviceID,
[out] PZZWSTR 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-Zeichenfolge, die ein Gerät instance-ID darstellt. Falls 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 verweist, ruft die Funktion alle Schnittstellen ab, die zur angegebenen Klasse gehören.
[out] Buffer
Vom Aufrufer bereitgestellter Zeiger auf einen Puffer, der mehrere, NULL-beendete Unicode-Zeichenfolgen 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 puffer verweist. Rufen Sie CM_Get_Device_Interface_List_Size auf, um die erforderliche Puffergröße zu ermitteln.
[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 gerätespezifischen instance-ID entsprechen, falls vorhanden.
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 der instance-ID des Geräts entsprechen, falls vorhanden.
Rückgabewert
Wenn der Vorgang erfolgreich ist, gibt die Funktion CR_SUCCESS zurück. Andernfalls wird einer der Fehlercodes mit dem präfix CR_ 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 Aufrufen CM_Get_Device_Interface_List_Size , um die Größe der Liste abzurufen, und dem Aufrufen von CM_Get_Device_Interface_List , um die Liste abzurufen, 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 diese Bedingung robust erfüllen und versuchen, die Größe und die Liste abzurufen, wenn CM_Get_Device_Interface_ListCR_BUFFER_SMALL zurückgibt.
Beispiele
Dieser Codeausschnitt veranschaulicht das Erneute 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 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 | Universell |
Header | cfgmgr32.h (einschließlich 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