Compartir a través de


Función ZwLockFile (ntifs.h)

El ZwLockFile rutina solicita un bloqueo de intervalo de bytes para el archivo especificado.

Sintaxis

NTSYSAPI NTSTATUS ZwLockFile(
  [in]           HANDLE           FileHandle,
  [in, optional] HANDLE           Event,
  [in, optional] PIO_APC_ROUTINE  ApcRoutine,
  [in, optional] PVOID            ApcContext,
  [out]          PIO_STATUS_BLOCK IoStatusBlock,
  [in]           PLARGE_INTEGER   ByteOffset,
  [in]           PLARGE_INTEGER   Length,
  [in]           ULONG            Key,
  [in]           BOOLEAN          FailImmediately,
  [in]           BOOLEAN          ExclusiveLock
);

Parámetros

[in] FileHandle

Identificador del archivo en el que se solicita un bloqueo de intervalo de bytes.

[in, optional] Event

Identificador de un evento creado por el autor de la llamada. Si no NULL, el autor de la llamada se coloca en un estado de espera hasta que la operación se realice correctamente, en cuyo momento el evento se establece en el estado Señalizado.

[in, optional] ApcRoutine

Puntero a una rutina de APC proporcionada por el autor de la llamada que se ejecuta una vez completada la operación. Puede ser null.

[in, optional] ApcContext

Puntero a un contexto especificado por el autor de la llamada para la rutina de APC. Este valor se pasa a la rutina de APC cuando se ejecuta. Puede ser null.

[out] IoStatusBlock

Puntero a una estructura IO_STATUS_BLOCK que contiene el estado final.

[in] ByteOffset

Puntero a una variable que especifica el desplazamiento de bytes inicial del intervalo que se va a bloquear.

[in] Length

Puntero a una variable que especifica la longitud en bytes del intervalo que se va a bloquear.

[in] Key

Valor asignado por el autor de la llamada que se usa para describir grupos de bloqueos relacionados. Este valor debe establecerse en cero.

[in] FailImmediately

Si TRUE, devuelve inmediatamente si el archivo no se puede bloquear. Si FALSE, espere a que se conceda la solicitud de bloqueo.

[in] ExclusiveLock

Si TRUE, el bloqueo de intervalo de bytes es exclusivo; de lo contrario, bloqueo compartido.

Valor devuelto

La rutina ZwLockFile devuelve STATUS_SUCCESS o un valor NTSTATUS de error adecuado, como uno de los siguientes.

Código de error Descripción
STATUS_INSUFFICIENT_RESOURCES Existen recursos insuficientes para conceder el bloqueo de intervalo de bytes para el archivo especificado.
STATUS_LOCK_NOT_GRANTED No se concedió el bloqueo de intervalo de bytes para el archivo especificado.

Observaciones

Los autores de llamadas de ZwLockFile deben ejecutarse en IRQL = PASSIVE_LEVEL y con API de kernel especiales habilitadas.

Nota

Si la llamada a ZwLockFile función se produce en modo de usuario, debe usar el nombre "NtLockFile" en lugar de "ZwLockFile".

En el caso de las llamadas desde controladores en modo kernel, las NtXxx y Zwversiones de Xxx de una rutina de Servicios del sistema nativo de Windows pueden comportarse de forma diferente en la forma en que controlan e interpretan los parámetros de entrada. Para obtener más información sobre la relación entre las versiones de NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 7
de la plataforma de destino de Universal
encabezado de ntifs.h (incluya Ntifs.h, FltKernel.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL PASSIVE_LEVEL (consulte la sección Comentarios)
reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Consulte también

usar versiones Nt y Zw de las rutinas de servicios del sistema nativo

ZwUnlockFile