Función FsRtlEnterFileSystem

La macro FsRtlEnterFileSystem deshabilita temporalmente la entrega de llamadas de procedimiento asincrónico (APC) del modo kernel normal. Las API de modo kernel especiales se siguen entregando.

Sintaxis

VOID FsRtlEnterFileSystem(
   VOID
);

Parámetros

None

Valor devuelto

Esta función no devuelve un valor.

Comentarios

Cada rutina de punto de entrada del controlador del sistema de archivos debe llamar a FsRtlEnterFileSystem inmediatamente antes de adquirir un recurso necesario para realizar una solicitud de E/S de archivo y llamar a FsRtlExitFileSystem inmediatamente después. Esto garantiza que la rutina no se puede suspender mientras se ejecuta y, por tanto, bloquea otras solicitudes de E/S de archivos.

Cada llamada correcta a FsRtlEnterFileSystem debe coincidir con una llamada posterior a FsRtlExitFileSystem.

Los controladores de filtro del sistema de archivos pueden deshabilitar la entrega de las API de kernel normales llamando a FsRtlEnterFileSystem o KeEnterCriticalRegion antes de IoCallDriver solo si FsRtlExitFileSystem o KeLeaveCriticalRegion se encuentra en la misma rutina de envío. No deben llamar a FsRtlEnterFileSystem o KeEnterCriticalRegion antes de IoCallDriver y, a continuación, llamar a FsRtlExitFileSystem o KeLeaveCriticalRegion en la rutina de finalización del IRP. El Comprobador de controladores tiene una regla para ayudar a detectar esta condición.

Los controladores de filtro del sistema de archivos deben deshabilitar las API de kernel normales antes de adquirir cualquier recurso. Los controladores de filtro del sistema de archivos adquieren recursos con las siguientes rutinas:

Como alternativa a FsRtlEnterFileSystem, los controladores de minifiltro pueden usar las rutinas FltAcquireResourceExclusive, FltAcquireResourceShared y FltReleaseResource , que controlan correctamente las API al adquirir y liberar un recurso.

Requisitos

Tipo de requisito Requisito
Encabezado Ntifs.h (incluya Ntifs.h)
IRQL <= APC_LEVEL

Consulte también

ExAcquireResourceExclusive

ExAcquireResourceExclusiveLite

ExAcquireResourceShared

ExAcquireResourceSharedLite

ExAcquireSharedWaitForExclusive

ExAcquireSharedStarveExclusive

ExReleaseResource

ExReleaseResourceLite

ExTryToAcquireFastMutex

FltAcquireResourceExclusive

FltAcquireResourceShared

FltReleaseResource

FsRtlExitFileSystem

IoCallDriver

KeEnterCriticalRegion

KeRaiseIrqlToDpcLevel