Freigeben über


REQUEST_OPLOCK_OUTPUT_BUFFER-Struktur (winioctl.h)

Enthält die vom FSCTL_REQUEST_OPLOCK-Steuerungscode zurückgegebenen Informationen zur opportunistischen Sperre (Oplock).

Syntax

typedef struct _REQUEST_OPLOCK_OUTPUT_BUFFER {
  WORD        StructureVersion;
  WORD        StructureLength;
  DWORD       OriginalOplockLevel;
  DWORD       NewOplockLevel;
  DWORD       Flags;
  ACCESS_MASK AccessMode;
  WORD        ShareMode;
} REQUEST_OPLOCK_OUTPUT_BUFFER, *PREQUEST_OPLOCK_OUTPUT_BUFFER;

Member

StructureVersion

Die Version der REQUEST_OPLOCK_OUTPUT_BUFFER-Struktur , die verwendet wird.

StructureLength

Die Länge dieser Struktur in Bytes.

OriginalOplockLevel

Mindestens ein OPLOCK_LEVEL_CACHE_XXX-Werte , die die Ebene des unterbrochenen Oplocks angeben.

Mögliche Werte finden Sie im RequestedOplockLevel-Member der REQUEST_OPLOCK_INPUT_BUFFER-Struktur .

NewOplockLevel

Ein oder mehrere OPLOCK_LEVEL_CACHE_XXX-Werte , die die Ebene angeben, auf die ein Oplock unterbrochen wird, oder eine oplock-Ebene, die je nach Dem Vorgang, der diesen Puffer zurückgibt, für die Gewährung verfügbar sein kann.

Mögliche Werte finden Sie im RequestedOplockLevel-Member der REQUEST_OPLOCK_INPUT_BUFFER-Struktur .

Flags

Mindestens ein REQUEST_OPLOCK_OUTPUT_FLAG_XXX-Wert .

Wert Bedeutung
REQUEST_OPLOCK_OUTPUT_FLAG_ACK_REQUIRED
Gibt an, dass eine Bestätigung erforderlich ist und der in OriginalOplockLevel beschriebene Oplock weiterhin in Kraft bleibt, bis die Unterbrechung erfolgreich bestätigt wurde.
REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED
Gibt an, dass die ShareMode- und AccessMode-Member die Freigabe- bzw. Zugriffsflags der Anforderung enthalten, die den Oplock-Umbruch verursachen. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.

AccessMode

Wenn das Flag REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED festgelegt ist und die OPLOCK_LEVEL_CACHE_HANDLE Ebene bei einem Oplock-Umbruch verloren geht, enthält den Zugriffsmodus der Anforderung, die den Umbruch verursacht.

ShareMode

Wenn das REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED-Flag festgelegt ist und die OPLOCK_LEVEL_CACHE_HANDLE Ebene in einem Oplock-Umbruch verloren geht, enthält den Freigabemodus der Anforderung, die den Bruch verursacht.

Hinweise

Das REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED-Flag gibt an, dass die Felder ShareMode und AccessMode die Freigabe- bzw. Zugriffsflags der Anforderung enthalten, die den Oplock-Umbruch verursachen. Diese Informationen können bei Unterbrechungen bereitgestellt werden, bei denen die OPLOCK_LEVEL_CACHE_HANDLE-Ebene verloren geht, und können für Aufrufer nützlich sein, die Handles schließen können, deren Freigabe- und Zugriffsmodi mit dem Handle in Konflikt stehen, der die Unterbrechung verursacht. Dies kann es ihnen ermöglichen, mindestens einen Handle-Cachestatus beizubehalten. Beachten Sie, dass nicht bei allen Unterbrechungen, bei denen die OPLOCK_LEVEL_CACHE_HANDLE Ebene verloren geht, dieses Flag festgelegt ist. Der primäre Fall, in dem dieses Flag festgelegt wird, ist, wenn der Umbruch ein Ergebnis eines Erstellungsvorgangs ist, bei dem der OPLOCK_LEVEL_CACHE_HANDLE Oplock unterbrochen werden muss, um einen Fehler mit ERROR_SHARING_VIOLATION zu vermeiden.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Kopfzeile winioctl.h (einschließlich Windows.h)

Weitere Informationen

FSCTL_REQUEST_OPLOCK

Oplock-Semantik

REQUEST_OPLOCK_INPUT_BUFFER