IQueueCallbackIoStop::OnIoStop-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 OnIoStop-Rückruffunktion beendet die Verarbeitung der angegebenen E/A-Anforderung aus der angegebenen Warteschlange.
Syntax
void OnIoStop(
[in] IWDFIoQueue *pWdfQueue,
[in] IWDFIoRequest *pWdfRequest,
[in] ULONG ActionFlags
);
Parameter
[in] pWdfQueue
Ein Zeiger auf die IWDFIoQueue-Schnittstelle für das E/A-Warteschlangenobjekt, von dem aus die Verarbeitung der E/A-Anforderung beendet wird.
[in] pWdfRequest
Ein Zeiger auf die IWDFIoRequest-Schnittstelle , die das Frameworkanforderungsobjekt darstellt, dessen Verarbeitung beendet wird.
[in] ActionFlags
Ein gültiger bitweiser OR-Wert mit WDF_REQUEST_STOP_ACTION_FLAGS typisierten Werten, der den Status einer Stop-Aktionsanforderung identifiziert.
Rückgabewert
Keine
Bemerkungen
Ein Treiber registriert die IQueueCallbackIoStop-Schnittstelle , wenn der Treiber die IWDFDevice::CreateIoQueue-Methode aufruft , um eine E/A-Warteschlange zu erstellen oder die Standard-E/A-Warteschlange zu konfigurieren.
Wenn ein Treiber eine OnIoStop-Rückruffunktion für eine E/A-Warteschlange registriert, ruft das Framework diese auf, wenn das der Warteschlange zugrunde liegende Gerät seinen Arbeitsstatus (D0) verlässt. Das Framework ruft die OnIoStop-Rückruffunktion für jede E/A-Anforderung auf, die der Treiber nicht abgeschlossen hat, einschließlich Anforderungen, die der Treiber besitzt und die er an ein E/A-Ziel weitergeleitet hat.
Die OnIoStop-Rückruffunktion muss die weitere Verarbeitung der E/A-Anforderung abschließen, abbrechen oder verschieben. Sie müssen die folgenden Regeln verwenden:
Wenn der Treiber die E/A-Anforderung besitzt, muss er IWDFIoRequest::Complete aufrufen, um die Anforderung abzuschließen oder abzubrechen, oder er muss die weitere Verarbeitung der Anforderung verzögern und dann IWDFIoRequest2::StopAcknowledge aufrufen.
Wenn der Treiber die E/A-Anforderung an ein E/A-Ziel weitergeleitet hat, muss er IWDFIoRequest::CancelSentRequest aufrufen, um die Anforderung abzubrechen, oder er muss die weitere Verarbeitung der Anforderung verschieben und dann StopAcknowledge aufrufen.
Wenn das WdfRequestStopRequestCancelable-Flag im ActionFlags-Parameter festgelegt ist, muss der Treiber IWDFIoRequest::UnmarkCancelable aufrufen, bevor IWDFIoRequest::Complete aufgerufen wird, um die Anforderung abzuschließen (oder abzubrechen) oder IWDFIoRequest2::StopAcknowledge aufzurufen, um die Anforderung erneut in die Warteschlange zu stellen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | wudfddi.h (include Wudfddi.h) |