Compartilhar via


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 ZwLockFile retorna STATUS_SUCCESS ou um valor NTSTATUS de erro apropriado, como um dos seguintes.

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

ZwUnlockFile