IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO IOCTL (avc.h)
El código de control de E/S de IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO controla la enumeración de subunits virtuales. Está disponible para el modo de usuario, así como para los componentes en modo kernel a través del envío IRP_MJ_DEVICE_CONTROL. Para la comunicación entre controladores, es un METHOD_BUFFERED IOCTL, por lo que establece los campos IRP en consecuencia (IrpStack-Parameters.DeviceIoControl.InputBufferLength> e Irp-AssociatedIrp.SystemBuffer>).
IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO se usa para agregar o quitar identificadores de subbúnit de un solo tipo. Las llamadas sucesivas con una parte de identificador diferente de la dirección de la subbúsita hacen que cambie el número de identificadores enumerados. Tenga en cuenta que avc.sys agrega o quita solo los identificadores más altos. Se trata de una limitación de la especificación av/C, no de la implementación del controlador.
Este IOCTL usa la estructura de AVC_SUBUNIT_ADDR_SPEC.
Código principal
Bloque de estado
Si se ejecuta correctamente, el controlador de protocolo AV/C establece Irp-IoStatus.Status>en STATUS_SUCCESS.
Entre los posibles otros valores devueltos se incluyen:
Valor devuelto | Descripción |
---|---|
STATUS_INSUFFICIENT_RESOURCES | No se ha pasado ningún búfer o no se han superado recursos suficientes para realizar una consulta del Registro. |
STATUS_INVALID_BUFFER_SIZE | El búfer pasado en Irp->AssociatedIrp.SystemBuffer debe ser al menos tan grande como sizeof(AVC_SUBUNIT_ADDR_SPEC), que incluye una dirección de subbúnit de un solo byte, pero limitada a una dirección de subbúnit de 32 bytes. |
STATUS_INVALID_PARAMETER | La dirección de subbunit se especificó incorrectamente. |
STATUS_ACCESS_DENIED | El usuario actual no tiene privilegios de acceso al Registro suficientes para que la actualización sea persistente. |
Comentarios
Se debe llamar a en IRQL = PASSIVE_LEVEL.
Requisitos
Requisito | Valor |
---|---|
Header | avc.h (incluya Avc.h) |