WdfFdoInitSetFilter-Funktion (wdffdo.h)

[Gilt für KMDF und UMDF]

Die WdfFdoInitSetFilter-Methode identifiziert den aufrufenden Treiber als Filtertreiber der oberen oder unteren Ebene für ein angegebenes Gerät.

Syntax

void WdfFdoInitSetFilter(
  [in] PWDFDEVICE_INIT DeviceInit
);

Parameter

[in] DeviceInit

Ein Zeiger auf eine WDFDEVICE_INIT Struktur, die der Treiber aus seiner Rückruffunktion EvtDriverDeviceAdd abgerufen hat.

Rückgabewert

Keine

Bemerkungen

Filtertreiber verarbeiten in der Regel einige E/A-Anforderungen, aber sie übergeben die meisten Anforderungen einfach an den nächsten Treiber im Treiberstapel. Wenn das Framework eine Anforderung für eines der Geräte Ihres Treibers empfängt und der Treiber keine E/A-Warteschlange erstellt hat, um Anforderungen zu empfangen, die dem Anforderungstyp entsprechen, hängt die Art und Weise, wie das Framework die Anforderung verarbeitet, davon ab, ob der Treiber WdfFdoInitSetFilter aufgerufen hat:

  • Wenn ein Treiber WdfFdoInitSetFilter aufruft, leitet das Treiberframework die Anforderung an den nächsten Treiber weiter.
  • Wenn ein Treiber WdfFdoInitSetFilter nicht aufruft, schließt das Framework die Anforderung mit dem status Wert STATUS_INVALID_DEVICE_REQUEST ab.
Wenn ein Treiber WdfFdoInitSetFilter aufruft, sollte er nicht WdfDeviceInitSetIoType, WdfDeviceInitSetPowerInrush oder WdfDeviceInitSetPowerPageable aufrufen, da das Framework die von diesen Aufrufen bereitgestellten Informationen ignoriert. Stattdessen ruft das Framework diese Informationen vom nächstniedrigen Geräteobjekt im Gerätestapel des Treibers ab.

Der Treiber muss WdfFdoInitSetFilter aufrufen, bevor WdfDeviceCreate aufgerufen wird. Weitere Informationen zum Aufrufen von WdfDeviceCreate finden Sie unter Erstellen eines Framework-Geräteobjekts. Darüber hinaus muss der Treiber WdfFdoInitSetFilter aufrufen, bevor er von seiner Rückruffunktion EvtDriverDeviceAdd zurückgibt.

Weitere Informationen zu WdfFdoInitSetFilter finden Sie unter Erstellen von Geräteobjekten in einem Filtertreiber, Erstellen von E/A-Warteschlangen und Weiterleiten von E/A-Anforderungen.

Beispiele

Im folgenden Codebeispiel wird der aufrufende Treiber als Filtertreiber für das angegebene Gerät identifiziert.

WdfFdoInitSetFilter(DeviceInit);

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Kopfzeile wdffdo.h (einschließen von Wdf.h)
Bibliothek Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
DDI-Complianceregeln DeviceInitAPI(kmdf), DriverCreate(kmdf), DrvAckIoStop(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Weitere Informationen

WDFDEVICE_INIT