Función NtLockFile (ntifs.h)
La rutina NtLockFile solicita un bloqueo de intervalo de bytes para el archivo especificado.
Sintaxis
__kernel_entry NTSYSCALLAPI NTSTATUS NtLockFile(
[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 es 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 Signaled.
[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 de 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 es TRUE, devuelve inmediatamente si el archivo no se puede bloquear. Si es FALSE, espere a que se conceda la solicitud de bloqueo.
[in] ExclusiveLock
Si es TRUE, el bloqueo de intervalo de bytes es exclusivo; de lo contrario, bloqueo compartido.
Valor devuelto
La rutina NtLockFile devuelve STATUS_SUCCESS o un valor NTSTATUS de error adecuado. Entre los posibles valores NTSTATUS se incluyen los siguientes:
Código devuelto | 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. |
Comentarios
Los autores de llamadas de NtLockFile deben ejecutarse en IRQL = PASSIVE_LEVEL y con las API de kernel especiales habilitadas**.
Nota
Si la llamada a la función NtLockFile 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 versiones NtXxx y ZwXxx de una rutina de Servicios del sistema nativo de Windows se pueden comportar 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 NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines**.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 7 |
Plataforma de destino | Universal |
Encabezado | ntifs.h (incluya Ntifs.h, FltKernel.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (consulte la sección Comentarios) |
Reglas de cumplimiento de DDI | HwStorPortProhibitedDIs, PowerIrpDDis |