Estados de cola de máquinas virtuales NDIS
En este tema se proporciona información general sobre los estados operativos de las colas de máquinas virtuales NDIS (VMQs). Para obtener más información sobre los estados de la cola, consulte el tema Estados de cola y operaciones en la sección Escritura de controladores de VMQ .
Para cada cola, un adaptador de red debe admitir el siguiente conjunto de estados operativos:
No definido
Allocated
Set
En pausa
En ejecución
Detener DMA
Liberar
En la ilustración siguiente se muestran las relaciones entre estos estados.
A continuación se definen los estados del adaptador:
Indefinido
Undefined es el estado inicial de una cola. En este estado, no se asigna la cola. Una cola (excepto la cola predeterminada que siempre existe) no está definida hasta que el controlador de miniporte recibe una solicitud de asignación de cola. Además, no está definido una vez completada la operación gratuita y se completan todas las indicaciones de recepción que se han iniciado.
Allocated
Una cola está en estado Asignado después de una solicitud de asignación y antes de que haya filtros establecidos en la cola. El filtro también puede especificar el estado Asignado si la cola está en el estado Establecer y el último filtro se borra en la cola. La cola entra en el estado Pausado si el controlador de minipuerto recibe una solicitud completa de asignación mientras el controlador de minipuerto está en estado Asignado. La cola entra en el estado Stop DMA si el controlador de miniporte recibe una solicitud de cola gratuita.
Set
En el estado Establecer , se asigna una cola y se establece un filtro al menos en la cola, pero el controlador de minipuerto aún no recibió un OID completo de asignación. La cola entra en estado En ejecución si recibe una solicitud completa de asignación. La cola entra en el estado Asignado si se borra el último filtro de la cola. Tenga en cuenta que la cola no se puede liberar mientras hay filtros establecidos en la cola.
Pausa
En el estado Pausado , se asigna la cola, pero su controlador de minipuerto no indica los paquetes recibidos porque no hay ningún filtro establecido en la cola. El controlador de minipuerto puede entrar en estado Pausado desde el estado Asignado o desde el estado En ejecución. La cola entra en estado En ejecución cuando recibe una solicitud de conjunto de filtros. La cola entra en el estado Stop DMA cuando recibe una solicitud de cola gratuita.
En ejecución
En el estado En ejecución , una cola tiene filtros establecidos, la asignación de cola se completa y el adaptador de red indica que reciben paquetes. La cola entra en estado Pausado si se borra el último filtro de la cola. Tenga en cuenta que la cola no se puede liberar mientras hay filtros establecidos en la cola. Además, el controlador de minipuerto puede detener el DMA si se borra el último filtro. Sin embargo, el controlador de minipuerto no debe enviar la indicación de estado detenido de DMA en este caso.
Detener DMA
En el estado Detener DMA , el controlador de minipuerto recibió una solicitud de cola gratuita y la actividad DMA debe detenerse. El controlador de minipuerto debe enviar una indicación de estado detenida de DMA. Después de que el controlador de minipuerto envíe la indicación de estado, la cola se encuentra en estado freeing. Tenga en cuenta que es probable que el DMA ya se haya detenido cuando se borre el último filtro. Sin embargo, el controlador de minipuerto solo debe enviar la indicación de estado cuando recibe la solicitud de cola gratuita.
Liberar
En el estado freeing , un controlador de minipuerto espera a que todas las indicaciones de recepción pendientes de una cola se completen y liberen los recursos asociados a la cola. Una vez liberados todos los recursos, la cola entra en el estado Undefined.