Freigeben über


IOCTL_MOUNTDEV_QUERY_DEVICE_NAME IOCTL (mountmgr.h)

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

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

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Keine.

Eingabepufferlänge

Keine.

Ausgabepuffer

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

Länge des Ausgabepuffers

Parameters.DeviceIoControl.OutputBufferLength in der E/A-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 ist auf FIELD_OFFSET(MOUNTDEV_NAME, Name) + output-NameLength> oder alternativ auf output-NameLength> + sizeof(USHORT) festgelegt, wobei die Ausgabe auf den Puffer bei Irp-AssociatedIrp.SystemBuffer> verweist.

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

Wenn der Ausgabepuffer zu klein ist, um den Gerätenamen aufzunehmen, 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.

Hinweise

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

Weitere Informationen finden Sie unter Unterstützung von Bereitstellungs-Manager-Anforderungen in einem Speicherklassentreiber.

Anforderungen

Anforderung Wert
Header mountmgr.h (einschließlich Mountmgr.h)

Weitere Informationen

MOUNTDEV_NAME