Функция WdfFileObjectGetFileName (wdffileobject.h)
[Применимо к KMDF и UMDF]
Метод WdfFileObjectGetFileName возвращает имя файла, которое содержит указанный объект файла платформы.
Синтаксис
PUNICODE_STRING WdfFileObjectGetFileName(
[in] WDFFILEOBJECT FileObject
);
Параметры
[in] FileObject
Дескриптор объекта файла платформы.
Возвращаемое значение
WdfFileObjectGetFileName возвращает указатель на структуру UNICODE_STRING , содержащую имя файла. Метод возвращает значение NULL , если для указанного объекта файла платформы нет объекта файла WDM или если он вызывается в IRQL выше PASSIVE_LEVEL.
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Комментарии
Если драйвер указал ссылочные строки при вызове WdfDeviceCreateDeviceInterface, WdfFileObjectGetFileName возвращает ссылочной строки, перед которыми стоит обратная косая черта. Чтобы определить ссылочные строки, удалите обратную косую черту.
Возвращаемая строка может содержать имя файла или ссылочные строки. Строка не содержит имя устройства. Если приложение или компонент режима ядра открыл устройство вместо файла без ссылочной строки, элемент Length возвращаемой структуры UNICODE_STRING равен нулю.
Драйвер должен вызывать только WdfFileObjectGetFileName во время обработки запроса на создание файла (тип запроса WdfRequestTypeCreate ). Драйвер может обрабатывать запросы ввода-вывода типа WdfRequestTypeCreate в функции обратного вызова EvtDeviceFileCreate .
Или вместо предоставления функции обратного вызова EvtDeviceFileCreate драйвер может вызвать WdfDeviceConfigureRequestDispatching , чтобы настроить очередь ввода-вывода для получения всех запросов на создание файлов (тип запроса WdfRequestTypeCreate ). Впоследствии драйвер будет получать запросы на создание файлов в обработчике запросов EvtIoDefault очереди.
Дополнительные сведения об объектах файлов платформы см. в разделе Объекты файлов платформы.
Дополнительные сведения об именах файлов см. в разделе Управление доступом к пространству имен устройств.
Дополнительные сведения о ссылочных строках см. в разделе 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 (включая Wdf.h) |
Библиотека | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Правила соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |