Arresto di un dispositivo per disabilitarlo (Windows 98/Me)

In Windows 98/Me il gestore PnP genera l'arresto dei runtime di integrazione quando Gestione dispositivi disabilita il dispositivo. (Windows 2000 e versioni successive del problema di Windows rimuovere i runtime di integrazione in questa situazione).

Il gestore PnP invia i runtime di integrazione di arresto nella sequenza seguente:

  1. Il gestore PnP rilascia un IRP_MN_QUERY_STOP_DEVICE per chiedere se i driver per un dispositivo possono arrestare il dispositivo.

    Se tutti i driver nello stack di dispositivi restituiscono STATUS_SUCCESS, i driver hanno inserito il dispositivo in uno stato (arresto in sospeso) da cui il dispositivo può essere arrestato rapidamente.

    Il gestore PnP esegue una query su tutti gli stack di dispositivi necessari per disabilitare il dispositivo.

  2. Se il IRP_MN_QUERY_STOP_DEVICE ha esito positivo, il gestore PnP rilascia un IRP_MN_STOP_DEVICE per arrestare il dispositivo.

    Il gestore PnP invia l'IRP di arresto solo se l'IRP query-stop precedente per il dispositivo è stato completato correttamente. In risposta all'arresto dell'IRP, i driver rilasciano le risorse hardware del dispositivo (ad esempio le porte di I/O) e non riescono i runtime di integrazione che richiedono l'accesso al dispositivo.

  3. Se il IRP_MN_QUERY_STOP_DEVICE ha esito negativo, il gestore PnP invia un IRP_MN_CANCEL_STOP_DEVICE per annullare la query.

    In risposta a un IRP_MN_CANCEL_STOP_DEVICE, i driver per un dispositivo restituiscono il dispositivo allo stato avviato e riprendono l'elaborazione delle richieste di I/O per il dispositivo.

    Il gestore PnP annulla l'arresto della query per uno stack di dispositivi se un driver nello stack non ha superato la richiesta. Quando il gestore PnP annulla l'arresto della query in un solo stack di dispositivi, invia la richiesta di IRP_MN_CANCEL_STOP_DEVICE perché tutti i driver collegati sopra il driver che non ha superato la query hanno il dispositivo nello stato di arresto in sospeso. Quando l'IRP_MN_CANCEL_STOP_DEVICE ha esito positivo, i driver hanno restituito il dispositivo allo stato avviato.

Quando un dispositivo viene disabilitato, i driver non possono accodare i runtime di integrazione in ingresso perché non esiste alcuna garanzia quando il dispositivo potrebbe essere riabilitabile. Di conseguenza, i dati potrebbero andare persi.