IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO IOCTL (avc.h)
El código de control de E/S IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO controla la enumeración de las subuniciones virtuales. Está disponible para el modo de usuario, así como para los componentes en modo kernel a través del envío de 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 subunit 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 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.
Otros valores devueltos posibles son:
Valor devuelto | Descripción |
---|---|
STATUS_INSUFFICIENT_RESOURCES | No se pasó ningún búfer o no hay recursos suficientes disponibles 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 la subbúsnit se especificó incorrectamente. |
STATUS_ACCESS_DENIED | El usuario actual no tiene privilegios de acceso al Registro suficientes para que la actualización sea persistente. |
Observaciones
Se debe llamar a en IRQL = PASSIVE_LEVEL.
Requisitos
Requisito | Valor |
---|---|
encabezado de | avc.h (include Avc.h) |