IOCTL_STORAGE_CHECK_VERIFY IOCTL (ntddstor.h)
Bestimmt, ob sich die Medien auf einem Wechselmediengerät geändert haben, das der Anrufer für Lese- oder Schreibzugriff geöffnet hat. Wenn lese- oder schreibzugriff auf das Gerät nicht erforderlich ist, kann der Aufrufer die Leistung verbessern, indem es das Gerät mit FILE_READ_ATTRIBUTES öffnet und stattdessen eineIOCTL_STORAGE_CHECK_VERIFY2 Anforderung ausgibt.
Weitere Informationen finden Sie unter Unterstützen von Wechselmedien.
Hauptcode
Eingabepuffer
Nichts.
Eingabepufferlänge
Nichts.
Ausgabepuffer
CD-ROM Optional verweist Irp->AssociatedIrp.SystemBuffer auf einen Puffer, um die Anzahl der Medienänderungen zu erhalten. Der Treiber füllt diesen Puffer nur, wenn Parameters.DeviceIoControl.OutputBufferLength- ungleich Null war und der Rückgabewert STATUS_SUCCESS ist. Die Anzahl der Medienänderungen ist ein ULONG, der 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 für Datenträger und CD-ROM Geräte Parameters.DeviceIoControl.OutputBufferLength im I/O-Stapelspeicherort des IRP die Größe eines Puffers in Bytes an, der >= Größe von(ULONG) sein muss. Dieses Feld ist null, 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 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 Größe von(ULONG) fest. Wenn der optionale Medienänderungspuffer nicht angegeben wurde, legt der Treiber Information auf Null fest.
Wenn der Treiber erkennt, dass sich das Medium geändert hat und das Volume bereitgestellt wird (VPB_MOUNTED in der VPB festgelegt ist), muss folgendes erfolgen:
- Legen Sie Information auf Null fest.
- Legen Sie Status- auf STATUS_VERIFY_REQUIRED fest.
- Legen Sie das DO_VERIFY_VOLUME Flag im DeviceObject fest.
- Rufen Sie IoCompleteRequest mit dem Eingabe-IRP auf.
- Legen Sie Status- auf STATUS_IO_DEVICE_ERROR fest.
- Legen Sie Information auf Null fest.
- Rufen Sie IoCompleteRequest mit dem IRP auf.
Bei einem Bandtreiber wird das Feld Information auf Null festgelegt, und das feld Status feld wird auf STATUS_SUCCESS oder möglicherweise auf STATUS_VERIFY_REQUIRED festgelegt.
Anforderungen
Anforderung | Wert |
---|---|
Header- | ntddstor.h (include Ntddstor.h) |