EVT_WDF_DRIVER_DEVICE_ADD Rückruffunktion (wdfdriver.h)
[Gilt für KMDF und UMDF]
Die EvtDriverDeviceAdd-Ereignisrückruffunktion eines Treibers führt Geräteinitialisierungsvorgänge aus, wenn der PnP-Manager (Plug & Play) das Vorhandensein eines Geräts meldet.
Syntax
EVT_WDF_DRIVER_DEVICE_ADD EvtWdfDriverDeviceAdd;
NTSTATUS EvtWdfDriverDeviceAdd(
[in] WDFDRIVER Driver,
[in, out] PWDFDEVICE_INIT DeviceInit
)
{...}
Parameter
[in] Driver
Ein Handle für ein Frameworktreiberobjekt, das den Treiber darstellt.
[in, out] DeviceInit
Ein Zeiger auf eine vom Framework zugewiesene WDFDEVICE_INIT-Struktur .
Rückgabewert
DieRückruffunktion EvtDriverDeviceAdd muss STATUS_SUCCESS zurückgeben, wenn der Vorgang erfolgreich ist. Andernfalls muss diese Rückruffunktion einen der Fehlerwerte status zurückgeben, die in Ntstatus.h definiert sind. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
Hinweise
Jeder frameworkbasierte Treiber, der PnP-Geräte unterstützt, muss die Rückruffunktion EvtDriverDeviceAdd bereitstellen. Der Treiber muss die Adresse der Rückruffunktion in der WDF_DRIVER_CONFIG-Struktur platzieren, bevor WdfDriverCreate aufgerufen wird.
Das Framework ruft die EvtDriverDeviceAdd-Rückruffunktion Ihres Treibers auf, nachdem ein Bustreiber ein Gerät mit einem Hardwarebezeichner (ID) erkannt hat, das mit einer Hardware-ID übereinstimmt, die vom Treiber unterstützt wird. Sie geben die Hardware-IDs an, die Ihr Treiber unterstützt, indem Sie eine INF-Datei bereitstellen, die das Betriebssystem verwendet, um Treiber zu installieren, wenn eines Ihrer Geräte zum ersten Mal mit dem Computer verbunden ist. Weitere Informationen dazu, wie das System INF-Dateien und Hardware-IDs verwendet, finden Sie unter So wählt Setup Treiber aus.
Die Rückruffunktion EvtDriverDeviceAdd eines Treibers führt in der Regel mindestens einige der folgenden Initialisierungsvorgänge aus:
-
Erstellen Sie ein Framework-Geräteobjekt , um das Gerät darzustellen.
-
Erstellen Sie E/A-Warteschlangen , damit der Treiber E/A-Anforderungen empfangen kann.
-
Erstellen Sie Geräteschnittstellen , die Anwendungen für die Kommunikation mit dem Gerät verwenden.
-
Erstellen Sie treiberdefinierte Schnittstellen , die andere Treiber verwenden können.
- Initialisieren Sie die WMI-Unterstützung (Windows-Verwaltungsinstrumentation).
-
Erstellen Sie Interruptobjekte, wenn der Treiber Geräteunterbrechungen verarbeitet.
-
Aktivieren Sie DMA-Transaktionen (Direct Memory Access), wenn der Treiber DMA-Vorgänge verarbeitet.
Wenn die EvtDriverDeviceAdd-Rückruffunktion eines Treibers ein Geräteobjekt erstellt, aber nicht STATUS_SUCCESS zurückgibt, löscht das Framework das Geräteobjekt und seine untergeordneten Geräte.
Wenn die Rückruffunktion EvtDriverDeviceAdd eines Funktionstreibers nicht STATUS_SUCCESS zurückgibt, erstellt der E/A-Manager keinen Gerätestapel für das Gerät.
Wenn die EvtDriverDeviceAdd-Rückruffunktion eines Filtertreibers nicht STATUS_SUCCESS zurückgibt, konvertiert das Framework den Rückgabewert in STATUS_SUCCESS, und der E/A-Manager erstellt den Gerätestapel ohne den Filtertreiber.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
UMDF-Mindestversion | 2.0 |
Kopfzeile | wdfdriver.h (einschließen von Wdf.h) |
IRQL | PASSIVE_LEVEL |