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

[in] A1

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

[in] A2

FileObject: puntero al FILE_OBJECT del archivo abierto. El objeto de archivo debe haberse creado con GENERIC_READ o GENERIC_WRITE acceso al archivo (o ambos).

[in] A3

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

[in] A4

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

[in] A5

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

[in] A6

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

[in] A7

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 se puede colocar en un estado de espera hasta que se concede la solicitud, establezca FailImmediately enFALSE. Si no es posible, establezca FailImmediately enTRUE.

[in] A8

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

[out] A9

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.

[in] A10

Contexto: puntero opcional a un contexto que se usará al liberar el bloqueo de intervalo de bytes.

[in] A11

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

Valor devuelto

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

Observaciones

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

   
Plataforma de destino Escritorio
Header ntifs.h (incluya Ntifs.h)
IRQL <= APC_LEVEL

Vea también

FsRtlAllocateFileLock

FsRtlInitializeFileLock