Condividi tramite


Operazioni intermedie di reimpostazione del driver

Un driver intermedio deve essere preparato a gestire la situazione in cui gli invii in sospeso su un'associazione a un driver sottostante possono essere eliminati perché la scheda di interfaccia di rete sottostante viene reimpostata.

Un driver sottostante reimposta in genere una scheda di interfaccia di rete perché NDIS chiama la funzione MiniportResetExdel driver miniportquando NDIS esegue il timeout degli invii o delle richieste in coda alla scheda di interfaccia di rete. Se una scheda di interfaccia di rete sottostante viene reimpostata, NDIS chiama la funzione ProtocolStatusEx(o ProtocolCoStatusEx) di ogni protocollo associato e driver intermedio con un stato di NDIS_STATUS_RESET_START. Quando il driver miniport completa la reimpostazione, NDIS chiama nuovamente ProtocolStatusEx(o ProtocolCoStatusEx) con uno stato di NDIS_STATUS_RESET_END.

Quando viene reimpostata una scheda di interfaccia di rete, se un driver intermedio associato dispone di dati di rete da trasmettere in sospeso a tale scheda di interfaccia di rete, NDIS restituisce tali dati di rete al driver intermedio con uno stato appropriato. Il driver intermedio deve inviare nuovamente questi dati di rete al termine della reimpostazione.

Quando un driver intermedio riceve uno stato di NDIS_STATUS_RESET_START, dovrebbe:

  • Fino a quando ProtocolStatusEx o ProtocolCoStatusEx non ricevono una notifica di NDIS_STATUS_RESET_END, mantenere i dati di rete pronti per essere trasmessi.

  • Conservare tutti i dati di rete ricevuti pronti per essere inviati al driver di livello superiore successivo fino a quando ProtocolStatusEx(o ProtocolCoStatusEx) riceve una notifica di NDIS_STATUS_RESET_END.

  • Eliminare qualsiasi stato interno che mantiene per le operazioni in corso e lo stato della NIC.

Dopo che ProtocolStatusEx(o ProtocolCoStatusEx) riceve NDIS_STATUS_RESET_END, il driver intermedio può riprendere l'invio di dati di rete, inviando richieste e inviando indicazioni a driver di livello superiore.

Un driver intermedio non fornisce una funzione MiniportResetEx.