IOCTL_MOUNTMGR_NEXT_DRIVE_LETTER IOCTL (mountmgr.h)
Diese IOCTL überprüft, ob das angegebene Volume über einen Laufwerkbuchstaben verfügt. Wenn es bereits über einen Laufwerkbuchstaben verfügt oder das Volume einen speziellen Bereitstellungs-Manager-Datenbankeintrag enthält, der angibt, dass kein Laufwerkbuchstaben erforderlich ist, gibt diese Routine den aktuellen Laufwerkbuchstaben (sofern vorhanden) zurück und führt nichts aus. Wenn das angegebene Volume keinen Laufwerkbuchstaben hat und keinen speziellen Bereitstellungs-Manager-Datenbankeintrag enthält, der angibt, dass kein Laufwerkbuchstaben erforderlich ist, wird dem Volume der nächste verfügbare Laufwerkbuchstaben zugewiesen. Wenn der Name des nichtpersistenten Geräts des Volumes mit "\Device\Floppy" beginnt, sucht der Bereitstellungs-Manager ab dem Buchstaben "A" nach verfügbaren Laufwerkbuchstaben. Wenn der Volumename mit "\Device\CdRom" beginnt, sucht der Bereitstellungs-Manager nach verfügbaren Laufwerkbuchstaben beginnend mit laufwerksbuchstaben "D". In allen anderen Fällen beginnt der Bereitstellungs-Manager mit dem Laufwerkbuchstaben "C".
Hauptcode
Eingabepuffer
Der Bereitstellungs-Manager-Client initialisiert die MOUNTMGR_DRIVE_LETTER_TARGET Struktur am Anfang des Puffers bei Irp->AssociatedIrp.SystemBuffer. Der Client muss den Namen des Zielvolumes an der Adresse einfügen, auf die der DeviceName[] Mitglied dieser Struktur verweist. Der Zielvolumename ist der Name des nichtpersistenten Geräteobjekts, das dem Volume zugeordnet ist (z. B. "\Device\HarddiskVolume1").
Eingabepufferlänge
Parameters.DeviceIoControl.InputBufferLength in der I/O-Stapelposition des IRP gibt die Größe des Eingabepuffers in Bytes an, die größer oder gleich sizeof(MOUNTMGR_DRIVE_LETTER_TARGET)
sein muss.
Ausgabepuffer
Der Bereitstellungs-Manager fügt entweder den aktuellen Laufwerkbuchstaben oder den neu zugewiesenen Laufwerkbuchstaben (siehe vorherige Diskussion) in die MOUNTMGR_DRIVE_LETTER_INFORMATION Struktur am Anfang des Puffers bei Irp->AssociatedIrp.SystemBufferein.
Länge des Ausgabepuffers
Parameters.DeviceIoControl.OutputBufferLength in der I/O-Stapelposition des IRP gibt die Größe des Ausgabepuffers in Bytes an, die größer oder gleich sizeof(MOUNTMGR_DRIVE_LETTER_INFORMATION)
sein muss.
Eingabe-/Ausgabepuffer
N/A
Länge des Eingabe-/Ausgabepuffers
N/A
Statusblock
Wenn der Vorgang erfolgreich ist, wird das feld Status auf STATUS_SUCCESS festgelegt.
Wenn InputBufferLength- kleiner als sizeof(MOUNTMGR_DRIVE_LETTER_TARGET)
ist oder OutputBufferLength- kleiner als sizeof(MOUNTMGR_DRIVE_LETTER_INFORMATION)
ist, wird das feld Status auf STATUS_INVALID_PARAMETER festgelegt.
Bemerkungen
Weitere Informationen finden Sie unter Unterstützen von Mount Manager-Anforderungen in einem Speicherklassentreiber.
Anforderungen
Anforderung | Wert |
---|---|
Header- | mountmgr.h (include Mountmgr.h) |