Freigeben über


IRequestCallbackCancel::OnCancel-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 für neuere 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 OnCancel-Methode wird aufgerufen, wenn eine Anwendung einen E/A-Vorgang über die Funktion "CancelIo", "CancelIoEx" oder "CancelSynchronousIo" von Microsoft Win32 abbricht.

Syntax

void OnCancel(
  [in] IWDFIoRequest *pWdfRequest
);

Parameter

[in] pWdfRequest

Ein Zeiger auf die IWDFIoRequest-Schnittstelle , die das abzubrechende Frameworkanforderungsobjekt darstellt.

Rückgabewert

Keine

Bemerkungen

Das Framework ruft die OnCancel-Methode auf, um die E/A-Anforderung abzubrechen, die vom pWdfRequest-Parameter identifiziert wird. Der Treiber sollte zunächst ermitteln, ob er die E/A-Anforderung abbrechen kann. Wenn die Anforderung abgebrochen werden kann, sollte sie vom Treiber abgebrochen werden. Weitere Informationen zum Abbrechen einer Anforderung finden Sie unter Abbrechen von E/A-Anforderungen.

Wenn der Treiber die Anforderung abbricht, muss der Treiber die Anforderung auch abschließen, indem er die IWDFIoRequest::Complete-Methode aufruft, wobei der CompletionStatus-Parameter auf HRESULT_FROM_WIN32(ERROR_OPERATION_ABORTED) festgelegt ist.

Das Framework ruft OnCancel nicht auf, um eine Anforderung abzubrechen, es sei denn, der Treiber hat zuvor die IWDFIoRequest::MarkCancelable-Methode aufgerufen, um den Abbruch der Anforderung zu aktivieren und die IRequestCallbackCancel-Schnittstelle zu registrieren.

Das User-Mode Driver Framework (UMDF) lässt nur eine OnCancel-Methode pro Warteschlange zu. Wenn ein Treiber daher IWDFIoRequest::MarkCancelable für Anforderungen aufruft, die einer bestimmten Warteschlange zugeordnet sind, damit das Framework diese Anforderungen abbrechen kann, muss der Treiber einen Zeiger an die IRequestCallbackCancel-Schnittstelle für dasselbe Request-Rückrufobjekt übergeben. Um später jede Anforderung abzubrechen, übergibt das Framework einen Zeiger an die IWDFIoRequest-Schnittstelle für die Anforderung in einem Aufruf der OnCancel-Methode dieses Anforderungs-Rückrufobjekts.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile wudfddi.h (include Wudfddi.h)

Weitere Informationen

IRequestCallbackCancel

IWDFIoRequest

IWDFIoRequest::Complete

IWDFIoRequest::MarkCancelable