Condividi tramite


Funzione SetupDiGetDeviceInterfaceAlias (setupapi.h)

La funzione SetupDiGetDeviceInterfaceAlias restituisce un alias di un'interfaccia del dispositivo specificata.

Sintassi

WINSETUPAPI BOOL SetupDiGetDeviceInterfaceAlias(
  [in]  HDEVINFO                  DeviceInfoSet,
  [in]  PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
  [in]  const GUID                *AliasInterfaceClassGuid,
  [out] PSP_DEVICE_INTERFACE_DATA AliasDeviceInterfaceData
);

Parametri

[in] DeviceInfoSet

Puntatore al set di informazioni sul dispositivo che contiene l'interfaccia del dispositivo per cui recuperare un alias. Questo handle viene in genere restituito da SetupDiGetClassDevs.

[in] DeviceInterfaceData

Puntatore a una struttura SP_DEVICE_INTERFACE_DATA che specifica l'interfaccia del dispositivo in DeviceInfoSet per cui recuperare un alias. Questo puntatore viene in genere restituito da SetupDiEnumDeviceInterfaces.

[in] AliasInterfaceClassGuid

Puntatore a un GUID che specifica la classe di interfaccia dell'alias da recuperare.

[out] AliasDeviceInterfaceData

Puntatore a un buffer allocato dal chiamante che contiene, in caso di esito positivo, una struttura SP_DEVICE_INTERFACE_DATA completata che identifica l'alias richiesto. Il chiamante deve impostare AliasDeviceInterfaceData.cbSize su sizeof(SP_DEVICE_INTERFACE_DATA) prima di chiamare questa funzione.

Valore restituito

SetupDiGetDeviceInterfaceAlias restituisceTRUE se la funzione è stata completata senza errori. Se la funzione è stata completata con un errore, viene restituito FALSE e il codice di errore per l'errore può essere recuperato chiamando GetLastError.

I possibili errori restituiti da GetLastError sono elencati nella tabella seguente.

Codice restituito Descrizione
ERROR_INVALID_PARAMETER
Parametro DeviceInfoSet non valido o DeviceInterfaceData non valido.
ERROR_NO_SUCH_INTERFACE_DEVICE
Non esiste alcun alias della classe AliasInterfaceClassGuid per l'interfaccia del dispositivo specificata.
ERROR_INVALID_USER_BUFFER
Buffer AliasDeviceInterfaceData non valido.

Commenti

Le interfacce del dispositivo sono considerate alias se sono di classi di interfaccia diverse, ma sono supportate dallo stesso dispositivo e hanno stringhe di riferimento identiche.

SetupDiGetDeviceInterfaceAlias può essere usato per individuare un dispositivo che espone più interfacce. Si consideri ad esempio un disco che può far parte di un volume a tolleranza di errore e può contenere dati crittografati. Il driver di funzione per il dispositivo disco potrebbe registrare un'interfaccia del volume a tolleranza di errore e un'interfaccia di volume crittografato. Queste interfacce sono alias dell'interfaccia del dispositivo se il driver di funzione li registra con stringhe di riferimento identiche e fanno riferimento allo stesso dispositivo. Le stringhe di riferimento saranno probabilmente NULL e pertanto sono uguali.

Per individuare un dispositivo a più interfacce, individuare innanzitutto tutti i dispositivi disponibili che espongono una delle interfacce, ad esempio l'interfaccia del volume a tolleranza di errore, usando SetupDiGetClassDevs e SetupDiEnumDeviceInterfaces. Passare quindi un dispositivo con la prima interfaccia (volume a tolleranza di errore) a SetupDiGetDeviceInterfaceAlias e richiedere un alias dell'altra classe di interfaccia (encrypted-volume).

Se l'alias richiesto esiste ma il buffer AliasDeviceInterfaceData fornito dal chiamante non è valido, questa funzione aggiunge correttamente l'elemento dell'interfaccia del dispositivo a DevInfoSet , ma restituisce FALSE per il valore restituito. In questo caso, GetLastError restituisce ERROR_INVALID_USER_BUFFER.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Microsoft Windows 2000 e versioni successive di Windows.
Piattaforma di destinazione Desktop
Intestazione setupapi.h (include Setupapi.h)
Libreria Setupapi.lib
DLL Setupapi.dll

Vedi anche

SetupDiEnumDeviceInterfaces

SetupDiGetClassDevs