Compartilhar via


Função SetupDiOpenDeviceInterfaceA (setupapi.h)

A função SetupDiOpenDeviceInterface recupera informações sobre uma interface do dispositivo e adiciona a interface ao conjunto de informações do dispositivo especificado para um sistema local ou um sistema remoto.

Sintaxe

WINSETUPAPI BOOL SetupDiOpenDeviceInterfaceA(
  [in]            HDEVINFO                  DeviceInfoSet,
  [in]            PCSTR                     DevicePath,
  [in]            DWORD                     OpenFlags,
  [out, optional] PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData
);

Parâmetros

[in] DeviceInfoSet

Um ponteiro para um conjunto de informações do dispositivo que contém ou conterá um elemento de informações do dispositivo que representa o dispositivo que dá suporte à interface a ser aberta.

[in] DevicePath

Um ponteiro para uma cadeia de caracteres terminada em NULL que fornece o nome da interface do dispositivo a ser aberta. Esse nome é um caminho de dispositivo Win32 que normalmente é recebido em uma estrutura de notificação PnP ou obtido por uma chamada anterior para SetupDiEnumDeviceInterfaces e suas funções relacionadas.

[in] OpenFlags

Sinalizadores que determinam como o elemento de interface do dispositivo deve ser aberto. O único sinalizador válido é o seguinte:

DIODI_NO_ADD

Especifica que o elemento de informações do dispositivo para o dispositivo subjacente não será criado se esse elemento ainda não estiver presente no conjunto de informações do dispositivo especificado. Para obter mais informações, consulte a seção comentários a seguir.

[out, optional] DeviceInterfaceData

Um ponteiro para uma estrutura de SP_DEVICE_INTERFACE_DATA inicializada pelo chamador que recebe os dados de interface solicitados. Esse ponteiro é opcional e pode ser NULL. Se um buffer for fornecido, o chamador deverá definir o membro cbSize da estrutura para sizeof(SP_DEVICE_INTERFACE_DATA) antes de chamar SetupDiOpenDeviceInterface. Para obter mais informações, consulte a seção comentários a seguir.

Valor de retorno

SetupDiOpenDeviceInterface retornará verdadeiro se a função for concluída sem erros. Se a função for concluída com um erro, ela retornará FALSE e o código de erro da falha poderá ser recuperado chamando GetLastError.

Observações

Se já existir um elemento de interface do dispositivo para a interface no DeviceInfoSet, SetupDiOpenDeviceInterface atualizará os sinalizadores. Portanto, essa função pode ser usada para atualizar os sinalizadores de uma interface do dispositivo. Por exemplo, uma interface pode ter sido inativa quando foi aberta pela primeira vez, mas se tornou ativa posteriormente. Se o elemento de informações do dispositivo subjacente ainda não estiver presente em DeviceInfoSet, essa função criará uma e a adicionará a DeviceInfoSet.

Se a função abrir com êxito a nova interface do dispositivo, mas o chamador não fornecer uma estrutura válida no parâmetro DeviceInterfaceData, a função retornará FALSE e uma chamada subsequente para GetLastError retornará ERROR_INVALID_USER_BUFFER. No entanto, nessa situação, SetupDiOpenDeviceInterface adiciona a interface solicitada ao conjunto de informações do dispositivo.

Se a nova interface do dispositivo for aberta com êxito, mas o buffer de DeviceInterfaceData fornecido pelo chamador for inválido, essa função retornará FALSE e GetLastError retornará ERROR_INVALID_USER_BUFFER. O erro de buffer do chamador não impede que a interface seja aberta.

Se o sinalizador DIODI_NO_ADD for especificado para o parâmetro OpenFlags e um elemento de informações do dispositivo subjacente ainda não estiver presente no conjunto de informações do dispositivo especificado, essa função retornará false e GetLastError retornará ERROR_NO_SUCH_DEVICE_INTERFACE.

Quando o aplicativo terminar de usar as informações que SetupDiOpenDeviceInterface recuperado, o aplicativo deve chamar SetupDiDeleteDeviceInterfaceData.

MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK atributo pode ser passado como o valor do argumento DevicePath da função SetupDiOpenDeviceInterface.

Nota

O cabeçalho setupapi.h define SetupDiOpenDeviceInterface como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível no Microsoft Windows 2000 e versões posteriores do Windows.
da Plataforma de Destino Área de trabalho
cabeçalho setupapi.h (inclua Setupapi.h)
biblioteca Setupapi.lib

Consulte também

SetupDiDeleteDeviceInterfaceData

SetupDiEnumDeviceInterfaces