Função WdfRequestGetFileObject (wdfrequest.h)
[Aplica-se a KMDF e UMDF]
O método WdfRequestGetFileObject recupera o objeto de arquivo de estrutura associado a uma solicitação de E/S especificada.
Sintaxe
WDFFILEOBJECT WdfRequestGetFileObject(
[in] WDFREQUEST Request
);
Parâmetros
[in] Request
Um identificador para um objeto de solicitação de estrutura.
Retornar valor
WdfRequestGetFileObject retornará um identificador para o objeto de arquivo de estrutura, se a estrutura tiver criado um objeto de arquivo para a solicitação especificada. Caso contrário, esse método retornará NULL. (Normalmente, um driver testa um valor retornado NULL somente se ele define o sinalizador de bit WdfFileObjectCanBeOptional na estrutura WDF_FILEOBJECT_CONFIG .)
Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.
Comentários
O método WdfRequestGetFileObject retornará NULL se:
- Seu driver não chamou WdfDeviceInitSetFileObjectConfig e especificou um valor WDF_FILEOBJECT_CLASS que faz com que a estrutura crie objetos de arquivo.
- Outro driver enviou uma solicitação de controle de leitura, gravação ou E/S para o driver sem primeiro enviar um tipo de solicitação WdfRequestTypeCreate.
Exemplos
O exemplo de código a seguir obtém um objeto de arquivo de solicitação de E/S e, em seguida, chama uma rotina definida pelo driver que obtém um ponteiro para o espaço de contexto do objeto de arquivo.
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 | Valor |
---|---|
Plataforma de Destino | Universal |
Versão mínima do KMDF | 1.0 |
Versão mínima do UMDF | 2,0 |
Cabeçalho | wdfrequest.h (inclua Wdf.h) |
Biblioteca | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Regras de conformidade de DDI | DriverCreate(kmdf), FileObjectConfigured(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |