Функция WdfRequestGetFileObject (wdfrequest.h)
[Относится к KMDF и UMDF]
Метод WdfRequestGetFileObject извлекает объект файла платформы, связанный с указанным запросом ввода-вывода.
Синтаксис
WDFFILEOBJECT WdfRequestGetFileObject(
[in] WDFREQUEST Request
);
Параметры
[in] Request
Дескриптор объекта запроса платформы.
Возвращаемое значение
WdfRequestGetFileObject возвращает дескриптор объекту файла платформы, если платформа создала объект файла для указанного запроса. В противном случае этот метод возвращает значение NULL. (Драйвер обычно проверяет возвращаемое значение NULL только в том случае, если он устанавливает битовый флаг WdfFileObjectCanBeOptional в структуре WDF_FILEOBJECT_CONFIG .)
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Комментарии
Метод WdfRequestGetFileObject возвращает значение NULL , если:
- Драйвер не вызывал WdfDeviceInitSetFileObjectConfig и не указал значение WDF_FILEOBJECT_CLASS , которое заставляет платформу создавать файловые объекты.
- Другой драйвер отправил вашему драйверу запрос на чтение, запись или ввод-вывод, не отправляя тип запроса WdfRequestTypeCreate.
Примеры
В следующем примере кода получается объект файла запроса ввода-вывода, а затем вызывается определяемая драйвером подпрограмма, которая получает указатель на контекстное пространство объекта файла.
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;
}
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Минимальная версия UMDF | 2,0 |
Верхняя часть | wdfrequest.h (включая Wdf.h) |
Библиотека | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Правила соответствия DDI | DriverCreate(kmdf), FileObjectConfigured(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |