Macro FsRtlFastLock (ntifs.h)

Los sistemas de archivos usan la macro FsRtlFastLock y los controladores de filtro para solicitar un bloqueo de intervalo de bytes para una secuencia de archivos.

Sintaxis

BOOLEAN
FsRtlFastLock( A1,   /* FileLock            */
               A2,   /* FileObject          */
               A3,   /* FileOffset          */
               A4,   /* Length              */
               A5,   /* ProcessId           */
               A6,   /* Key                 */
               A7,   /* FailImmediately     */
               A8,   /* ExclusiveLock       */
               A9,   /* Iosb                */
               A10,  /* Context             */
               A11   /* AlreadySynchronized */ )

Parámetros

A1

[in] FileLock: puntero a la estructura FILE_LOCK del archivo. Esta estructura debe haberse inicializado mediante una llamada anterior a FsRtlAllocateFileLock o FsRtlInitializeFileLock.

A2

[in] FileObject: puntero al FILE_OBJECT para el archivo abierto. El objeto de archivo debe haberse creado con GENERIC_READ o GENERIC_WRITE acceso al archivo (o ambos).

A3

[in] FileOffset: puntero a una variable que especifica el desplazamiento de bytes inicial dentro del archivo del intervalo que se va a bloquear.

A4

[in] Length: puntero a una variable que especifica la longitud en bytes del intervalo que se va a bloquear.

A5

[in] ProcessId: puntero al identificador de proceso de EPROCESS para el proceso que solicita el bloqueo de intervalo de bytes.

A6

[in] Clave: clave que se va a asignar al bloqueo de intervalo de bytes.

A7

[in] FailImmediately: valor booleano que especifica si se debe producir un error en la solicitud de bloqueo si no se puede conceder el bloqueo inmediatamente. Si el autor de la llamada puede colocarse en un estado de espera hasta que se conceda la solicitud, establezca FailImmediately en FALSE. Si no es posible, establezca FailImmediately en TRUE.

A8

[in] ExclusiveLock: se establece en TRUE si se solicita un bloqueo exclusivo, FALSE si se solicita un bloqueo compartido.

A9

[out] Iosb: puntero a una estructura de IO_STATUS_BLOCK asignada por el autor de la llamada que recibe información de estado sobre la solicitud de bloqueo.

A10

[in] Contexto: puntero opcional a un contexto que se va a usar al liberar el bloqueo de intervalo de bytes.

A11

[in] AlreadySynchronized: este parámetro está obsoleto, pero se conserva para la compatibilidad con controladores heredados.

Valor devuelto

FsRtlFastLock devuelve TRUE para indicar que la estructura de IO_STATUS_BLOCK a la que apunta Iosb recibió información de estado sobre la operación de bloqueo; de lo contrario, devuelve FALSE.

Comentarios

La macro FsRtlFastLock hace que el autor de la llamada adquiera un bloqueo de intervalo de bytes en una región del archivo especificado.

Para examinar el contenido de la estructura a la que apunta Iosb , use la macro NT_STATUS.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado ntifs.h (incluya Ntifs.h)
IRQL <= APC_LEVEL

Consulte también

FILE_LOCK

FsRtlAllocateFileLock

FsRtlInitializeFileLock