Função ZwLockFile (ntifs.h)
O ZwLockFile rotina 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 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 do APC. Esse valor é passado para a rotina do 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 VERDADEIRO, retorne 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.
Valor de retorno
A rotina
Código de 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. |
Observações
Os chamadores de ZwLockFile devem estar em execução em IRQL = PASSIVE_LEVEL e com APCs de kernel especiais habilitadas.
Nota
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 no modo kernel, as versões NtXxx e Zwxxx versões de uma rotina dos Serviços de Sistema Nativo do Windows 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 Usando versões Nt e Zw das rotinas de serviços do sistema nativo.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 7 |
da Plataforma de Destino |
Universal |
cabeçalho | ntifs.h (inclua Ntifs.h, FltKernel.h) |
biblioteca | NtosKrnl.lib |
de DLL |
NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (consulte a seção Comentários) |
regras de conformidade de DDI | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |
Consulte também
usando versões Nt e Zw das rotinas de serviços do sistema nativo