Compartilhar via


IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR2 IOCTL (sidebandaudio.h)

O driver de áudio emite o código de controle IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR2 para obter informações sobre um ponto de extremidade de áudio exposto por meio da interface do dispositivo de áudio sideband. A versão 2 deste IOCTL permite que o driver do controlador forneça propriedades de dispositivo personalizadas para adicionar à interface do dispositivo de áudio.

Código principal

IRP_MJ_DEVICE_CONTROL

Buffer de entrada

Um valor de índice de ponto de extremidade baseado em 0 com base no número de pontos de extremidade de áudio, conforme relatado pelo IOCTL_SBAUD_GET_DEVICE_DESCRIPTOR.

Esse é um valor ULONG de 0 a (N-1) em que N é o número de pontos de extremidade para o dispositivo.

Comprimento do buffer de entrada

Tamanho do ULONG.

Buffer de saída

Um buffer que contém uma estrutura SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2 seguida por quaisquer outros dados referenciados pela estrutura. Isso será retornado, se o tamanho do buffer de saída for suficiente e a solicitação for bem-sucedida. Em particular, o buffer inclui armazenamento para a cadeia de caracteres referenciada pelo campo FriendlyName da estrutura SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2 .

Comprimento do buffer de saída

O tamanho de uma estrutura SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2 e dados referenciados.

Bloco de status

Se a rotina for bem-sucedida, Status será definido como STATUS_SUCCESS e o membro Informações será o número de bytes que a rotina grava no buffer de saída.

Nota Isso pode ser maior do que o tamanho da estrutura SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2 , pois o buffer de saída pode conter outros dados referenciados pela estrutura

Se Status estiver definido como STATUS_BUFFER_TOO_SMALL, o driver de áudio deverá ler o membro Informações para obter o tamanho do buffer que o chamador deve alocar para essa solicitação.

Comentários

Esse IOCTL só pode ser chamado do modo kernel.

O driver de áudio envia essa solicitação para obter informações sobre um ponto de extremidade de sideband de áudio habilitado. As informações não são alteradas enquanto a interface está habilitada, mas podem ser alteradas enquanto a interface está desabilitada. Portanto, o driver de áudio envia essa solicitação logo após descobrir uma interface de dispositivo habilitada e usa as informações para criar uma estrutura de KSFILTER_DESCRIPTOR apropriada.

O driver de áudio envia essa solicitação uma vez com um tamanho de buffer de saída de zero (0) para determinar o tamanho do buffer de saída necessário. Nesse caso, a solicitação será concluída com Status STATUS_BUFFER_TOO_SMALL e definirá o membro Informações para o tamanho do buffer necessário. Em seguida, o driver de áudio aloca o espaço de armazenamento necessário e envia a solicitação novamente.

Requisitos

Requisito Valor
Cabeçalho sidebandaudio.h

Confira também

SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2

Introdução aos códigos de controle de E/S

sidebandaudio.h