Condividi tramite


Macro FsRtlFastLock (ntifs.h)

La macro fsRtlFastLock viene utilizzata dai file system e dai driver di filtro per richiedere un blocco di intervallo di byte per un flusso di file.

Sintassi

BOOLEAN
FsRtlFastLock( A1,   /* FileLock            */
               A2,   /* FileObject          */
               A3,   /* FileOffset          */
               A4,   /* Length              */
               A5,   /* ProcessId           */
               A6,   /* Key                 */
               A7,   /* FailImmediately     */
               A8,   /* ExclusiveLock       */
               A9,   /* Iosb                */
               A10,  /* Context             */
               A11   /* AlreadySynchronized */ )

Parametri

A1

[in] FileLock: puntatore alla struttura FILE_LOCK per il file. Questa struttura deve essere stata inizializzata da una chiamata precedente a FsRtlAllocateFileLock o FsRtlInitializeFileLock.

A2

[in] FileObject: puntatore al FILE_OBJECT per il file aperto. L'oggetto file deve essere stato creato con GENERIC_READ o GENERIC_WRITE l'accesso al file (o a entrambi).

A3

[in] FileOffset: puntatore a una variabile che specifica l'offset dei byte iniziale all'interno del file dell'intervallo da bloccare.

A4

[in] Lunghezza: puntatore a una variabile che specifica la lunghezza in byte dell'intervallo da bloccare.

A5

[in] ProcessId: puntatore all'ID processo EPROCESS per il processo che richiede il blocco dell'intervallo di byte.

A6

[in] Chiave: chiave da assegnare al blocco dell'intervallo di byte.

A7

[in] FailImmediately: valore booleano che specifica se la richiesta di blocco deve avere esito negativo se il blocco non può essere concesso immediatamente. Se il chiamante può essere inserito in uno stato di attesa fino a quando non viene concessa la richiesta, impostare FailImmediately su FALSE. Se non è possibile, impostare FailImmediately su TRUE.

A8

[in] ExclusiveLock: impostare su TRUE se viene richiesto un blocco esclusivo, FALSE se viene richiesto un blocco condiviso.

A9

[out] Iosb: puntatore a una struttura di IO_STATUS_BLOCK allocata dal chiamante che riceve informazioni sullo stato relative alla richiesta di blocco.

A10

[in] Context: puntatore facoltativo a un contesto da usare quando si rilascia il blocco dell'intervallo di byte.

A11

[in] AlreadySynchronized: questo parametro è obsoleto, ma viene mantenuto per la compatibilità con i driver legacy.

Valore restituito

Nessuno

Osservazioni

La macro FsRtlFastLock fa sì che il chiamante acquisisca un blocco di intervallo di byte in un'area del file specificato.

FsRtlFastLock restituisce TRUE per indicare che la struttura IO_STATUS_BLOCK a cui punta Iosb informazioni sullo stato ricevute sull'operazione di blocco; in caso contrario restituisce FALSE.

Per esaminare il contenuto della struttura a cui punta Iosb, utilizzare la macro NT_STATUS.

Fabbisogno

Requisito Valore
piattaforma di destinazione Desktop
intestazione ntifs.h (include Ntifs.h)
IRQL <= APC_LEVEL

Vedere anche

FILE_LOCK

FsRtlAllocateFileLock

FsRtlInitializeFileLock