Compartir a través de


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. Normalmente, este identificador lo devuelve SetupDiGetClassDevs.

[in] DeviceInterfaceData

Puntero a una estructura SP_DEVICE_INTERFACE_DATA que especifica la interfaz de DeviceInfoSet para la que se van a recuperar los detalles. Normalmente, SetupDiEnumDeviceInterfaces devuelve un puntero de este tipo.

[out, optional] DeviceInterfaceDetailData

Puntero a una estructura SP_DEVICE_INTERFACE_DETAIL_DATA para recibir información sobre la interfaz especificada. Este parámetro es opcional y se puede NULL. Este parámetro debe ser null si deviceInterfaceDetailSize es cero. Si se especifica este parámetro, el llamador 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 de 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 único NULL para terminar una cadena 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 DeviceInterfaceDetailData búfer. 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 se puede NULL.

[out, optional] DeviceInfoData

Puntero a un búfer que recibe información sobre el dispositivo que admite la interfaz solicitada. El autor de la llamada debe establecer DeviceInfoData.cbSize en sizeof(SP_DEVINFO_DATA). Este parámetro es opcional y se puede 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 para el error llamando a GetLastError.

Observaciones

El uso de esta función para obtener detalles sobre una interfaz suele ser un proceso de dos pasos:

  1. Obtenga el tamaño de búfer necesario. Llame a SetupDiGetDeviceInterfaceDetail con un punteroDeviceInterfaceDetailDataNULL, un 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 devolver ERROR_INSUFFICIENT_BUFFER.
  2. Asigne un búfer de tamaño adecuado y vuelva a llamar a la función para obtener los detalles de la interfaz.
El detalle de la interfaz devuelto por esta función consta de una ruta de acceso del dispositivo que se puede pasar a funciones win32, como CreateFile. No intente analizar el nombre simbólico de la ruta de acceso del dispositivo. La ruta de acceso del dispositivo se puede reutilizar en los inicios del sistema.

setupDiGetDeviceInterfaceDetail se puede usar para obtener solo el DeviceInfoData. Si la interfaz existe, pero DeviceInterfaceDetailData es NULL, esta función produce un error, 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 Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible en Microsoft Windows 2000 y versiones posteriores de Windows.
de la plataforma de destino de Escritorio
encabezado de setupapi.h (incluya Setupapi.h)
biblioteca de Setupapi.lib

Consulte también

setupDiEnumDeviceInterfaces

SetupDiGetClassDevs