IWDFIoTargetStateManagement::Stop-Methode (wudfddi.h)
[Warnung: UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mit UMDF 2 geschrieben werden. UMDF 1 werden keine neuen Features hinzugefügt, und die Unterstützung für UMDF 1 in neueren Versionen von Windows 10 ist eingeschränkt. Universelle Windows-Treiber müssen UMDF 2 verwenden. Weitere Informationen finden Sie unter Erste Schritte mit UMDF.]
Die Stop-Methode beendet das Senden von Anforderungen in der Warteschlange an ein lokales E/A-Ziel.
Syntax
HRESULT Stop(
[in] WDF_IO_TARGET_SENT_IO_ACTION Action
);
Parameter
[in] Action
Ein WDF_IO_TARGET_SENT_IO_ACTION typisierter Wert, der angibt, wie gesendete E/A-Vorgänge verarbeitet werden, wenn das E/A-Zielobjekt beendet wird.
Rückgabewert
Stop gibt immer S_OK zurück.
Hinweise
Wenn Ihr Treiber wiederherstellbare Gerätefehler erkennen kann, möchten Sie möglicherweise, dass Ihr Treiber Stop aufruft , um vorübergehend keine Anforderungen mehr an das lokale E/A-Ziel zu senden, und später IWDFIoTargetStateManagement::Start aufrufen, um das Senden von Anforderungen fortzusetzen.
Wenn ein Treiber IWDFUsbTargetPipe2::ConfigureContinuousReader aufruft, um einen fortlaufenden Reader für eine USB-Pipe zu konfigurieren, muss außerdem die IPnpCallback::OnD0Exit-Rückruffunktion des Treibers Stop aufrufen, um den Reader zu beenden.
Wenn ein Treiber Stop aufgerufen hat, kann er dennoch eine Anforderung an das Ziel senden, indem er beim Aufrufen von IWDFIoRequest::Send das flag WDF_REQUEST_OPTION_IGNORE_TARGET_STATE festlegt. Wenn ein Treiber dieses Flag festlegt, kann der Treiber eine Anforderung, z. B. eine Anforderung zum Zurücksetzen einer USB-Pipe (siehe IWDFUsbTargetPipe::Reset), an ein Gerät senden, nachdem der Treiber Stop aufgerufen hat.
Ihr Treiber muss IWDFIoTargetStateManagement::Start und Stop synchron aufrufen. Nachdem der Treiber eine dieser Funktionen aufgerufen hat, darf er keine der beiden Funktionen aufrufen, bevor der erste Aufruf zurückgegeben wird.
Ihr Treiber kann Stop mehrmals aufrufen, ohne IWDFIoTargetStateManagement::Start aufzurufen. Ihr Treiber kann z. B. die folgenden Aktionen ausführen:
- Rufen Sie Stop auf , und geben Sie den AktionswertWdfIoTargetLeaveSentIoPending an.
- Bestimmen Sie, ob das Ziel die Verarbeitung von E/A-Anforderungen fortsetzen soll.
- Wenn das Ziel fortgesetzt werden soll, rufen Sie IWDFIoTargetStateManagement::Start auf. Andernfalls rufen Sie Stop erneut mit dem Action-WertWdfIoTargetCancelSentIo auf.
Weitere Informationen zu E/A-Zielen finden Sie unter Verwenden von E/A-Zielen.
Beispiele
Das folgende Codebeispiel zeigt, wie eine IPnpCallback::OnD0Exit-RückruffunktionStop aufrufen kann, wenn der Treiber einen fortlaufenden Reader für eine USB-Pipe verwendet. (Informationen zum Abrufen der IWDFIoTargetStateManagement-Schnittstelle finden Sie im Codebeispiel unter IWDFIoTargetStateManagement::Start.)
HRESULT
CMyDevice::OnD0Exit(
__in IWDFDevice* pWdfDevice,
__in WDF_POWER_DEVICE_STATE previousState
)
{
HRESULT hr;
hr = m_pIoTargetInterruptPipeStateMgmt->Stop(WdfIoTargetCancelSentIo);
return hr;
}
Anforderungen
Anforderung | Wert |
---|---|
Ende des Supports | In UMDF 2.0 und höher nicht verfügbar. |
Zielplattform | Desktop |
UMDF-Mindestversion | 1.5 |
Kopfzeile | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |