Freigeben über


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)

Weitere Informationen

IQueueCallbackIoStop

IWDFDevice::CreateIoQueue

IWDFIoQueue

IWDFIoRequest

IWDFIoRequest2::StopAcknowledge

WDF_REQUEST_STOP_ACTION_FLAGS