OPLOCK_KEY_ECP_CONTEXT Struktur (ntifs.h)
Die OPLOCK_KEY_ECP_CONTEXT Struktur wird verwendet, um eine Oplock-Taste an eine Datei anzufügen. Diese Struktur ist für Windows 8 und höhere Versionen veraltet; Filter sollten stattdessen DUAL_OP_LOCK_KEY_ECP_CONTEXTverwenden.
Syntax
typedef struct _OPLOCK_KEY_ECP_CONTEXT {
GUID OplockKey;
ULONG Reserved;
} OPLOCK_KEY_ECP_CONTEXT, *POPLOCK_KEY_ECP_CONTEXT;
Angehörige
OplockKey
Eine GUID für den Oplock-Schlüssel. Diese GUID wird von verschiedenen Handles gemeinsam verwendet und identifiziert sie als Zugehörigkeit zum gleichen Clientcache. Wenn zwei Handles denselben Oplock-Schlüssel gemeinsam nutzen, wird eine anforderung, die auf einem Handle ausgeführt wird, keinen ausstehenden Oplock auf dem anderen Handle unterbrechen.
Reserved
Reserviert. Muss auf Null festgelegt werden.
Bemerkungen
Informationen zur Verwendung von ECPs zum Zuordnen zusätzlicher Informationen zu einer Datei beim Erstellen der Datei finden Sie unter Verwenden von zusätzlichen Erstellungsparametern mit einem IRP_MJ_CREATE Operation.
Ein Minifilter sollte den Inhalt der OPLOCK_KEY_ECP_CONTEXT Struktur nicht ändern, wenn der ECP von oben nach unten kommt. Sie sollten es verwenden, um Nur Informationen zum OPLOCK-Schlüssel-ECP abzurufen. Weitere Informationen zu diesem Problem finden Sie unter System-Defined ECPs.
Mit dem Oplock-Schlüssel kann eine Anwendung mehrere Handles für denselben Datenstrom öffnen, ohne das eigene Oplock der Anwendung zu unterbrechen. Der Oplockbruch tritt nur auf, nachdem die Anwendung einen Freigabeverstoß (STATUS_SHARING_VIOLATION) erhält.
Oplocks werden für Datenstromhandles gewährt, wenn ein Datenstrom geöffnet wird. Ein solches Datenstromhandle kann einem Oplock-Schlüssel zugeordnet werden. Ein Aufrufer kann die Oplock-Taste explizit für die IoCreateFileEx- Routine bereitstellen, um das Datenstromhandle zu erstellen. Wenn der Aufrufer beim Erstellen des Handles keine oplock-Taste explizit angibt, behandelt das Betriebssystem das Handle als eindeutige Oplock-Taste, sodass sich der Schlüssel des Handles von jedem anderen Schlüssel auf einem anderen Handle unterscheidet. Wenn ein Dateivorgang auf einem anderen Handle als dem Handle empfangen wird, für das der Oplock gewährt wurde, und der oplock-Schlüssel, der dem Oplock-Handle zugeordnet ist, unterscheidet sich von dem Schlüssel, der dem Handle des Vorgangs zugeordnet ist, und dieser Vorgang ist nicht mit dem aktuell gewährten Oplock kompatibel, dann wird dieser Oplock unterbrochen. Die Oplock-Unterbrechungen werden auch dann unterbrochen, wenn es sich um denselben Prozess oder Thread handelt, der den inkompatiblen Vorgang ausführt. Wenn z. B. ein Prozess einen Datenstrom öffnet, für den ein exklusiver Oplock gewährt wird, und dann wird derselbe Datenstrom erneut geöffnet, indem ein anderer (oder kein) Oplock-Schlüssel verwendet wird, wird der exklusive Oplock sofort unterbrochen.
Oplock-Tasten sind Handles zugeordnet, wenn die Handles erstellt werden. Sie können einen Handle einem Oplock-Schlüssel zuordnen, auch wenn keine Oplocks erteilt werden.
Weitere Informationen zu Oplocks und Oplock-Tasten finden Sie unter Oplock Semantics Overview.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 7; veraltet ab Windows 8 |
Header- | ntifs.h |