Freigeben über


IOCTL_MOUNTDEV_QUERY_DEVICE_NAME IOCTL (mountmgr.h)

Beim Empfang dieses IOCTL muss ein Clienttreiber den (nichtpersistenten) Gerätenamen (oder Ziel) für das Volume angeben. Der Bereitstellungs-Manager verwendet den Gerätenamen vom Client als Ziel einer symbolischen Verknüpfung zurückgegeben. Ein Beispiel für einen Gerätenamen wäre "\Device\HarddiskVolume1".

Die Unterstützung für diese IOCTL durch die Mount-Manager-Clients ist obligatorisch.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Nichts.

Eingabepufferlänge

Nichts.

Ausgabepuffer

Der Bereitstellungs-Manager-Client gibt eine Struktur mit variabler Länge vom Typ MOUNTDEV_NAME am Anfang des Puffers bei Irp->AssociatedIrp.SystemBufferzurück. Der Gerätename muss an der Adresse eingefügt werden, auf die der Name Mitglied dieser Struktur verweist.

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(MOUNTDEV_NAME)sein muss.

Statusblock

Das feld Information wird auf FIELD_OFFSET(MOUNTDEV_NAME, Name) + output->NameLength oder alternativ, output->NameLength + sizeof(USHORT) festgelegt, wobei ausgabe auf den Puffer bei Irp->AssociatedIrp.SystemBufferverweist.

Wenn der Vorgang erfolgreich ist, muss der Bereitstellungs-Manager-Client das Feld Information auf die Länge der MIT NULL beendeten Zeichenfolge festlegen, die den Gerätenamen und das feld Status auf STATUS_SUCCESS enthält.

Wenn der Ausgabepuffer zu klein ist, um den Gerätenamen zu speichern, muss der Bereitstellungs-Manager-Client das Feld Information auf sizeof(MOUNTDEV_NAME) und das feld Status auf STATUS_BUFFER_OVERFLOW festlegen. Darüber hinaus füllt der Bereitstellungs-Manager-Client das NameLength-Element der MOUNTDEV_NAME-Struktur aus.

Bemerkungen

Als bewährte Methode darf der Implementierer keine Threadsynchronisierung durchführen und darf keine Blockierungs- und/oder Interprocess Communication (IPC)-Funktionsaufrufe durchführen.

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

MOUNTDEV_NAME