Compartilhar via


Função WdfFileObjectGetFileName (wdffileobject.h)

[Aplica-se a KMDF e UMDF]

O método WdfFileObjectGetFileName retorna o nome de arquivo que um objeto de arquivo de estrutura especificado contém.

Sintaxe

PUNICODE_STRING WdfFileObjectGetFileName(
  [in] WDFFILEOBJECT FileObject
);

Parâmetros

[in] FileObject

Um identificador para um objeto de arquivo de estrutura.

Retornar valor

WdfFileObjectGetFileName retorna um ponteiro para uma estrutura UNICODE_STRING que contém o nome do arquivo. O método retornará NULL se não houver nenhum objeto de arquivo WDM para o objeto de arquivo de estrutura especificado ou se for chamado em um IRQL maior que PASSIVE_LEVEL.

Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.

Comentários

Se um driver especificou uma cadeia de caracteres de referência quando chamou WdfDeviceCreateDeviceInterface, WdfFileObjectGetFileName retornará a cadeia de caracteres de referência precedida por uma barra invertida. Para determinar a cadeia de caracteres de referência, remova a barra invertida.

A cadeia de caracteres retornada pode conter um nome de arquivo ou uma cadeia de caracteres de referência. A cadeia de caracteres não contém o nome do dispositivo. Se um aplicativo ou componente do modo kernel tiver aberto o dispositivo em vez de um arquivo, sem nenhuma cadeia de caracteres de referência, o membro Length da estrutura de UNICODE_STRING retornada será zero.

Seu driver só deve chamar WdfFileObjectGetFileName enquanto estiver processando uma solicitação de criação de arquivo (tipo de solicitação WdfRequestTypeCreate ). Seu driver pode processar solicitações de E/S do tipo WdfRequestTypeCreate em uma função de retorno de chamada EvtDeviceFileCreate .

Ou, em vez de fornecer uma função de retorno de chamada EvtDeviceFileCreate , o driver pode chamar WdfDeviceConfigureRequestDispatching para definir uma fila de E/S para receber todas as solicitações de criação de arquivo (tipo de solicitação WdfRequestTypeCreate ). O driver receberá posteriormente solicitações de criação de arquivo no manipulador de solicitações EvtIoDefault da fila.

Para obter mais informações sobre objetos de arquivo de estrutura, consulte Objetos de arquivo de estrutura.

Para obter mais informações sobre nomes de arquivo, consulte Controlando o acesso ao namespace do dispositivo.

Para obter mais informações sobre cadeias de caracteres de referência, consulte IoRegisterDeviceInterface.

Exemplos

O exemplo de código a seguir mostra como uma função de retorno de chamada EvtDeviceFileCreate pode obter o nome do arquivo que um aplicativo abriu.

VOID
MyEvtDeviceFileCreate (
    IN WDFDEVICE  Device,
    IN WDFREQUEST  Request,
    IN WDFFILEOBJECT  FileObject
    )
{
    PUNICODE_STRING  fileName;

    fileName = WdfFileObjectGetFileName(FileObject);
...

}

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 wdffileobject.h (include Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
Regras de conformidade da DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Confira também

UNICODE_STRING

WdfDeviceCreateDeviceInterface