Bagikan melalui


PFLT_NORMALIZE_NAME_COMPONENT fungsi panggilan balik (fltkernel.h)

Driver minifilter yang menyediakan nama file untuk cache nama manajer filter dapat mendaftarkan rutinitas jenis PFLT_NORMALIZE_NAME_COMPONENT sebagai rutinitas NormalizeNameComponentCallback driver minifilter.

Sintaks

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

Penunjuk instans buram untuk instans driver minifilter tempat rutinitas panggilan balik ini didaftarkan.

[in] ParentDirectory

Penunjuk ke struktur UNICODE_STRING yang berisi nama direktori induk untuk komponen nama ini.

[in] VolumeNameLength

Panjang, dalam byte, dari nama direktori induk yang disimpan dalam struktur yang dirujuk oleh parameter ParentDirectory .

[in] Component

Penunjuk ke struktur UNICODE_STRING yang berisi komponen nama yang akan diperluas.

[out] ExpandComponentName

Penunjuk ke struktur FILE_NAMES_INFORMATION yang menerima informasi nama file yang diperluas (dinormalisasi) untuk komponen nama.

[in] ExpandComponentNameLength

Panjang, dalam byte, dari buffer yang dirujuk oleh parameter ExpandComponentName .

[in] Flags

Bendera normalisasi nama. FLTFL_NORMALIZE_NAME_CASE_SENSITIVE menentukan bahwa nama yang akan dinormalisasi peka huruf besar/kecil. FLTFL_NORMALIZE_NAME_DESTINATION_FILE_NAME menentukan bahwa rutinitas panggilan balik telah dipanggil untuk melayani panggilan rutin FltGetDestinationFileNameInformation .

[in, out] NormalizationContext

Arahkan ke informasi konteks yang disediakan driver minifilter untuk diteruskan dalam panggilan berikutnya ke rutinitas panggilan balik ini yang dibuat untuk menormalkan komponen yang tersisa dalam jalur nama file yang sama.

Nilai kembali

Rutinitas panggilan balik ini mengembalikan nilai STATUS_SUCCESS atau NTSTATUS yang sesuai. Jika komponen nama yang ditentukan parameter Komponen tidak ada di direktori induk yang ditentukan parameter ParentDirectory , rutinitas panggilan balik ini harus mengembalikan STATUS_NO_SUCH_FILE. Jika rutinitas panggilan balik ini mengeluarkan permintaan IRP_MN_QUERY_DIRECTORY (FileNamesInformation) ke direktori induk, sistem file mengembalikan kode status yang benar. Dalam situasi ini, panggilan balik ini cukup mengembalikan kode status yang dikembalikan sistem file.

Keterangan

Driver minifilter yang menyediakan nama file untuk cache nama manajer filter dapat mendaftarkan rutinitas jenis PFLT_NORMALIZE_NAME_COMPONENT sebagai rutinitas NormalizeNameComponentCallback driver minifilter.

Untuk mendaftarkan rutinitas panggilan balik ini, driver minifilter menyimpan alamat rutinitas jenis PFLT_NORMALIZE_NAME_COMPONENT di anggota NormalizeNameComponentCallback dari struktur FLT_REGISTRATION yang diteruskan driver minifilter sebagai parameter ke FltRegisterFilter.

Manajer filter memanggil rutinitas panggilan balik ini untuk mengkueri driver minifilter untuk nama yang dinormalisasi untuk komponen di jalur nama file yang namanya telah dimodifikasi oleh driver minifilter. Jika jalur nama file berisi lebih dari satu komponen tersebut, manajer filter dapat memanggil rutinitas panggilan balik ini beberapa kali dalam proses menormalkan semua komponen di jalur. Driver minifilter dapat menggunakan parameter NormalizationContext untuk meneruskan informasi konteks ke panggilan berikutnya ke rutinitas panggilan balik ini.

Jika driver minifilter menggunakan parameter NormalizationContext , driver tersebut juga harus mendaftarkan rutinitas panggilan balik pembersihan konteks normalisasi. Untuk informasi selengkapnya, lihat entri referensi untuk PFLT_NORMALIZE_CONTEXT_CLEANUP.

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header fltkernel.h (termasuk Fltkernel.h)
IRQL PASSIVE_LEVEL

Lihat juga

FILE_NAMES_INFORMATION

FLT_REGISTRATION

FltRegisterFilter

PFLT_GENERATE_FILE_NAME

PFLT_NORMALIZE_CONTEXT_CLEANUP

PFLT_NORMALIZE_NAME_COMPONENT_EX

UNICODE_STRING