Функция WdfDeviceGetFileObject (wdfdevice.h)
[Применимо только к KMDF]
Метод WdfDeviceGetFileObject возвращает дескриптор объекту файла платформы, связанному с указанным объектом WDM-файла.
Синтаксис
WDFFILEOBJECT WdfDeviceGetFileObject(
[in] WDFDEVICE Device,
[in] PFILE_OBJECT FileObject
);
Параметры
[in] Device
Дескриптор объекта устройства платформы.
[in] FileObject
Указатель на структуру WDM FILE_OBJECT.
Возвращаемое значение
WdfDeviceGetFileObject возвращает дескриптор объекта файла платформы, связанный с указанным объектом файла WDM. Если объект файла платформы не был создан для файла или если указатель fileObject недействителен, метод возвращает NULL.
Ошибка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Замечания
Дополнительные сведения об объектах файлов платформы см. в разделе Framework File Objects.
Примеры
Следующий пример кода получает указатель на именованный объект устройства WDM и соответствующий объект WDM-файла, если запрашиваемый доступ к объектам можно предоставить. Затем в примере получается дескриптор объекта файла платформы, связанный с объектом WDM-файла.
PFILE_OBJECT pWdmFileObject = NULL;
PDEVICE_OBJECT pWdmDeviceObject = NULL;
WDFFILEOBJECT fileObject = NULL;
NTSTATUS status = STATUS_SUCCESS;
BOOLEAN success = TRUE;
status = IoGetDeviceObjectPointer(
&inputFileName, // File name
FILE_ALL_ACCESS, // Access mask
&pWdmFileObject, // Output pointer of WDM file object
&pWdmDeviceObject // Output pointer of WDM device object
);
if(!NT_SUCCESS(status)){
success = FALSE;
break;
}
fileObject = WdfDeviceGetFileObject(
gDeviceObject, // Handle to device object
pWdmFileObject // Handle to WDM file object
);
if(fileObject == NULL){
success = FALSE;
}
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
минимальная версия KMDF | 1.0 |
заголовка | wdfdevice.h (include Wdf.h) |
библиотеки | Wdf01000.sys (см. управление версиями библиотеки Платформы).) |
IRQL | <= DISPATCH_LEVEL |
правил соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |