Freigeben über


PFLT_NORMALIZE_NAME_COMPONENT Rückruffunktion (fltkernel.h)

Ein Minifiltertreiber, der Dateinamen für den Namenscache des Filter-Managers bereitstellt, kann eine Routine vom Typ PFLT_NORMALIZE_NAME_COMPONENT als NormalizeNameComponentCallback-Routine des Minifiltertreibers registrieren.

Syntax

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
)
{...}

Parameter

[in] Instance

Undurchsichtiger Instanzzeiger für die Minifiltertreiberinstanz, für die diese Rückrufroutine registriert ist.

[in] ParentDirectory

Zeigen Sie auf eine UNICODE_STRING Struktur, die den Namen des übergeordneten Verzeichnisses für diese Namenskomponente enthält.

[in] VolumeNameLength

Länge des in Bytes gespeicherten übergeordneten Verzeichnisnamens in der Struktur, auf die der ParentDirectory Parameter verweist.

[in] Component

Zeigen Sie auf eine UNICODE_STRING Struktur, die die zu erweiternde Namenskomponente enthält.

[out] ExpandComponentName

Zeigen Sie auf eine FILE_NAMES_INFORMATION Struktur, die die erweiterten (normalisierten) Dateinameninformationen für die Namenskomponente empfängt.

[in] ExpandComponentNameLength

Länge des Puffers, auf den der ExpandComponentName Parameter verweist.

[in] Flags

Namensnormalisierungskennzeichnungen. FLTFL_NORMALIZE_NAME_CASE_SENSITIVE gibt an, dass bei dem zu normalisierenden Namen die Groß-/Kleinschreibung beachtet wird. FLTFL_NORMALIZE_NAME_DESTINATION_FILE_NAME gibt an, dass die Rückrufroutine aufgerufen wurde, um einen FltGetDestinationFileNameInformation Routineaufruf zu verarbeiten.

[in, out] NormalizationContext

Zeiger auf vom Minifilter treiber bereitgestellte Kontextinformationen, die in nachfolgenden Aufrufen dieser Rückrufroutine übergeben werden sollen, die ausgeführt werden, um die verbleibenden Komponenten im selben Dateinamenpfad zu normalisieren.

Rückgabewert

Diese Rückrufroutine gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert zurück. Wenn die Namenskomponente, die der parameter Component angibt, nicht im übergeordneten Verzeichnis vorhanden ist, das der parameter ParentDirectory angibt, sollte diese Rückrufroutine STATUS_NO_SUCH_FILE zurückgeben. Wenn diese Rückrufroutine eine IRP_MN_QUERY_DIRECTORY-Anforderung (FileNamesInformation) an das übergeordnete Verzeichnis ausgibt, gibt das Dateisystem den richtigen Statuscode zurück. In diesem Fall kann dieser Rückruf einfach den Statuscode zurückgeben, den das Dateisystem zurückgibt.

Bemerkungen

Ein Minifiltertreiber, der Dateinamen für den Namenscache des Filter-Managers bereitstellt, kann eine Routine vom Typ PFLT_NORMALIZE_NAME_COMPONENT als NormalizeNameComponentCallback-Routine des Minifiltertreibers registrieren.

Um diese Rückrufroutine zu registrieren, speichert der Minifiltertreiber die Adresse einer Routine vom Typ PFLT_NORMALIZE_NAME_COMPONENT im NormalizeNameComponentCallback Member der FLT_REGISTRATION Struktur, die der Minifiltertreiber als Parameter an FltRegisterFilterübergibt.

Der Filter-Manager ruft diese Rückrufroutine auf, um den Minifiltertreiber nach den normalisierten Namen für Komponenten im Dateinamenpfad abzufragen, deren Namen der Minifiltertreiber geändert wurde. Wenn der Dateinamepfad mehr als eine solche Komponente enthält, kann der Filter-Manager diese Rückrufroutine mehrmals im Prozess der Normalisierung aller Komponenten im Pfad aufrufen. Der Minifiltertreiber kann den NormalizationContext Parameter verwenden, um Kontextinformationen an nachfolgende Aufrufe dieser Rückrufroutine zu übergeben.

Wenn der Minifiltertreiber den NormalizationContext Parameter verwendet, sollte er auch eine Normalisierungskontextbereinigungsroutine registrieren. Weitere Informationen finden Sie im Referenzeintrag für PFLT_NORMALIZE_CONTEXT_CLEANUP.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- fltkernel.h (include Fltkernel.h)
IRQL- PASSIVE_LEVEL

Siehe auch

FILE_NAMES_INFORMATION

FLT_REGISTRATION

FltRegisterFilter-

PFLT_GENERATE_FILE_NAME

PFLT_NORMALIZE_CONTEXT_CLEANUP

PFLT_NORMALIZE_NAME_COMPONENT_EX

UNICODE_STRING