WdfRequestGetFileObject-Funktion (wdfrequest.h)
[Gilt für KMDF und UMDF]
Die WdfRequestGetFileObject-Methode ruft das Frameworkdateiobjekt ab, das einer angegebenen E/A-Anforderung zugeordnet ist.
Syntax
WDFFILEOBJECT WdfRequestGetFileObject(
[in] WDFREQUEST Request
);
Parameter
[in] Request
Ein Handle für ein Frameworkanforderungsobjekt.
Rückgabewert
WdfRequestGetFileObject gibt ein Handle an das Frameworkdateiobjekt zurück, wenn das Framework ein Dateiobjekt für die angegebene Anforderung erstellt hat. Andernfalls gibt diese Methode NULL zurück. (Ein Treiber testet in der Regel nur dann auf einen NULL-Rückgabewert, wenn er das WdfFileObjectCanBeOptional-Bitflag in der WDF_FILEOBJECT_CONFIG-Struktur festlegt.)
Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.
Hinweise
Die WdfRequestGetFileObject-Methode gibt NULL zurück, wenn:
- Ihr Treiber hat WdfDeviceInitSetFileObjectConfig nicht aufgerufen und einen WDF_FILEOBJECT_CLASS Wert angegeben, der dazu führt, dass das Framework Dateiobjekte erstellt.
- Ein anderer Treiber hat eine Lese-, Schreib- oder E/A-Steuerelementanforderung an Ihren Treiber gesendet, ohne zuvor einen Anforderungstyp von WdfRequestTypeCreate zu senden.
Beispiele
Im folgenden Codebeispiel wird das Dateiobjekt einer E/A-Anforderung abgerufen und dann eine vom Treiber definierte Routine aufgerufen, die einen Zeiger auf den Kontextbereich des Dateiobjekts abruft.
VOID
MyEvtIoWrite(
IN WDFQUEUE Queue,
IN WDFREQUEST Request,
IN size_t Length
)
{
WDFFILEOBJECT fileObject;
PFILE_OPEN_CONTEXT pOpenContext;
fileObject = WdfRequestGetFileObject(Request);
pOpenContext = GetFileObjectContext(fileObject)->OpenContext;
}
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
UMDF-Mindestversion | 2.0 |
Kopfzeile | wdfrequest.h (einschließen von Wdf.h) |
Bibliothek | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
DDI-Complianceregeln | DriverCreate(kmdf), FileObjectConfigured(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |