KIPI_BROADCAST_WORKER Rückruffunktion (wdm.h)
Die IpiGenericCall-Routine wird auf allen Prozessoren gleichzeitig ausgeführt.
Syntax
KIPI_BROADCAST_WORKER KipiBroadcastWorker;
ULONG_PTR KipiBroadcastWorker(
[in] ULONG_PTR Argument
)
{...}
Parameter
[in] Argument
Gibt den Wert an, der an die KeIpiGenericCall-Routine übergeben wurde, die IpiGenericCall aufgerufen hat.
Rückgabewert
IpiGenericCall gibt einen vom Treiber definierten Wert zurück. Wenn IpiGenericCall auf demselben Prozessor ausgeführt wurde, der KeIpiGenericCall aufgerufen hat, gibt KeIpiGenericCall den vom Treiber definierten Wert zurück, den IpiGenericCall zurückgibt. Andernfalls wird der Wert ignoriert.
Hinweise
IpiGenericCall-Routinen werden mit IRQL = IPI_LEVEL ausgeführt, die größer als DIRQL für jedes Gerät ist. IpiGenericCall-Routinen müssen dieselben Einschränkungen erfüllen wie Rückrufroutinen für die Fehlerüberprüfung. Weitere Informationen zu diesen Einschränkungen finden Sie unter Schreiben einer Rückrufroutine für die Fehlerüberprüfung.
Beispiele
Um eine IpiGenericCall-Rückrufroutine zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der Rückrufroutine identifiziert, die Sie definieren. Windows bietet eine Reihe von Rückruffunktionstypen für Treiber. Das Deklarieren einer Funktion mithilfe der Rückruffunktionstypen 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 Voraussetzung für das Schreiben von Treibern für das Windows-Betriebssystem.
Um beispielsweise eine IpiGenericCall-Rückrufroutine mit dem Namen MyIpiGenericCall
zu definieren, verwenden Sie den typ KIPI_BROADCAST_WORKER, wie in diesem Codebeispiel gezeigt:
KIPI_BROADCAST_WORKER MyIpiGenericCall;
Implementieren Sie dann Ihre Rückrufroutine wie folgt:
_Use_decl_annotations_
ULONG_PTR
MyIpiGenericCall(
ULONG_PTR Argument
)
{
// Function body
}
Der KIPI_BROADCAST_WORKER Funktionstyp ist in der Wdm.h-Headerdatei 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 KIPI_BROADCAST_WORKER 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. Informationen zu _Use_decl_annotations_
finden Sie unter Verhalten von Funktionen mit Anmerkungen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Header | wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
IRQL | Wird bei IPI_LEVEL aufgerufen. |