Share via


FLT_PARAMETERS para IRP_MJ_DIRECTORY_CONTROL unión

Componente de unión usado cuando se IRP_MJ_DIRECTORY_CONTROL el campo MajorFunction de la estructura de FLT_IO_PARAMETER_BLOCK para la operación.

Sintaxis

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;

Miembros

  • DirectoryControl: estructura que contiene los miembros siguientes.

  • QueryDirectory: componente de unión usado para las operaciones de IRP_MN_QUERY_DIRECTORY.

  • Longitud: longitud, en bytes, del búfer al que apunta el miembro QueryDirectory.DirectoryBuffer .

  • FileName: puntero a una estructura UNICODE_STRING que contiene el nombre de un archivo dentro del directorio especificado.

  • FileInformationClass: especifica uno de los valores que se describen a continuación.

    Valor Significado
    FileBothDirectoryInformation Devuelve una estructura de FILE_BOTH_DIR_INFORMATION para cada archivo.
    FileDirectoryInformation Devuelve una estructura de FILE_DIRECTORY_INFORMATION para cada archivo.
    FileFullDirectoryInformation Devuelve una estructura de FILE_FULL_DIR_INFORMATION para cada archivo.
    FileIdBothDirectoryInformation Devuelve una estructura FILE_ID_BOTH_DIR_INFORMATION para cada archivo.
    FileIdFullDirectoryInformation Devuelve una estructura de FILE_ID_FULL_DIR_INFORMATION para cada archivo.
    FileNamesInformation Devuelve una estructura de FILE_NAMES_INFORMATION para cada archivo.
    FileObjectIdInformation Devuelve una estructura de FILE_OBJECTID_INFORMATION para cada archivo.
    FileReparsePointInformation Devuelve una única estructura de FILE_REPARSE_POINT_INFORMATION para el directorio.
  • FileIndex: índice del archivo donde comienza el examen del directorio. Se omite si no se establece la marca de SL_INDEX_SPECIFIED. Este parámetro no se puede especificar en ninguna rutina de compatibilidad con la función Win32 o el modo kernel. Actualmente solo lo usa la máquina VIRTUAL DOS nt (NTVDM), que solo existe en sistemas operativos basados en NT de 32 bits. Tenga en cuenta que el índice de archivos no está definido para los sistemas de archivos, como NTFS, en el que la posición de un archivo dentro del directorio primario no es fija y se puede cambiar en cualquier momento para mantener el criterio de ordenación.

  • DirectoryBuffer: puntero a un búfer de salida proporcionado por el autor de la llamada que recibe la información solicitada sobre el contenido del directorio. Este miembro es opcional y puede ser NULL si se proporciona una MDL en QueryDirectory.MdlAddress. Vea Comentarios.

  • MdlAddress: dirección de una lista de descriptores de memoria (MDL) que describe el búfer al que apunta el miembro QueryDirectory.DirectoryBuffer . Este miembro es opcional y puede ser NULL si se proporciona un búfer en QueryDirectory.DirectoryBuffer. Vea Comentarios.

  • NotifyDirectory: componente de unión usado para las operaciones de IRP_MN_NOTIFY_CHANGE_DIRECTORY.

  • Longitud: longitud, en bytes, del búfer al que apunta el miembro NotifyDirectory.DirectoryBuffer .

  • CompletionFilter: máscara de bits de marcas que especifican los tipos de cambios en archivos o directorios que deben hacer que se completen los IRP de la lista de notificaciones. Los posibles valores de marca se describen a continuación.

    Marca Significado
    FILE_NOTIFY_CHANGE_FILE_NAME Se ha agregado, eliminado o cambiado el nombre de un archivo en este directorio.
    FILE_NOTIFY_CHANGE_DIR_NAME Se ha creado, quitado o cambiado el nombre de un subdirectorio.
    FILE_NOTIFY_CHANGE_NAME El nombre de este directorio ha cambiado.
    FILE_NOTIFY_CHANGE_ATTRIBUTES El valor de un atributo de este archivo, como la hora de último acceso, ha cambiado.
    FILE_NOTIFY_CHANGE_SIZE El tamaño de este archivo ha cambiado.
    FILE_NOTIFY_CHANGE_LAST_WRITE La hora de la última modificación de este archivo ha cambiado.
    FILE_NOTIFY_CHANGE_LAST_ACCESS La hora de último acceso de este archivo ha cambiado.
    FILE_NOTIFY_CHANGE_CREATION La hora de creación de este archivo ha cambiado.
    FILE_NOTIFY_CHANGE_EA Se han modificado los atributos extendidos de este archivo.
    FILE_NOTIFY_CHANGE_SECURITY La información de seguridad de este archivo ha cambiado.
    FILE_NOTIFY_CHANGE_STREAM_NAME Se ha agregado, eliminado o cambiado el nombre de una secuencia de archivos en este directorio.
    FILE_NOTIFY_CHANGE_STREAM_SIZE El tamaño de esta secuencia de archivos ha cambiado.
    FILE_NOTIFY_CHANGE_STREAM_WRITE Los datos de esta secuencia de archivos han cambiado.
  • Spare1: No se usa actualmente.

  • Spare2: No se usa actualmente.

  • DirectoryBuffer: puntero a un búfer de salida proporcionado por el autor de la llamada que recibe la información solicitada sobre el contenido del directorio. Este miembro es opcional y puede ser NULL si se proporciona una MDL en NotifyDirectory.MdlAddress. Vea Comentarios.

  • MdlAddress: dirección de una MDL que describe el búfer al que apunta el miembro NotifyDirectory.DirectoryBuffer . Este miembro es opcional y puede ser NULL si se proporciona un búfer en NotifyDirectory.DirectoryBuffer. Vea Comentarios.

Comentarios

La estructura FLT_PARAMETERS para las operaciones de IRP_MJ_DIRECTORY_CONTROL contiene los parámetros de una operación de información de control de directorio basada en IRP representada por una estructura de datos de devolución de llamada (FLT_CALLBACK_DATA). Se encuentra en una estructura FLT_IO_PARAMETER_BLOCK.

Si se proporciona un búfer de DirectoryBuffer y MdlAddress , se recomienda que los minifiltros usen mdl. La memoria a la que apunta DirectoryBuffer es válida cuando se accede a una dirección en modo de usuario dentro del contexto del proceso de llamada o si es una dirección del modo kernel.

Si un minifiltro cambia el valor de MdlAddress, después de su devolución de llamada posterior a la operación, el Administrador de filtros liberará el MDL almacenado actualmente en MdlAddress y restaurará el valor anterior de MdlAddress.

IRP_MJ_DIRECTORY_CONTROL es una operación basada en IRP.

Requisitos

Tipo de requisito Requisito
Encabezado Fltkernel.h (incluya Fltkernel.h)

Consulte también

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