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, die ihr Treiber zuvor als Eingabeparameter an die ExDeleteTimer Routine übergeben hat.

Rückgabewert

Nichts

Bemerkungen

Als Option 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 andere Systemressourcen freigeben, die der Treiber zuvor für die Verwendung mit dem timer-Objekt zugewiesen hat, das gelöscht wird.

Wenn der Treiber eine ExTimerDeleteCallback Routine bereitstellt und der parameter Wait im ExDeleteRou tine-Aufruf TRUEist, wird die ExTimerDeleteCallback- Routine ausgeführt, bevor ExDeleteTimer zurückgegeben wird. Andernfalls wird die ExTimerDeleteCallback- Routine möglicherweise vor oder nach dem ExDeleteTimer Aufruf zurückgegeben. Die ExTimerDeleteCallback Routine wird erst aufgerufen, nachdem das Timerobjekt deaktiviert wurde, um weitere Zeitgebervorgänge zu verhindern und alle ausstehenden Zeitgebervorgänge für das Timerobjekt 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 Routines und EX_TIMER Objects.

Beispiele

Um eine ExTimerDeleteCallback- Rückrufroutine zu definieren, müssen Sie zuerst eine Funktionsdeklaration bereitstellen, die den Typ der von Ihnen definierten Rückrufroutine identifiziert. Windows stellt eine Reihe von Rückruffunktionstypen für Treiber bereit. Durch das Deklarieren einer Funktion mithilfe des Rückruffunktionstyps können Codeanalyse für Treiber, statische Treiberüberprüfung (SDV) und andere Überprüfungstools Fehler finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.

Wenn Sie beispielsweise eine ExTimerDeleteCallback- Rückrufroutine definieren möchten, die MyExTimerDeleteCallbackheißt, verwenden Sie den funktionstyp EXT_DELETE_CALLBACK, 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 wird in der Wdm.h-Headerdatei definiert. Um Fehler genauer zu identifizieren, wenn Sie die Codeanalysetools ausführen, müssen Sie der Funktionsdefinition die _Use_decl_annotations_ Anmerkung hinzufügen. Die _Use_decl_annotations_ Anmerkung stellt sicher, dass die Anmerkungen, die auf den Funktionstyp EXT_DELETE_CALLBACK in der Headerdatei angewendet werden, verwendet 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 Annotating Function Behavior.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar ab Windows 8.1.
Zielplattform- Desktop
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
IRQL- Wird bei DISPATCH_LEVEL aufgerufen.

Siehe auch

EXT_DELETE_PARAMETERS

EX_TIMER

ExDeleteTimer-