ZwLockFile, fonction (ntifs.h)

La routine ZwLockFile demande un verrou de plage d’octets pour le fichier spécifié.

Syntaxe

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
);

Paramètres

[in] FileHandle

Handle pour le fichier sur lequel un verrou de plage d’octets est demandé.

[in, optional] Event

Handle d’un événement créé par l’appelant. Si ce n’est pas null, l’appelant est placé dans un état d’attente jusqu’à ce que l’opération aboutisse, auquel cas l’événement est défini dans l’état Signaled.

[in, optional] ApcRoutine

Pointeur vers une routine APC fournie par l’appelant qui est exécutée une fois l’opération terminée. Peut être NULL.

[in, optional] ApcContext

Pointeur vers un contexte spécifié par l’appelant pour la routine APC. Cette valeur est passée à la routine APC lors de son exécution. Peut être NULL.

[out] IoStatusBlock

Pointeur vers une structure de IO_STATUS_BLOCK qui contient le status final.

[in] ByteOffset

Pointeur vers une variable qui spécifie le décalage d’octet de départ de la plage à verrouiller.

[in] Length

Pointeur vers une variable qui spécifie la longueur en octets de la plage à verrouiller.

[in] Key

Valeur affectée par l’appelant utilisée pour décrire des groupes de verrous associés. Cette valeur doit être définie sur zéro.

[in] FailImmediately

Si la valeur est TRUE, retournez immédiatement si le fichier ne peut pas être verrouillé. Si la valeur est FALSE, attendez que la demande de verrouillage soit accordée.

[in] ExclusiveLock

Si la valeur est TRUE, le verrou de plage d’octets est exclusif ; sinon, verrou partagé.

Valeur retournée

La routine ZwLockFile retourne STATUS_SUCCESS ou une valeur NTSTATUS d’erreur appropriée, comme l’une des suivantes.

Code d'erreur Description
STATUS_INSUFFICIENT_RESOURCES Les ressources sont insuffisantes pour accorder le verrou de plage d’octets pour le fichier spécifié.
STATUS_LOCK_NOT_GRANTED Le verrou de plage d’octets n’a pas été accordé pour le fichier spécifié.

Remarques

Les appelants de ZwLockFile doivent s’exécuter sur IRQL = PASSIVE_LEVEL et avec des API de noyau spéciales activées.

Notes

Si l’appel à la fonction ZwLockFile se produit en mode utilisateur, vous devez utiliser le nom « NtLockFile » au lieu de « ZwLockFile ».

Pour les appels provenant de pilotes en mode noyau, les versions NtXxx et ZwXxx d’une routine Windows Native System Services peuvent se comporter différemment dans la façon dont elles gèrent et interprètent les paramètres d’entrée. Pour plus d’informations sur la relation entre les versions NtXxx et ZwXxx d’une routine, consultez Using Nt and Zw Versions of the Native System Services Routines.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7
Plateforme cible Universal
En-tête ntifs.h (include Ntifs.h, FltKernel.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (voir la section Remarques)
Règles de conformité DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Voir aussi

Utilisation des versions Nt et Zw des routines des services système natifs

ZwUnlockFile