Bagikan melalui


FLT_PARAMETERS untuk serikat IRP_MJ_DIRECTORY_CONTROL

Komponen union yang digunakan ketika bidang MajorFunction dari struktur FLT_IO_PARAMETER_BLOCK untuk operasi IRP_MJ_DIRECTORY_CONTROL.

Sintaks

typedef union _FLT_PARAMETERS {
  ...   ;
  union {
    struct {
      ULONG                   Length;
      PUNICODE_STRING         FileName;
      FILE_INFORMATION_CLASS  FileInformationClass;
      ULONG POINTER_ALIGNMENT FileIndex;
      PVOID                   DirectoryBuffer;
      PMDL                    MdlAddress;
    } QueryDirectory;
    struct {
      ULONG                   Length;
      ULONG POINTER_ALIGNMENT CompletionFilter;
      ULONG                   Spare1;
      ULONG POINTER_ALIGNMENT Spare2;
      PVOID                   DirectoryBuffer;
      PMDL                    MdlAddress;
    } NotifyDirectory;
  } DirectoryControl;
  ...   ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;

Anggota

  • DirectoryControl: Struktur yang berisi anggota berikut.

  • QueryDirectory: Komponen gabungan yang digunakan untuk operasi IRP_MN_QUERY_DIRECTORY.

  • Panjang: Panjang, dalam byte, dari buffer yang dirujuk anggota QueryDirectory.DirectoryBuffer .

  • FileName: Pointer ke struktur UNICODE_STRING yang berisi nama file dalam direktori yang ditentukan.

  • FileInformationClass: Menentukan salah satu nilai yang dijelaskan di bawah ini.

    Nilai Makna
    FileBothDirectoryInformation Mengembalikan struktur FILE_BOTH_DIR_INFORMATION untuk setiap file.
    FileDirectoryInformation Mengembalikan struktur FILE_DIRECTORY_INFORMATION untuk setiap file.
    FileFullDirectoryInformation Mengembalikan struktur FILE_FULL_DIR_INFORMATION untuk setiap file.
    FileIdBothDirectoryInformation Mengembalikan struktur FILE_ID_BOTH_DIR_INFORMATION untuk setiap file.
    FileIdFullDirectoryInformation Mengembalikan struktur FILE_ID_FULL_DIR_INFORMATION untuk setiap file.
    FileNamesInformation Mengembalikan struktur FILE_NAMES_INFORMATION untuk setiap file.
    FileObjectIdInformation Mengembalikan struktur FILE_OBJECTID_INFORMATION untuk setiap file.
    FileReparsePointInformation Mengembalikan struktur FILE_REPARSE_POINT_INFORMATION tunggal untuk direktori.
  • FileIndex: Indeks file tempat pemindaian direktori dimulai. Diabaikan jika bendera SL_INDEX_SPECIFIED tidak diatur. Parameter ini tidak dapat ditentukan dalam fungsi Win32 atau rutinitas dukungan mode kernel. Saat ini hanya digunakan oleh mesin DOS virtual NT (NTVDM), yang hanya ada pada sistem operasi berbasis NT 32-bit. Perhatikan bahwa indeks file tidak terdefinisi untuk sistem file, seperti NTFS, di mana posisi file dalam direktori induk tidak diperbaiki dan dapat diubah kapan saja untuk mempertahankan urutan pengurutan.

  • DirectoryBuffer: Penunjuk ke buffer output yang disediakan penelepon yang menerima informasi yang diminta tentang konten direktori. Anggota ini bersifat opsional dan dapat berupa NULL jika MDL disediakan di QueryDirectory.MdlAddress. Lihat Keterangan.

  • MdlAddress: Alamat daftar deskriptor memori (MDL) yang menjelaskan buffer yang ditunjuk oleh anggota QueryDirectory.DirectoryBuffer . Anggota ini bersifat opsional dan dapat berupa NULL jika buffer disediakan di QueryDirectory.DirectoryBuffer. Lihat Keterangan.

  • NotifyDirectory: Komponen union yang digunakan untuk operasi IRP_MN_NOTIFY_CHANGE_DIRECTORY.

  • Panjang: Panjang, dalam byte, dari buffer yang dituju oleh anggota NotifyDirectory.DirectoryBuffer .

  • CompletionFilter: Bitmask bendera yang menentukan jenis perubahan pada file atau direktori yang akan menyebabkan RUNP dalam daftar pemberitahuan selesai. Nilai bendera yang mungkin dijelaskan berikut ini.

    Bendera Makna
    FILE_NOTIFY_CHANGE_FILE_NAME File telah ditambahkan, dihapus, atau diganti namanya dalam direktori ini.
    FILE_NOTIFY_CHANGE_DIR_NAME Subdirektori telah dibuat, dihapus, atau diganti namanya.
    FILE_NOTIFY_CHANGE_NAME Nama direktori ini telah berubah.
    FILE_NOTIFY_CHANGE_ATTRIBUTES Nilai atribut file ini, seperti waktu akses terakhir, telah berubah.
    FILE_NOTIFY_CHANGE_SIZE Ukuran file ini telah berubah.
    FILE_NOTIFY_CHANGE_LAST_WRITE Waktu modifikasi terakhir file ini telah berubah.
    FILE_NOTIFY_CHANGE_LAST_ACCESS Waktu akses terakhir file ini telah berubah.
    FILE_NOTIFY_CHANGE_CREATION Waktu pembuatan file ini telah berubah.
    FILE_NOTIFY_CHANGE_EA Atribut yang diperluas file ini telah dimodifikasi.
    FILE_NOTIFY_CHANGE_SECURITY Informasi keamanan file ini telah berubah.
    FILE_NOTIFY_CHANGE_STREAM_NAME Aliran file telah ditambahkan, dihapus, atau diganti namanya dalam direktori ini.
    FILE_NOTIFY_CHANGE_STREAM_SIZE Ukuran aliran file ini telah berubah.
    FILE_NOTIFY_CHANGE_STREAM_WRITE Data aliran file ini telah berubah.
  • Spare1: Saat ini tidak digunakan.

  • Spare2: Saat ini tidak digunakan.

  • DirectoryBuffer: Penunjuk ke buffer output yang disediakan penelepon yang menerima informasi yang diminta tentang konten direktori. Anggota ini bersifat opsional dan dapat berupa NULL jika MDL disediakan di NotifyDirectory.MdlAddress. Lihat Keterangan.

  • MdlAddress: Alamat MDL yang menjelaskan buffer yang dituju oleh anggota NotifyDirectory.DirectoryBuffer . Anggota ini bersifat opsional dan dapat berupa NULL jika buffer disediakan di NotifyDirectory.DirectoryBuffer. Lihat Keterangan.

Keterangan

Struktur FLT_PARAMETERS untuk operasi IRP_MJ_DIRECTORY_CONTROL berisi parameter untuk operasi informasi kontrol direktori berbasis IRP yang diwakili oleh struktur data panggilan balik (FLT_CALLBACK_DATA). Ini terkandung dalam struktur FLT_IO_PARAMETER_BLOCK.

Jika buffer DirectoryBuffer dan MdlAddress disediakan, disarankan agar minifilter menggunakan MDL. Memori yang diarahkan DirectoryBuffer valid ketika merupakan alamat mode pengguna yang diakses dalam konteks proses panggilan, atau jika itu adalah alamat mode kernel.

Jika minifilter mengubah nilai MdlAddress, maka setelah panggilan balik operasi pasca operasinya, Filter Manager akan membebaskan MDL yang saat ini disimpan di MdlAddress dan memulihkan nilai MdlAddress sebelumnya.

IRP_MJ_DIRECTORY_CONTROL adalah operasi berbasis IRP.

Persyaratan

Jenis persyaratan Persyaratan
Header Fltkernel.h (termasuk Fltkernel.h)

Lihat juga

FILE_BOTH_DIR_INFORMATION

FILE_DIRECTORY_INFORMATION

FILE_FULL_DIR_INFORMATION

FILE_ID_BOTH_DIR_INFORMATION

FILE_ID_FULL_DIR_INFORMATION

FILE_NAMES_INFORMATION

FILE_OBJECTID_INFORMATION

FILE_REPARSE_POINT_INFORMATION

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FLT_IS_FASTIO_OPERATION

FLT_IS_FS_FILTER_OPERATION

FLT_IS_IRP_OPERATION

FLT_PARAMETERS

FltNotifyFilterChangeDirectory

FsRtlNotifyFilterChangeDirectory

FsRtlNotifyFilterReportChange

FsRtlNotifyFullChangeDirectory

FsRtlNotifyFullReportChange

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile