Función WdfRequestGetFileObject (wdfrequest.h)
[Se aplica a KMDF y UMDF]
El método WdfRequestGetFileObject recupera el objeto de archivo de marco asociado a una solicitud de E/S especificada.
Sintaxis
WDFFILEOBJECT WdfRequestGetFileObject(
[in] WDFREQUEST Request
);
Parámetros
[in] Request
Identificador de un objeto de solicitud de marco.
Valor devuelto
WdfRequestGetFileObject devuelve un identificador al objeto de archivo de marco, si el marco ha creado un objeto de archivo para la solicitud especificada. De lo contrario, este método devuelve NULL. (Normalmente, un controlador prueba un valor devuelto NULL solo si establece la marca de bits WdfFileObjectCanBeOptional en la estructura WDF_FILEOBJECT_CONFIG ).
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Comentarios
El método WdfRequestGetFileObject devuelve NULL si:
- El controlador no ha llamado a WdfDeviceInitSetFileObjectConfig y ha especificado un valor de WDF_FILEOBJECT_CLASS que hace que el marco cree objetos de archivo.
- Otro controlador envió una solicitud de control de lectura, escritura o E/S al controlador sin enviar primero un tipo de solicitud WdfRequestTypeCreate.
Ejemplos
En el ejemplo de código siguiente se obtiene el objeto de archivo de una solicitud de E/S y, a continuación, se llama a una rutina definida por el controlador que obtiene un puntero al espacio de contexto del objeto de archivo.
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;
}
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfrequest.h (incluya Wdf.h) |
Library | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Reglas de cumplimiento de DDI | DriverCreate(kmdf), FileObjectConfigured(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |