PFLT_NORMALIZE_NAME_COMPONENT funzione di callback (fltkernel.h)

Un driver minifilter che fornisce nomi di file per la cache dei nomi del gestore filtri può registrare una routine di tipo PFLT_NORMALIZE_NAME_COMPONENT come routine del driver minifilterComponentCallback .

Sintassi

PFLT_NORMALIZE_NAME_COMPONENT PfltNormalizeNameComponent;

NTSTATUS PfltNormalizeNameComponent(
  [in]      PFLT_INSTANCE Instance,
  [in]      PCUNICODE_STRING ParentDirectory,
  [in]      USHORT VolumeNameLength,
  [in]      PCUNICODE_STRING Component,
  [out]     PFILE_NAMES_INFORMATION ExpandComponentName,
  [in]      ULONG ExpandComponentNameLength,
  [in]      FLT_NORMALIZE_NAME_FLAGS Flags,
  [in, out] PVOID *NormalizationContext
)
{...}

Parametri

[in] Instance

Puntatore istanza opaca per l'istanza del driver minifilter per cui viene registrata questa routine di callback.

[in] ParentDirectory

Puntatore a una struttura UNICODE_STRING contenente il nome della directory padre per questo componente del nome.

[in] VolumeNameLength

Lunghezza, in byte, del nome della directory padre archiviata nella struttura a cui punta il parametro ParentDirectory .

[in] Component

Puntatore a una struttura UNICODE_STRING che contiene il componente nome da espandere.

[out] ExpandComponentName

Puntatore a una struttura FILE_NAMES_INFORMATION che riceve le informazioni sul nome file espanso (normalizzato) per il componente nome.

[in] ExpandComponentNameLength

Lunghezza, in byte, del buffer a cui punta il parametro ExpandComponentName .

[in] Flags

Contrassegni di normalizzazione dei nomi. FLTFL_NORMALIZE_NAME_CASE_SENSITIVE specifica che il nome da normalizzare è distinzione tra maiuscole e minuscole. FLTFL_NORMALIZE_NAME_DESTINATION_FILE_NAME specifica che la routine di callback è stata chiamata per il servizio di una chiamata di routine FltGetDestinationFileNameInformation .

[in, out] NormalizationContext

Puntatore a informazioni di contesto fornite dal driver minifilter da passare in tutte le chiamate successive a questa routine di callback effettuata per normalizzare i componenti rimanenti nello stesso percorso del nome file.

Valore restituito

Questa routine di callback restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato. Se il componente nome specificato dal parametro Component non esiste nella directory padre specificata dal parametro ParentDirectory , questa routine di callback deve restituire STATUS_NO_SUCH_FILE. Se questa routine di callback genera una richiesta di IRP_MN_QUERY_DIRECTORY (FileNamesInformation) alla directory padre, il file system restituisce il codice di stato corretto. In questa situazione, questo callback può semplicemente restituire il codice di stato restituito dal file system.

Commenti

Un driver minifilter che fornisce nomi di file per la cache dei nomi del gestore filtri può registrare una routine di tipo PFLT_NORMALIZE_NAME_COMPONENT come routine del driver minifilterComponentCallback .

Per registrare questa routine di callback, il driver minifilter archivia l'indirizzo di una routine di tipo PFLT_NORMALIZE_NAME_COMPONENT nel membro NormalNameComponentCallbackdella struttura FLT_REGISTRATION che il driver minifilter passa come parametro a FltRegisterFilter.

Gestione filtri chiama questa routine di callback per eseguire query sul driver minifilter per i nomi normalizzati per i componenti nel percorso del nome file i cui nomi del driver minifilter sono stati modificati. Se il percorso del nome file contiene più di un componente, la gestione filtri può chiamare la routine di callback più volte nel processo di normalizzazione di tutti i componenti nel percorso. Il driver minifilter può usare il parametro NormalizationContext per passare le informazioni di contesto alle chiamate successive a questa routine di callback.

Se il driver minifilter usa il parametro NormalizationContext , deve anche registrare una routine di callback del contesto di normalizzazione. Per altre informazioni, vedere la voce di riferimento per PFLT_NORMALIZE_CONTEXT_CLEANUP.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione fltkernel.h (includere Fltkernel.h)
IRQL PASSIVE_LEVEL

Vedi anche

FILE_NAMES_INFORMATION

FLT_REGISTRATION

FltRegisterFilter

PFLT_GENERATE_FILE_NAME

PFLT_NORMALIZE_CONTEXT_CLEANUP

PFLT_NORMALIZE_NAME_COMPONENT_EX

UNICODE_STRING