Compartir a través de


Función FsRtlRemovePerFileContext (ntifs.h)

La rutina FsRtlRemovePerFileContext devuelve un puntero a un objeto FSRTL_PER_FILE_CONTEXT asociado a un archivo. FsRtlRemovePerFileContext quita el objeto FSRTL_PER_FILE_CONTEXT de la lista que ocupa, junto con la información de contexto específica del controlador asociada.

Sintaxis

PFSRTL_PER_FILE_CONTEXT FsRtlRemovePerFileContext(
  [in]           PVOID *PerFileContextPointer,
  [in, optional] PVOID OwnerId,
  [in, optional] PVOID InstanceId
);

Parámetros

[in] PerFileContextPointer

Puntero a un puntero opaco que usa el paquete de biblioteca en tiempo de ejecución del sistema de archivos (FSRTL) para realizar un seguimiento de los contextos de archivo. Para obtener este puntero de un objeto de archivo, use la macro FsRtlGetPerFileContextPointer .

[in, optional] OwnerId

Puntero a una variable asignada por el controlador de filtro que identifica de forma única el propietario de la estructura de contexto por archivo. Este parámetro es opcional, pero debe ser distinto de NULL si InstanceId no es NULL.

[in, optional] InstanceId

Puntero a una variable asignada por el controlador de filtro que se puede usar para distinguir entre las estructuras de contexto por archivo creadas por el mismo controlador de filtro. Este parámetro es opcional.

Valor devuelto

Puntero al primer FSRTL_PER_FILE_CONTEXT que coincide con OwnerId e InstanceId, si se especifica. Si no se encuentra ninguna coincidencia o si el sistema no admite información de contexto de archivo, esta rutina devuelve NULL.

Comentarios

FsRtlRemovePerFileContext quita solo la primera estructura de contexto por archivo coincidente que encuentra. Si hay contextos por archivo coincidentes adicionales, el controlador de filtro debe llamar a FsRtlRemovePerFileContext tantas veces como sea necesario para quitarlos todos.

El controlador de filtro del sistema de archivos debe liberar la memoria que se usa para esta información de contexto después de quitar el FSRTL_PER_FILE_CONTEXT .

Use esta rutina para que los controladores quiten contextos solo cuando el controlador debe descartar la información de contexto por archivo mientras el archivo sigue abierto. Los contextos se quitan cuando se cierra un archivo mediante FsRtlTeardownPerFileContexts.

No uses esta rutina dentro de tu rutina FreeCallback . El sistema de archivos quita contextos de la lista antes de llamar a esa rutina.

No use esta rutina dentro del controlador de IRP_CLOSE. No se le notificará cuando se descomponga la secuencia.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Plataforma de destino Universal
Encabezado ntifs.h (incluya FltKernel.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <=APC_LEVEL

Consulte también

FSRTL_PER_FILE_CONTEXT

FsRtlGetPerFileContextPointer

FsRtlInsertPerFileContext

FsRtlLookupPerFileContext

Seguimiento del contexto de Per-File en un controlador de filtro del sistema de archivos heredado