Condividi tramite


struttura OPLOCK_KEY_ECP_CONTEXT (ntifs.h)

La struttura OPLOCK_KEY_ECP_CONTEXT viene utilizzata per collegare una chiave oplock a un file. Questa struttura è obsoleta per Windows 8 e versioni successive; I filtri devono invece usare DUAL_OP_LOCK_KEY_ECP_CONTEXT.

Sintassi

typedef struct _OPLOCK_KEY_ECP_CONTEXT {
  GUID  OplockKey;
  ULONG Reserved;
} OPLOCK_KEY_ECP_CONTEXT, *POPLOCK_KEY_ECP_CONTEXT;

Membri

OplockKey

GUID per la chiave oplock. Questo GUID viene condiviso tra handle diversi e li identifica come appartenenti alla stessa cache client. Quando due handle condividono la stessa chiave di oplock, una richiesta eseguita su un handle non interrompe un blocco operativo in sospeso sull'altro handle.

Reserved

Riservato. Deve essere impostato su zero.

Osservazioni

Per informazioni su come usare gli ECP per associare informazioni aggiuntive a un file quando viene creato il file, vedere Using Extra Create Parameters with an IRP_MJ_CREATE Operation.For information about how to use ECP to associate extra information with a file when the file is created, see Using Extra Create Parameters with an IRP_MJ_CREATE Operation.

Un minifiltro non deve modificare il contenuto della struttura OPLOCK_KEY_ECP_CONTEXT quando vede l'ECP in uscita dall'alto. È consigliabile usarlo per recuperare informazioni solo sulla chiave oplock ECP. Per altre informazioni su questo problema, vedere System-Defined ECP.

La chiave oplock consente a un'applicazione di aprire più handle allo stesso flusso senza interrompere il proprio oplock dell'applicazione. L'interruzione di oplock si verifica solo dopo che l'applicazione riceve una violazione di condivisione (STATUS_SHARING_VIOLATION).

Gli oplock vengono concessi sugli handle di flusso all'apertura di un flusso. Un handle di flusso di questo tipo può essere associato a una chiave oplock. Un chiamante può fornire in modo esplicito la chiave oplock all'routine IoCreateFileEx per creare l'handle di flusso. Se il chiamante non specifica in modo esplicito una chiave oplock quando il chiamante crea l'handle, il sistema operativo considera l'handle come una chiave di oplock univoca associata all'handle, in modo che la chiave dell'handle differisca da qualsiasi altra chiave su qualsiasi altro handle. Se viene ricevuta un'operazione di file su un handle diverso da quello in cui è stato concesso l'oplock e la chiave oplock associata all'handle dell'oplock è diversa dalla chiave associata all'handle dell'operazione e tale operazione non è compatibile con l'oplock attualmente concesso, tale oplock viene interrotto. L'oplock si interrompe anche se si tratta dello stesso processo o thread che esegue l'operazione incompatibile. Ad esempio, se un processo apre un flusso per il quale viene concesso un oplock esclusivo e lo stesso processo apre di nuovo lo stesso flusso, usando una chiave di oplock diversa (o no), l'oplock esclusivo viene interrotto immediatamente.

Le chiavi oplock sono associate agli handle quando vengono creati gli handle. È possibile associare un handle a una chiave oplock anche se non viene concesso alcun oplock.

Per altre informazioni sugli oplock e sulle chiavi oplock, vedere panoramica della semantica oplock .

Fabbisogno

Requisito Valore
client minimo supportato Windows 7; obsoleto a partire da Windows 8
intestazione ntifs.h

Vedere anche

DUAL_OP_LOCK_KEY_ECP_CONTEXT

IoCreateFileEx