Función WdfFileObjectGetFileName (wdffileobject.h)
[Se aplica a KMDF y UMDF]
El método WdfFileObjectGetFileName devuelve el nombre de archivo que contiene un objeto de archivo de marco especificado.
Sintaxis
PUNICODE_STRING WdfFileObjectGetFileName(
[in] WDFFILEOBJECT FileObject
);
Parámetros
[in] FileObject
Identificador de un objeto de archivo de marco.
Valor devuelto
WdfFileObjectGetFileName devuelve un puntero a una estructura de UNICODE_STRING que contiene el nombre de archivo. El método devuelve NULL si no hay ningún objeto de archivo WDM para el objeto de archivo de marco especificado o si se llama a en un IRQL superior a PASSIVE_LEVEL.
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Comentarios
Si un controlador especificó una cadena de referencia cuando llamó a WdfDeviceCreateDeviceInterface, WdfFileObjectGetFileName devuelve la cadena de referencia antepuesta por una barra diagonal inversa. Para determinar la cadena de referencia, quite la barra diagonal inversa.
La cadena devuelta puede contener un nombre de archivo o una cadena de referencia. La cadena no contiene el nombre del dispositivo. Si una aplicación o un componente en modo kernel ha abierto el dispositivo en lugar de un archivo, sin ninguna cadena de referencia, el miembro Length de la estructura de UNICODE_STRING devuelta es cero.
El controlador solo debe llamar a WdfFileObjectGetFileName mientras procesa una solicitud de creación de archivos (tipo de solicitud WdfRequestTypeCreate ). El controlador puede procesar solicitudes de E/S con tipo WdfRequestTypeCreate en una función de devolución de llamada EvtDeviceFileCreate .
O bien, en lugar de proporcionar una función de devolución de llamada EvtDeviceFileCreate , el controlador puede llamar a WdfDeviceConfigureRequestDispatching para establecer una cola de E/S para recibir todas las solicitudes de creación de archivos (tipo de solicitud WdfRequestTypeCreate ). Posteriormente, el controlador recibirá solicitudes de creación de archivos en el controlador de solicitudes EvtIoDefault de la cola.
Para obtener más información sobre los objetos de archivo de marco, vea Objetos de archivo de marco.
Para obtener más información sobre los nombres de archivo, vea Controlar el acceso al espacio de nombres del dispositivo.
Para obtener más información sobre las cadenas de referencia, consulte IoRegisterDeviceInterface.
Ejemplos
En el ejemplo de código siguiente se muestra cómo una función de devolución de llamada EvtDeviceFileCreate puede obtener el nombre del archivo que ha abierto una aplicación.
VOID
MyEvtDeviceFileCreate (
IN WDFDEVICE Device,
IN WDFREQUEST Request,
IN WDFFILEOBJECT FileObject
)
{
PUNICODE_STRING fileName;
fileName = WdfFileObjectGetFileName(FileObject);
...
}
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdffileobject.h (incluir Wdf.h) |
Library | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Reglas de cumplimiento de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |