Функция 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.
Дополнительные сведения о WdfRequestGetFileObject и объектах файлов платформы см. в разделе Объекты файлов платформы.

Примеры

В следующем примере кода получается объект файла запроса ввода-вывода, а затем вызывается определяемая драйвером подпрограмма, которая получает указатель на контекстное пространство объекта файла.

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)

См. также раздел

WDF_FILEOBJECT_CLASS

WdfDeviceInitSetFileObjectConfig