Compartilhar via


IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFO IOCTL (avc.h)

O código de controle de E/S IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFO controla a enumeração de subunidades virtuais. Ele está disponível para o modo de usuário, bem como componentes do modo kernel por meio da expedição de IRP_MJ_DEVICE_CONTROL. Para comunicação driver a driver, é uma METHOD_BUFFERED IOCTL, portanto, defina os campos IRP adequadamente (IrpStack-Parameters.DeviceIoControl.InputBufferLength> e Irp-AssociatedIrp.SystemBuffer>).

IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFO é usado para remover todas as IDs de subunidade de um único tipo. A parte da ID do endereço de subunidade é ignorada.

Este IOCTL usa a estrutura AVC_SUBUNIT_ADDR_SPEC.

Código principal

IRP_MJ_DEVICE_CONTROL

Bloco de status

Se tiver êxito, o driver de protocolo AV/C definirá Irp-IoStatus.Status>como STATUS_SUCCESS.

Outros valores retornados possíveis incluem:

Valor Retornado Descrição
STATUS_INSUFFICIENT_RESOURCES Nenhum buffer foi passado ou recursos insuficientes disponíveis para executar uma consulta do Registro.
STATUS_INVALID_BUFFER_SIZE O buffer passado em Irp->AssociatedIrp.SystemBuffer deve ser pelo menos tão grande quanto sizeof(AVC_SUBUNIT_ADDR_SPEC), que inclui um endereço de subunidade de byte único, mas limitado a um endereço de subunidade de 32 bytes.
STATUS_INVALID_PARAMETER O endereço de subunidade foi especificado incorretamente.
STATUS_ACCESS_DENIED O usuário atual não tem privilégios de acesso ao Registro suficientes para tornar a atualização persistente.

Comentários

Deve ser chamado em IRQL = PASSIVE_LEVEL.

Requisitos

Requisito Valor
Cabeçalho avc.h (inclua Avc.h)

Confira também

AVC_SUBUNIT_ADDR_SPEC

IOCTL_AVC_BUS_RESET

IOCTL_AVC_CLASS

IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO