Función SetupDiGetDeviceInterfaceDetailA (setupapi.h)
La función SetupDiGetDeviceInterfaceDetail devuelve detalles sobre una interfaz de dispositivo.
Sintaxis
WINSETUPAPI BOOL SetupDiGetDeviceInterfaceDetailA(
[in] HDEVINFO DeviceInfoSet,
[in] PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
[out, optional] PSP_DEVICE_INTERFACE_DETAIL_DATA_A DeviceInterfaceDetailData,
[in] DWORD DeviceInterfaceDetailDataSize,
[out, optional] PDWORD RequiredSize,
[out, optional] PSP_DEVINFO_DATA DeviceInfoData
);
Parámetros
[in] DeviceInfoSet
Puntero al conjunto de información del dispositivo que contiene la interfaz para la que se van a recuperar los detalles. Este identificador normalmente lo devuelve SetupDiGetClassDevs.
[in] DeviceInterfaceData
Puntero a una estructura de SP_DEVICE_INTERFACE_DATA que especifica la interfaz en DeviceInfoSet para la que se van a recuperar los detalles. Un puntero de este tipo normalmente lo devuelve SetupDiEnumDeviceInterfaces.
[out, optional] DeviceInterfaceDetailData
Puntero a una estructura de SP_DEVICE_INTERFACE_DETAIL_DATA para recibir información sobre la interfaz especificada. Este parámetro es opcional y puede ser NULL. Este parámetro debe ser NULL si DeviceInterfaceDetailSize es cero. Si se especifica este parámetro, el autor de la llamada debe establecer DeviceInterfaceDetailData.cbSize en sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA) antes de llamar a esta función. El miembro cbSize siempre contiene el tamaño de la parte fija de la estructura de datos, no un tamaño que refleje la cadena de longitud variable al final.
[in] DeviceInterfaceDetailDataSize
Tamaño del búfer DeviceInterfaceDetailData . El búfer debe ser al menos (offsetof(SP_DEVICE_INTERFACE_DETAIL_DATA, DevicePath) + sizeof(TCHAR)) bytes, para contener la parte fija de la estructura y un valor NULL único para finalizar una cadena de MULTI_SZ vacía.
Este parámetro debe ser cero si DeviceInterfaceDetailData es NULL.
[out, optional] RequiredSize
Puntero a una variable de tipo DWORD que recibe el tamaño necesario del búfer DeviceInterfaceDetailData . Este tamaño incluye el tamaño de la parte fija de la estructura más el número de bytes necesarios para la cadena de ruta de acceso del dispositivo de longitud variable. Este parámetro es opcional y puede ser NULL.
[out, optional] DeviceInfoData
Puntero a un búfer que recibe información sobre el dispositivo que admite la interfaz solicitada. El llamador debe establecer DeviceInfoData.cbSize en sizeof(SP_DEVINFO_DATA). Este parámetro es opcional y puede ser NULL.
Valor devuelto
SetupDiGetDeviceInterfaceDetail devuelve TRUE si la función se completó sin error. Si la función se completó con un error, se devuelve FALSE y se puede recuperar el código de error llamando a GetLastError.
Comentarios
El uso de esta función para obtener detalles sobre una interfaz suele ser un proceso de dos pasos:
- Obtenga el tamaño de búfer necesario. Llame a SetupDiGetDeviceInterfaceDetail con un puntero DeviceInterfaceDetailDataNULL, deviceInterfaceDetailDataSize de cero y una variable RequiredSize válida. En respuesta a esta llamada, esta función devuelve el tamaño de búfer necesario en RequiredSize y produce un error con GetLastError que devuelve ERROR_INSUFFICIENT_BUFFER.
- Asigne un búfer de tamaño adecuado y vuelva a llamar a la función para obtener los detalles de la interfaz.
SetupDiGetDeviceInterfaceDetail se puede usar para obtener solo DeviceInfoData. Si la interfaz existe pero DeviceInterfaceDetailData es NULL, se produce un error en esta función, GetLastError devuelve ERROR_INSUFFICIENT_BUFFER y la estructura DeviceInfoData se rellena con información sobre el dispositivo que expone la interfaz.
Nota:
El encabezado setupapi.h define SetupDiGetDeviceInterfaceDetail como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.
Requisitos
Cliente mínimo compatible | Disponible en Microsoft Windows 2000 y versiones posteriores de Windows. |
Plataforma de destino | Escritorio |
Encabezado | setupapi.h (incluya Setupapi.h) |
Library | Setupapi.lib |