Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette rubrique fournit une vue d’ensemble des états opérationnels des files d’attente de machines virtuelles NDIS (VMQs). Pour plus d’informations sur les états de file d’attente, consultez la rubrique États et opérations de file d’attente dans la section Écriture de pilotes VMQ .
Pour chaque file d’attente, une carte réseau doit prendre en charge l’ensemble d’états opérationnels suivants :
Indéfini
Affecté
Définissez
Suspendu(e)
Course à pied
Arrêter DMA
Libération
La figure suivante montre les relations entre ces états.
L’exemple suivant définit les états de l’adaptateur :
Indéfini
Undefined est l’état initial d’une file d’attente. Dans cet état, la file d’attente n’est pas allouée. Une file d’attente (à l’exception de la file d’attente par défaut qui existe toujours) n’est pas définie jusqu’à ce que le pilote miniport reçoive une demande d’allocation de file d’attente. En outre, il n’est pas défini une fois l’opération libre terminée et toutes les indications de réception qui ont été démarrées sont terminées.
Alloué
Une file d’attente est dans l’état alloué après une demande d’allocation et avant qu’il y ait des filtres définis dans la file d’attente. Le filtre peut également entrer dans l’état alloué si la file d’attente est dans l’état Définir et que le dernier filtre est retiré de la file d’attente. La file d’attente entre dans l’état suspendu si le pilote miniport reçoit une requête complète d’allocation pendant que le pilote miniport est dans l’état alloué. La file d'attente entre dans l'état Stop DMA si le pilote miniport reçoit une demande de libération de file d'attente.
Définir
Dans l’état Set , une file d’attente est allouée et un filtre au moins est défini sur la file d’attente, mais le pilote miniport n’a pas encore reçu d’OID complet d’allocation. La file d’attente entre dans l’état d’exécution s’il reçoit une requête complète d’allocation. La file d’attente entre dans l’état Alloué si le dernier filtre de la file d’attente est effacé. Notez que la file d’attente ne peut pas être libérée alors qu’il existe des filtres définis sur la file d’attente.
Suspendu
Dans l’état suspendu , la file d’attente est allouée, mais son pilote miniport n’indique pas les paquets reçus, car aucun filtre n’est défini sur la file d’attente. Le pilote miniport peut entrer dans l’état En pause à partir de l’état Alloué ou de l’état En cours d’exécution. La file d'attente passe à l'état d'exécution lorsqu'elle reçoit une requête de définition de filtres. La file d'attente passe à l'état Arrêter DMA lorsqu'elle reçoit une demande de libération de file d'attente.
Course à pied
Dans l’état en cours, une file d’attente a des filtres configurés, l’allocation de la file d'attente est effectuée, et la carte réseau indique la réception des paquets. La file d’attente entre dans l’état suspendu si le dernier filtre de la file d’attente est effacé. Notez que la file d’attente ne peut pas être libérée alors qu’il existe des filtres définis sur la file d’attente. En outre, le pilote miniport a la capacité d’arrêter la DMA si le dernier filtre est supprimé. Toutefois, le pilote miniport ne doit pas envoyer l’indication d'état de l'arrêt du DMA dans ce cas.
Arrêter DMA
Dans l’état Arrêter DMA, le pilote miniport a reçu une demande de libération de file d'attente et l'activité DMA doit être arrêtée. Le pilote miniport doit envoyer une indication d’état arrêté par DMA. Une fois que le pilote miniport envoie l’indication d’état, la file d’attente est dans l’état de libération. Notez que la DMA a probablement déjà été arrêtée lorsque le dernier filtre a été effacé. Toutefois, le pilote miniport ne doit envoyer l'indication d'état que lorsqu'il reçoit la demande de file d'attente libre.
Libération
Dans l'état en cours de libération, un pilote miniport attend la fin de toutes les indications de réception en attente sur une file d'attente pour libérer les ressources associées à cette file d'attente. Une fois que toutes les ressources sont libérées, la file d’attente entre dans l’état Non défini.