IOCTL_STORAGE_CHECK_VERIFY IOCTL (ntddstor.h)
Bestimmt, ob die Medien auf einem Wechselmedium geändert wurden, das der Aufrufer für Lese- oder Schreibzugriff geöffnet hat. Wenn kein Lese- oder Schreibzugriff auf das Gerät erforderlich ist, kann der Aufrufer die Leistung verbessern, indem er das Gerät mit FILE_READ_ATTRIBUTES öffnet und stattdessen eineIOCTL_STORAGE_CHECK_VERIFY2-Anforderung ausgibt.
Weitere Informationen finden Sie unter Unterstützung von Wechselmedien.
Hauptcode
Eingabepuffer
Keine.
Eingabepufferlänge
Keine.
Ausgabepuffer
Optional verweist Irp-AssociatedIrp.SystemBuffer> für Datenträger und CD-ROM-Geräte auf einen Puffer, um die Anzahl der Medienänderungen zu empfangen. Der Treiber füllt diesen Puffer nur aus, wenn Parameters.DeviceIoControl.OutputBufferLength nonzero war und der Rückgabewert STATUS_SUCCESS ist. Die Anzahl der Medienänderungen ist eine ULONG, die angibt, wie oft sich die Medien seit dem Start des Treibers geändert haben.
Andernfalls hat diese Anforderung keine Ausgabe.
Länge des Ausgabepuffers
Optional gibt Parameters.DeviceIoControl.OutputBufferLength für Datenträger- und CD-ROM-Geräte im E/A-Stapelspeicherort des IRP die Größe eines Puffers in Bytes an, der = sizeof(ULONG) sein >muss. Dieses Feld ist 0, wenn der optionale Puffer nicht angegeben ist.
Andernfalls hat diese Anforderung keine Eingabe.
Statusblock
Wenn ein Datenträger oder CD-ROM-Treiber keinen Hinweis darauf hat, dass sich die Medien geändert haben, legt der Treiber das Feld Status auf STATUS_SUCCESS fest. Wenn außerdem der optionale Medienänderungspuffer angegeben wurde, gibt der Treiber die Anzahl der Medienänderungen im Puffer bei Irp-AssociatedIrp.SystemBuffer> zurück und legt das Feld Information auf sizeof(ULONG) fest. Wenn der optionale Medienänderungspuffer nicht angegeben wurde, legt der Treiber Informationen auf 0 fest.
Wenn der Treiber erkennt, dass sich die Medien geändert haben und das Volume eingebunden ist (VPB_MOUNTED im VPB festgelegt ist), muss folgendes erforderlich sein:
- Legen Sie Informationen auf 0 fest.
- Legen Sie Status auf STATUS_VERIFY_REQUIRED fest.
- Legen Sie das DO_VERIFY_VOLUME-Flag im DeviceObject fest.
- Rufen Sie IoCompleteRequest mit der Eingabe-IRP auf.
- Legen Sie Status auf STATUS_IO_DEVICE_ERROR fest.
- Legen Sie Informationen auf 0 fest.
- Rufen Sie IoCompleteRequest mit dem IRP auf.
Bei einem Bandtreiber ist das Feld Information auf null festgelegt, und das Feld Status ist auf STATUS_SUCCESS oder möglicherweise auf STATUS_VERIFY_REQUIRED festgelegt.
Anforderungen
Anforderung | Wert |
---|---|
Header | ntddstor.h (include Ntddstor.h) |