IOCTL_VOLUME_OFFLINE IOCTL (ntddvol.h)
Die IOCTL_VOLUME_OFFLINE IOCTL versetzt das Volume in den OFFLINE-Zustand, in dem Lese- und Schreibvorgänge fehlschlagen. Die Anforderungen werden erst dann an den physischen Datenträger übergeben, wenn eine nachfolgende IOCTL_VOLUME_ONLINE empfangen wird.
Eine häufige Verwendung für IOCTL_VOLUME_OFFLINE ist ein Fall, in dem eine Anwendung oder ein Treiber verhindern möchte, dass ein Volume durch einen Aufruf neu bereitgestellt wird, um das Volume von einer zweiten Anwendung oder einem zweiten Treiber zu öffnen, während das Volume gerade von der ersten Anwendung oder dem ersten Treiber entfernt wird. Beispielsweise sollten die Volumes auf der LUN vor dem Maskieren einer logischen Einheitennummer (Logical Unit Number, LUN) gesperrt (optional), aufgehoben, offline genommen und deinstalliert werden. Jetzt kann die LUN maskiert werden, ohne dass Plug & Play -Überraschungsereignisse (PnP) für die Volumes und den Datenträger selbst protokolliert werden. Ohne den Aufruf, das Volume offline zu schalten, kann das Volume nach dem Schließen des Handle, das zum Aufheben der Bereitstellung verwendet wird, durch einen Aufruf erneut bereitgestellt werden, um es von einer anderen Anwendung oder einem anderen Treiber aus zu öffnen, wenn es vor dem Aufruf zum Deinstallieren des Volumes aufgetreten ist. Ein Aufruf zum Öffnen eines Volumes ist auf einem Offlinevolume erfolgreich, aber E/A,die auf ein Offlinevolume gerichtet ist, schlägt fehl. Das Offlinestellen eines Volumes hat keine Auswirkungen auf die Datenträger-E/A (wenn die Anwendung oder der Treiber ein Handle auf dem Datenträger geöffnet hat), beendet jedoch die Volume-E/A (wenn die Anwendung oder der Treiber ein Handle für das Volume geöffnet hat).
Hauptcode
Eingabepuffer
Keine.
Eingabepufferlänge
Keine.
Ausgabepuffer
Keine.
Länge des Ausgabepuffers
Keine.
Statusblock
Das Statuselement ist auf STATUS_SUCCESS festgelegt.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows XP. |
Kopfzeile | ntddvol.h (include Ntddvol.h) |