Freigeben über


EXT_DELETE_CALLBACK Rückruffunktion (wdm.h)

Eine ExTimerDeleteCallback-Rückrufroutine wird ausgeführt, wenn das Betriebssystem ein EX_TIMER Timerobjekt löscht.

Syntax

EXT_DELETE_CALLBACK ExtDeleteCallback;

void ExtDeleteCallback(
  [in, optional] PVOID Context
)
{...}

Parameter

[in, optional] Context

Der Kontextwert aus dem DeleteContext-Member der EXT_DELETE_PARAMETERS Struktur, den Ihr Treiber zuvor als Eingabeparameter an die ExDeleteTimer-Routine übergeben hat.

Rückgabewert

Keine

Bemerkungen

Optional kann Ihr Treiber einen Zeiger auf eine ExTimerDeleteCallback-Routine im DeleteCallback-Member der EXT_DELETE_PARAMETERS-Struktur bereitstellen, die Ihr Treiber als Eingabeparameter an die ExDeleteTimer-Routine übergibt. Die ExTimerDeleteCallback-Routine kann alle Speicher- oder anderen Systemressourcen freigeben, die der Treiber zuvor für die Verwendung mit dem zu löschenden Timerobjekt zugewiesen hat.

Wenn der Treiber eine ExTimerDeleteCallback-Routine bereitstellt und der Wait-Parameter im ExDeleteRoutine-AufrufTRUE ist, wird die ExTimerDeleteCallback-Routine ausgeführt, bevor ExDeleteTimer zurückgibt. Andernfalls kann die ExTimerDeleteCallback-Routine vor oder nach dem ExDeleteTimer-Aufruf ausgeführt werden. Die ExTimerDeleteCallback-Routine wird erst aufgerufen, nachdem das Timerobjekt deaktiviert wurde, um weitere Zeitgebervorgänge zu verhindern und alle ausstehenden Timervorgänge für das Zeitgeberobjekt abgebrochen oder abgeschlossen werden. Das Timerobjekt (eine EX_TIMER-Struktur ), das der Treiber als Eingabeparameter an die ExDeleteTimer-Routine übergibt, ist möglicherweise nicht mehr gültig, wenn die ExTimerDeleteCallback-Routine ausgeführt wird.

Weitere Informationen finden Sie unter ExXxxTimer-Routinen und EX_TIMER-Objekte.

Beispiele

Um eine ExTimerDeleteCallback-Rückrufroutine zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der von Ihnen definierten Rückrufroutine identifiziert. Windows bietet eine Reihe von Rückruffunktionstypen für Treiber. Das Deklarieren einer Funktion mithilfe des Rückruffunktionstyps hilft der Codeanalyse für Treiber, der statischen Treiberüberprüfung (Static Driver Verifier , SDV) und anderen Überprüfungstools, Fehler zu finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine ExTimerDeleteCallback-Rückrufroutine mit dem Namen MyExTimerDeleteCallbackzu definieren, verwenden Sie den EXT_DELETE_CALLBACK Funktionstyp, wie in diesem Codebeispiel gezeigt:

EXT_DELETE_CALLBACK  MyExTimerDeleteCallback;

Implementieren Sie dann Ihre Rückrufroutine wie folgt:

_Use_decl_annotations_
VOID
  MyExTimerDeleteCallback(
    PVOID  Context
    )
  {...}

Der EXT_DELETE_CALLBACK Funktionstyp ist in der Headerdatei Wdm.h definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, fügen Sie die _Use_decl_annotations_ Anmerkung ihrer Funktionsdefinition hinzu. Die _Use_decl_annotations_ Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den EXT_DELETE_CALLBACK Funktionstyp in der Headerdatei angewendet werden. Weitere Informationen zu den Anforderungen für Funktionsdeklarationen finden Sie unter Deklarieren von Funktionen mithilfe von Funktionsrollentypen für WDM-Treiber. Weitere Informationen zu _Use_decl_annotations_finden Sie unter Verhalten von Funktionen mit Anmerkungen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 8.1.
Zielplattform Desktop
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
IRQL Wird bei DISPATCH_LEVEL aufgerufen.

Weitere Informationen

EXT_DELETE_PARAMETERS

EX_TIMER

ExDeleteTimer