funzione CM_Get_Device_Interface_ListW (cfgmgr32.h)
La funzione CM_Get_Device_Interface_List recupera un elenco di istanze dell'interfaccia del dispositivo appartenenti a una classe di interfaccia dispositivo specificata.
Sintassi
CMAPI CONFIGRET CM_Get_Device_Interface_ListW(
[in] LPGUID InterfaceClassGuid,
[in, optional] DEVINSTID_W pDeviceID,
[out] PZZWSTR Buffer,
[in] ULONG BufferLen,
[in] ULONG ulFlags
);
Parametri
[in] InterfaceClassGuid
Fornisce un GUID che identifica una classe di interfaccia del dispositivo.
[in, optional] pDeviceID
Puntatore fornito dal chiamante a una stringa con terminazione NULL che rappresenta un ID istanza del dispositivo. Se specificato, la funzione recupera le interfacce del dispositivo supportate dal dispositivo per la classe specificata. Se questo valore è NULL o se punta a una stringa di lunghezza zero, la funzione recupera tutte le interfacce che appartengono alla classe specificata.
[out] Buffer
Puntatore fornito dal chiamante a un buffer che riceve più stringhe Unicode con terminazione NULL, ognuna che rappresenta il nome di collegamento simbolico di un'istanza di interfaccia.
[in] BufferLen
Valore fornito dal chiamante che specifica la lunghezza, in caratteri, del buffer a cui punta buffer. Chiamare CM_Get_Device_Interface_List_Size per determinare le dimensioni del buffer necessarie.
[in] ulFlags
Contiene uno dei flag forniti dal chiamante seguente:
CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES
La funzione fornisce un elenco contenente interfacce di dispositivo associate a tutti i dispositivi che corrispondono al GUID specificato e all'ID istanza del dispositivo, se presente.
CM_GET_DEVICE_INTERFACE_LIST_PRESENT
La funzione fornisce un elenco contenente interfacce di dispositivo associate ai dispositivi attualmente attivi e che corrispondono all'ID istanza del GUID e del dispositivo specificato, se presente.
Valore restituito
Se l'operazione ha esito positivo, la funzione restituisce CR_SUCCESS. In caso contrario, restituisce uno dei codici di errore con il prefisso CR_ definito in Cfgmgr32.h.
La tabella seguente include alcuni dei codici di errore più comuni che questa funzione potrebbe restituire.
Codice restituito | Descrizione |
---|---|
|
Il buffer buffer è troppo piccolo per contenere l'elenco richiesto di interfacce del dispositivo. |
Commenti
Tra la chiamata CM_Get_Device_Interface_List_Size per ottenere le dimensioni dell'elenco e la chiamata CM_Get_Device_Interface_List per ottenere l'elenco, è possibile aggiungere una nuova interfaccia del dispositivo al sistema causando la restituzione delle dimensioni a non più valida. I chiamanti devono essere affidabili per tale condizione e riprovare a ottenere le dimensioni e l'elenco se CM_Get_Device_Interface_List restituisce CR_BUFFER_SMALL.
Esempio
Questo frammento di codice illustra il tentativo di ottenere le dimensioni e l'elenco come descritto nella sezione Osservazioni.
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;
}
Nota
L'intestazione cfgmgr32.h definisce CM_Get_Device_Interface_List come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile in Microsoft Windows 2000 e versioni successive di Windows. |
Piattaforma di destinazione | Universale |
Intestazione | cfgmgr32.h (include Cfgmgr32.h) |
Libreria | Cfgmgr32.lib |
DLL | CfgMgr32.dll |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per