Freigeben über


BPIO_OPERATIONS-Enumeration (ntddstor.h)

BPIO_OPERATIONS definiert die verschiedenen BypassIO-Vorgänge, die vom IOCTL_STORAGE_MANAGE_BYPASS_IO-Steuerungscode unterstützt werden.

Syntax

typedef enum _BPIO_OPERATIONS {
  BPIO_OP_ENABLE,
  BPIO_OP_DISABLE,
  BPIO_OP_QUERY
} BPIO_OPERATIONS;

Konstanten

 
BPIO_OP_ENABLE
Anforderungen, dass BypassIO für das angegebene Volume oder Datenträger (Gerät) aktiviert wird, was bedeutet, dass einem Treiber möglicherweise nicht alle Lese-/Schreibvorgänge für diesen Stapel angezeigt werden.

HINWEIS

Alle Treiber in den Volume- und Speicherstapeln haben die Möglichkeit, ein Veto gegen die BypassIO-Aktivierungsanforderung einzufügen, es wird jedoch empfohlen, sie so weit wie möglich aktiviert zu lassen.

Für den vorangestellten Vorgang:

* Wenn ein Treiber BypassIO für das angegebene Gerät unterstützen kann, sollte er die Anforderung nach unten im Stapel weiterleiten.
* Wenn ein Treiber BypassIO für das angegebene Gerät nicht unterstützen kann, sollte er:
* Aktualisieren Sie die BPIO_OUTPUT-Struktur , einschließlich des Vorgangs NTSTATUS, der beschreibt, warum die Aktivierungsanforderung vetoiert wurde, den Namen des Treibers und eine eindeutige, beschreibende Zeichenfolge mit zusätzlichen Details darüber, warum sie das Veto für die Aktivierungsanforderung einschleist.
* Vervollständigen Sie IOCTL_STORAGE_MANAGE_BYPASS_IO mit STATUS_SUCCESS.

Während des Nachbetriebs kann der Treiber sehen, ob alle Treiber darunter BypassIO unterstützen können. Wenn ja, sollte der Treiber den erforderlichen Zustand für die Datei beibehalten und die Verarbeitung der Vervollständigung fortsetzen. Es liegt in der Verantwortung des Treibers, den Zustand aufrechtzuerhalten, um Anforderungen ordnungsgemäß zu verarbeiten, die möglicherweise nicht mit dem BypassIO-fähigen Zustand kompatibel sind.

Das Dateisystem verwaltet die Anzahl der Dateien, die BypassIO derzeit aktiviert haben, pro Volume. Der BPIO_OP_ENABLE Vorgang wird nur gesendet, wenn diese Anzahl von 0 zu 1 wechselt.

Auch wenn ein Volume- oder Speicherstapeltreiber BypassIO vetoiert, kann der Dateisystemstapel BypassIO weiterhin ausführen. Dies liegt daran, dass das Dateisystem filter weiterhin umgehen kann, wenn jemand ein Veto gegen BypassIO für den Volumestapel erteilt hat.

BPIO_OP_DISABLE
Anforderungen, dass BypassIO für das angegebene Volume/Den angegebenen Datenträger deaktiviert wird. Es ermöglicht einem Treiber, jeden zugeordneten BypassIO-Zustand zu bereinigen.

Das Dateisystem sendet diesen Vorgang, wenn die letzte BypassIO-fähige Datei deaktiviert oder geschlossen wird (die Anzahl pro Volume wechselt von 1 auf null).

Wenn ein Treiber BPIO_OP_DISABLE empfängt, bypassIO jedoch derzeit nicht aktiviert ist, sollte er die Anforderung ignorieren.

Dieser Vorgang sollte nicht fehlgeschlagen sein.
BPIO_OP_QUERY
Fragt ab, ob BypassIO für das angegebene Volume oder den angegebenen Datenträger aktiviert werden kann.

Ein Speichertreiber sollte diese Anforderung ähnlich einem BPIO_OP_ENABLE-Vorgang verarbeiten und dieselben Diagnoseinformationen in den entsprechenden Feldern in der BPIO_OUTPUT-Struktur ausfüllen. Der Hauptunterschied besteht darin, dass der Treiber während einer ABFRAGE nicht in den BypassIO ENABLE-Zustand wechselt.

Hinweise

Weitere Informationen finden Sie unter BypassIO für Speichertreiber .

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 11
Kopfzeile ntddstor.h

Weitere Informationen

IOCTL_STORAGE_MANAGE_BYPASS_IO