Função ZwLockFile (ntifs.h)
A rotina ZwLockFile solicita um bloqueio de intervalo de bytes para o arquivo especificado.
Sintaxe
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
Um identificador para o arquivo no qual um bloqueio de intervalo de bytes é solicitado.
[in, optional] Event
Um identificador para um evento criado pelo chamador. Se não for NULL, o chamador será colocado em um estado de espera até que a operação seja bem-sucedida, momento em que o evento é definido no estado Sinalizado.
[in, optional] ApcRoutine
Um ponteiro para uma rotina de APC fornecida pelo chamador que é executada após a conclusão da operação. Pode ser NULL.
[in, optional] ApcContext
Um ponteiro para um contexto especificado pelo chamador para a rotina APC. Esse valor é passado para a rotina APC quando ele é executado. Pode ser NULL.
[out] IoStatusBlock
Um ponteiro para uma estrutura IO_STATUS_BLOCK que contém o status final.
[in] ByteOffset
Um ponteiro para uma variável que especifica o deslocamento de bytes inicial do intervalo a ser bloqueado.
[in] Length
Um ponteiro para uma variável que especifica o comprimento em bytes do intervalo a ser bloqueado.
[in] Key
Um valor atribuído pelo chamador usado para descrever grupos de bloqueios relacionados. Esse valor deve ser definido como zero.
[in] FailImmediately
Se TRUE, retornará imediatamente se o arquivo não puder ser bloqueado. Se FALSE, aguarde até que a solicitação de bloqueio seja concedida.
[in] ExclusiveLock
Se TRUE, o bloqueio de intervalo de bytes será exclusivo; caso contrário, bloqueio compartilhado.
Retornar valor
A rotina ZwLockFile retorna STATUS_SUCCESS ou um valor NTSTATUS de erro apropriado, como um dos seguintes.
Código do erro | Descrição |
---|---|
STATUS_INSUFFICIENT_RESOURCES | Existem recursos insuficientes para conceder o bloqueio de intervalo de bytes para o arquivo especificado. |
STATUS_LOCK_NOT_GRANTED | O bloqueio de intervalo de bytes não foi concedido para o arquivo especificado. |
Comentários
Os chamadores de ZwLockFile devem estar em execução em IRQL = PASSIVE_LEVEL e com APCs de kernel especiais habilitadas.
Observação
Se a chamada para a função ZwLockFile ocorrer no modo de usuário, você deverá usar o nome "NtLockFile" em vez de "ZwLockFile".
Para chamadas de drivers de modo kernel, as versões NtXxx e ZwXxx de uma rotina do Windows Native System Services podem se comportar de forma diferente na maneira como lidam e interpretam parâmetros de entrada. Para obter mais informações sobre a relação entre as versões NtXxx e ZwXxx de uma rotina, consulte Using Nt and Zw Versions of the Native System Services Routines.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 7 |
Plataforma de Destino | Universal |
Cabeçalho | ntifs.h (include Ntifs.h, FltKernel.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (consulte a seção Comentários) |
Regras de conformidade da DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
Confira também
Usando versões Nt e Zw das rotinas de serviços do sistema nativo