funzione CM_Get_Device_ID_ListW (cfgmgr32.h)

La funzione CM_Get_Device_ID_List recupera un elenco di ID istanza del dispositivo per le istanze del dispositivo del computer locale.

Sintassi

CMAPI CONFIGRET CM_Get_Device_ID_ListW(
  [in, optional] PCWSTR  pszFilter,
  [out]          PZZWSTR Buffer,
  [in]           ULONG   BufferLen,
  [in]           ULONG   ulFlags
);

Parametri

[in, optional] pszFilter

Puntatore fornito dal chiamante a una stringa di caratteri impostata su un subset degli identificatori di istanza del dispositivo del computer (ID) o su NULL. Vedere la descrizione seguente di ulFlags.

[out] Buffer

Indirizzo di un buffer per ricevere un set di stringhe di identificatori di istanza del dispositivo con terminazione NULL. La fine del set viene terminata da un valore NULL aggiuntivo. Le dimensioni del buffer necessarie devono essere ottenute chiamando CM_Get_Device_ID_List_Size.

[in] BufferLen

Lunghezza specificata dal chiamante, in caratteri, del buffer specificato da Buffer.

[in] ulFlags

Uno dei flag di bit forniti dal chiamante seguente che specifica i filtri di ricerca:

CM_GETIDLIST_FILTER_BUSRELATIONS

Se questo flag è impostato, pszFilter deve specificare un identificatore di istanza del dispositivo. La funzione restituisce gli ID istanza del dispositivo per le relazioni tra bus dell'istanza del dispositivo specificata.

CM_GETIDLIST_FILTER_CLASS (Windows 7 e versioni successive di Windows)

Se questo flag è impostato, pszFilter contiene una stringa che specifica un GUID della classe di installazione del dispositivo . L'elenco restituito contiene istanze del dispositivo per le quali la proprietà (a cui fa riferimento la costante CM_DRP_CLASSGUID) corrisponde al GUID della classe di installazione del dispositivo specificata.

La costante CM_DRP_CLASSGUID è definita in Cfgmgr32.h.

CM_GETIDLIST_FILTER_PRESENT (Windows 7 e versioni successive di Windows)

Se questo flag è impostato, l'elenco restituito contiene solo le istanze del dispositivo attualmente presenti nel sistema. Questo valore può essere combinato con altri valori ulFlags , ad esempio CM_GETIDLIST_FILTER_CLASS.

CM_GETIDLIST_FILTER_TRANSPORTRELATIONS (Windows 7 e versioni successive di Windows)

Se questo flag è impostato, pszFilter deve specificare l'identificatore dell'istanza del dispositivo composito (devnode).

La funzione restituisce gli identificatori dell'istanza del dispositivo degli oggetti devnodes che rappresentano le relazioni di trasporto del nodo devnode composito specificato.

Per altre informazioni sulle relazioni di sviluppo e trasporto composite, vedere la sezione Osservazioni seguente.

CM_GETIDLIST_DONOTGENERATE

Usato solo con CM_GETIDLIST_FILTER_SERVICE. Se impostato e se l'albero del dispositivo non contiene un nodo devnode per il servizio specificato, questo flag impedisce alla funzione di creare un nodo devnode per il servizio.

CM_GETIDLIST_FILTER_EJECTRELATIONS

Se questo flag è impostato, pszFilter deve specificare un identificatore di istanza del dispositivo. La funzione restituisce gli ID istanza del dispositivo per le relazioni di espulsione dell'istanza del dispositivo specificata.

CM_GETIDLIST_FILTER_ENUMERATOR

Se questo flag è impostato, pszFilter deve specificare il nome di un enumeratore di dispositivo, facoltativamente seguito da un ID dispositivo. Il formato stringa è EnumeratorName\<DeviceID>, ad esempio ROOT o ROOT\*PNP0500.

Se pszFilter fornisce solo un nome enumeratore, la funzione restituisce gli ID istanza del dispositivo per le istanze di ogni dispositivo associato all'enumeratore. I nomi dell'enumeratore possono essere ottenuti chiamando CM_Enumerate_Enumerators.

Se pszFilter fornisce sia un enumeratore che un ID dispositivo, la funzione restituisce gli ID istanza del dispositivo solo per le istanze del dispositivo specificato associate all'enumeratore.

CM_GETIDLIST_FILTER_NONE

Se questo flag è impostato, pszFilter viene ignorato e viene restituito un elenco di tutti i dispositivi nel sistema.

CM_GETIDLIST_FILTER_POWERRELATIONS

Se questo flag è impostato, pszFilter deve specificare un identificatore di istanza del dispositivo. La funzione restituisce gli ID istanza del dispositivo per le relazioni di alimentazione dell'istanza del dispositivo specificata.

CM_GETIDLIST_FILTER_REMOVALRELATIONS

Se questo flag è impostato, pszFilter deve specificare un identificatore di istanza del dispositivo. La funzione restituisce gli ID istanza del dispositivo per le relazioni di rimozione dell'istanza del dispositivo specificata.

CM_GETIDLIST_FILTER_SERVICE

Se questo flag è impostato, pszFilter deve specificare il nome di un servizio Microsoft Windows (in genere un driver). La funzione restituisce gli ID istanza del dispositivo per le istanze del dispositivo controllate dal servizio specificato.

Si noti che se l'albero dei dispositivi non contiene un nodo devnode per il servizio specificato, questa funzione ne crea una per impostazione predefinita. Per inibire questo comportamento, impostare anche CM_GETIDLIST_DONOTGENERATE.

Se non viene specificato alcun flag di filtro di ricerca, la funzione restituisce tutti gli ID istanza del dispositivo per tutte le istanze del dispositivo.

Valore restituito

Se l'operazione ha esito positivo, la funzione restituisce CR_SUCCESS. In caso contrario, restituisce uno dei codici di errore con prefisso CR_ definiti in Cfgmgr32.h.

Commenti

A partire da Windows 7, un dispositivo che supporta più percorsi di trasporto per i dati basati su pacchetti viene definito dispositivo composito ed è rappresentato da un nodo devnodecomposito. Un devnode composito rappresenta logicamente il dispositivo composito per l'utente e le applicazioni come singolo dispositivo, anche se il nodo devnode composito può avere più percorsi per il dispositivo fisico.

Ogni percorso di trasporto attivo per il dispositivo fisico è rappresentato da un devnode di trasporto e viene definito relazione di trasporto per il dispositivo composito.

Il devnode composito (ma non i devnodes di trasporto correlati) espone le interfacce del dispositivo alle applicazioni e al sistema. Quando un'applicazione usa queste interfacce di dispositivo pubblico, il dispositivo composito instrada i dati basati su pacchetti a uno o più di questi devnodes di trasporto, che quindi trasportano i dati nel dispositivo fisico.

Ad esempio, se un telefono cellulare fisico è connesso contemporaneamente al computer su USB e gli autobus Bluetooth, ogni bus enumera un nodo devnode di trasporto figlio su tale bus per rappresentare la connessione fisica del dispositivo.

In questo caso, se si impostano i flag di CM_GETIDLIST_FILTER_TRANSPORTRELATIONS in ulFlags e si specifica l'ID istanza del dispositivo del nodo devnode composito del telefono cellulare in pszFilter, la funzione restituisce gli ID istanza del dispositivo per i due devnodes di trasporto nel parametro Buffer .

Per altre informazioni sugli ID istanza del dispositivo, vedere Stringhe di identificazione del dispositivo.

Nota

L'intestazione cfgmgr32.h definisce CM_Get_Device_ID_List come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

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

CM_Get_Device_ID_List_Size