Поделиться через


Функция WdfFileObjectGetFileName (wdffileobject.h)

[Применимо к KMDF и UMDF]

Метод WdfFileObjectGetFileName возвращает имя файла, которое содержит указанный объект файла платформы.

Синтаксис

PUNICODE_STRING WdfFileObjectGetFileName(
  [in] WDFFILEOBJECT FileObject
);

Параметры

[in] FileObject

Дескриптор объекта файла платформы.

Возвращаемое значение

WdfFileObjectGetFileName возвращает указатель на структуру UNICODE_STRING, содержащую имя файла. Метод возвращает null, если для указанного объекта файла платформы отсутствует объект WDM или вызывается в IRQL выше PASSIVE_LEVEL.

Ошибка возникает, если драйвер предоставляет недопустимый дескриптор объекта.

Замечания

Если драйвер указал ссылку при вызове WdfDeviceCreateDeviceInterface, WdfFileObjectGetName возвращает строку ссылки, предустановленную обратной косой чертой. Чтобы определить строку ссылки, удалите обратную косую черту.

Возвращаемая строка может содержать имя файла или ссылку. Строка не содержит имя устройства. Если компонент приложения или компонента режима ядра открыл устройство вместо файла без ссылочной строки, элемент Length возвращаемой структуры UNICODE_STRING равен нулю.

Драйвер должен вызывать только WdfFileObjectGetFileName при обработке запроса на создание файла (тип запроса WdfRequestTypeCreate). Драйвер может обрабатывать WdfRequestTypeCreate-typed ввода-вывода в функции обратного вызова EvtDeviceFileCreate обратного вызова.

Или вместо предоставления функции обратного вызова EvtDeviceFileCreate драйвер может вызывать WdfDeviceConfigureRequestDispatching, чтобы задать очередь ввода-вывода для получения всех запросов на создание файлов (тип запроса WdfRequestTypeCreate). Впоследствии драйвер получит запросы на создание файла в обработчике запросов очереди EvtIoDefault.

Дополнительные сведения об объектах файлов платформы см. в разделе Framework File Objects.

Дополнительные сведения о именах файлов см. в управлении доступом к пространству имен устройств.

Дополнительные сведения о ссылочных строках см. в разделе IoRegisterDeviceInterface.

Примеры

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

VOID
MyEvtDeviceFileCreate (
    IN WDFDEVICE  Device,
    IN WDFREQUEST  Request,
    IN WDFFILEOBJECT  FileObject
    )
{
    PUNICODE_STRING  fileName;

    fileName = WdfFileObjectGetFileName(FileObject);
...

}

Требования

Требование Ценность
целевая платформа универсальный
минимальная версия KMDF 1.0
минимальная версия UMDF 2.0
Заголовок wdffileobject.h (include Wdf.h)
Библиотека Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
правил соответствия DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

См. также

UNICODE_STRING

WdfDeviceCreateDeviceInterface