Condividi tramite


Metodo IWDTFPNPActions2::EDTTryStopDeviceFailRestart (wdtfpnpaction.h)

Prova a inviare un evento IRP_MN_STOP_DEVICE al dispositivo di destinazione e quindi non riesce il successivo riavvio del dispositivo.

Sintassi

HRESULT EDTTryStopDeviceFailRestart(
  [out, retval] VARIANT_BOOL *pbSuccess
);

Parametri

[out, retval] pbSuccess

True se l'operazione ha esito positivo; in caso contrario, false.

Valore restituito

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT.

Osservazioni

Nota Il metodo IWDTFEnhancedDeviceTestSupportAction2::Enable deve essere chiamato per il dispositivo di destinazione prima di chiamare questo metodo.
 
EDTTryStopDeviceFailRestart tenta di attivare un ribilanciamento della risorsa PnP (una sequenza Query Stop, Stop, Start IRP) in cui ha esito negativo l'evento IRP_MN_START_DEVICE che segue un errore di arresto e arresto di query riuscito. L'IRP di avvio non riuscito, a sua volta, fa in modo che il sistema rimuova a sorpresa il dispositivo (IRP_MN_SURPRISE_REMOVAL).

L'IRP stop non è garantito. Altri driver nello stack possono avere esito negativo in un evento IRP_MN_QUERY_STOP_DEVICE che precede l'IRP stop (con conseguente IRP_MN_CANCEL_STOP_DEVICE). Inoltre, il sistema può ottimizzare se rileva che il dispositivo di destinazione non usa risorse hardware (ad esempio un mouse USB) e invia invece un IRP CancelStop.

Se il dispositivo non utilizza risorse hardware, ma si vuole comunque provare a testare il modo in cui i driver e le applicazioni gestiscono il ribilanciamento della risorsa PnP con un avvio non riuscito, è possibile eseguire il EDTTryStopDeviceFailRestart metodo in un dispositivo padre, nonno e così via, che utilizza risorse hardware. Ad esempio, se il dispositivo è un mouse USB, è possibile eseguire questo metodo sul controller USB padre.

Fabbisogno

Requisito Valore
piattaforma di destinazione Desktop
intestazione wdtfpnpaction.h