Freigeben über


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

IRP_MJ_DEVICE_CONTROL

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)

Siehe auch

MOUNTMGR_DRIVE_LETTER_TARGET