Função SetupDiGetDeviceInterfaceDetailA (setupapi.h)
A função SetupDiGetDeviceInterfaceDetail retorna detalhes sobre uma interface do dispositivo.
Sintaxe
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
Um ponteiro para o conjunto de informações do dispositivo que contém a interface para a qual recuperar detalhes. Esse identificador normalmente é retornado por SetupDiGetClassDevs.
[in] DeviceInterfaceData
Um ponteiro para uma estrutura SP_DEVICE_INTERFACE_DATA que especifica a interface em DeviceInfoSet para a qual recuperar detalhes. Um ponteiro desse tipo normalmente é retornado por SetupDiEnumDeviceInterfaces.
[out, optional] DeviceInterfaceDetailData
Um ponteiro para uma estrutura SP_DEVICE_INTERFACE_DETAIL_DATA para receber informações sobre a interface especificada. Esse parâmetro é opcional e pode ser NULL. Esse parâmetro deverá ser NULL se DeviceInterfaceDetailSize for zero. Se esse parâmetro for especificado, o chamador deverá definir DeviceInterfaceDetailData.cbSize como sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA) antes de chamar essa função. O membro cbSize sempre contém o tamanho da parte fixa da estrutura de dados, não um tamanho que reflete a cadeia de caracteres de comprimento variável no final.
[in] DeviceInterfaceDetailDataSize
O tamanho do buffer DeviceInterfaceDetailData . O buffer deve ser pelo menos (offsetof(SP_DEVICE_INTERFACE_DETAIL_DATA, DevicePath) + sizeof(TCHAR)) bytes, para conter a parte fixa da estrutura e um único NULL para encerrar uma cadeia de MULTI_SZ vazia.
Esse parâmetro deverá ser zero se DeviceInterfaceDetailData for NULL.
[out, optional] RequiredSize
Um ponteiro para uma variável do tipo DWORD que recebe o tamanho necessário do buffer DeviceInterfaceDetailData . Esse tamanho inclui o tamanho da parte fixa da estrutura mais o número de bytes necessários para a cadeia de caracteres de caminho do dispositivo de comprimento variável. Esse parâmetro é opcional e pode ser NULL.
[out, optional] DeviceInfoData
Um ponteiro para um buffer que recebe informações sobre o dispositivo que dá suporte à interface solicitada. O chamador deve definir DeviceInfoData.cbSize como sizeof(SP_DEVINFO_DATA). Esse parâmetro é opcional e pode ser NULL.
Valor retornado
SetupDiGetDeviceInterfaceDetail retornará TRUE se a função for concluída sem erros. Se a função for concluída com um erro, FALSE será retornado e o código de erro para a falha poderá ser recuperado chamando GetLastError.
Comentários
Usar essa função para obter detalhes sobre uma interface normalmente é um processo de duas etapas:
- Obtenha o tamanho do buffer necessário. Chame SetupDiGetDeviceInterfaceDetail com um ponteiro NULLDeviceInterfaceDetailData , deviceInterfaceDetailDataSize de zero e uma variável RequiredSize válida. Em resposta a essa chamada, essa função retorna o tamanho do buffer necessário em RequiredSize e falha com GetLastError retornando ERROR_INSUFFICIENT_BUFFER.
- Aloque um buffer de tamanho apropriado e chame a função novamente para obter os detalhes da interface.
SetupDiGetDeviceInterfaceDetail pode ser usado para obter apenas o DeviceInfoData. Se a interface existir, mas DeviceInterfaceDetailData for NULL, essa função falhará, GetLastError retornará ERROR_INSUFFICIENT_BUFFER e a estrutura DeviceInfoData será preenchida com informações sobre o dispositivo que expõe a interface.
Observação
O cabeçalho setupapi.h define SetupDiGetDeviceInterfaceDetail como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Cliente mínimo com suporte | Disponível no Microsoft Windows 2000 e versões posteriores do Windows. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | setupapi.h (inclua Setupapi.h) |
Biblioteca | Setupapi.lib |