Función SetupDiOpenDeviceInterfaceA (setupapi.h)
La función setupDiOpenDeviceInterface
Sintaxis
WINSETUPAPI BOOL SetupDiOpenDeviceInterfaceA(
[in] HDEVINFO DeviceInfoSet,
[in] PCSTR DevicePath,
[in] DWORD OpenFlags,
[out, optional] PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData
);
Parámetros
[in] DeviceInfoSet
Puntero a un conjunto de información del dispositivo que contiene, o contendrá, un elemento de información del dispositivo que representa el dispositivo que admite la interfaz que se va a abrir.
[in] DevicePath
Puntero a una cadena terminada en NULL que proporciona el nombre de la interfaz de dispositivo que se va a abrir. Este nombre es una ruta de acceso del dispositivo Win32 que normalmente se recibe en una estructura de notificación PnP o que se obtiene mediante una llamada anterior a setupDiEnumDeviceInterfaces y sus funciones relacionadas.
[in] OpenFlags
Marcas que determinan cómo se va a abrir el elemento de interfaz de dispositivo. La única marca válida es la siguiente:
DIODI_NO_ADD
Especifica que el elemento de información del dispositivo para el dispositivo subyacente no se creará si ese elemento aún no está presente en el conjunto de información del dispositivo especificado. Para obtener más información, consulte la siguiente sección Comentarios.
[out, optional] DeviceInterfaceData
Puntero a una estructura de SP_DEVICE_INTERFACE_DATA inicializada por el autor de la llamada que recibe los datos de interfaz solicitados. Este puntero es opcional y se puede NULL. Si se proporciona un búfer, el autor de la llamada debe establecer el miembro cbSize de la estructura en sizeof(SP_DEVICE_INTERFACE_DATA) antes de llamar a SetupDiOpenDeviceInterface. Para obtener más información, consulte la siguiente sección Comentarios.
Valor devuelto
setupDiOpenDeviceInterface devuelve TRUE si la función se completó sin error. Si la función se completó con un error, devuelve FALSE y el código de error del error se puede recuperar llamando a GetLastError.
Observaciones
Si ya existe un elemento de interfaz de dispositivo para la interfaz en DeviceInfoSet, SetupDiOpenDeviceInterface actualiza las marcas. Por lo tanto, esta función se puede usar para actualizar las marcas de una interfaz de dispositivo. Por ejemplo, una interfaz podría haber estado inactiva cuando se abrió por primera vez, pero posteriormente se ha vuelto activa. Si el elemento de información del dispositivo para el dispositivo subyacente aún no está presente en DeviceInfoSet, esta función crea una y la agrega a DeviceInfoSet.
Si la función abre correctamente la nueva interfaz de dispositivo, pero el autor de la llamada no ha proporcionado una estructura válida en el parámetro DeviceInterfaceData de
Si la nueva interfaz de dispositivo se abre correctamente, pero el DeviceInterfaceData búfer proporcionado por el autor de la llamada no es válido, esta función devuelve FALSE y GetLastError devuelve ERROR_INVALID_USER_BUFFER. El error de búfer del autor de la llamada no impide que se abra la interfaz.
Si se especifica la marca DIODI_NO_ADD para el parámetro
Cuando la aplicación haya terminado de usar la información que SetupDiOpenDeviceInterface recuperada, la aplicación debe llamar a SetupDiDeleteDeviceInterfaceData.
MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK atributo se puede pasar como el valor del argumento DevicePath de la función SetupDiOpenDeviceInter face.
Nota
El encabezado setupapi.h define SetupDiOpenDeviceInterface 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 |