Freigeben über


IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME IOCTL (mountdev.h)

IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME ermöglicht es Bereitstellungs-Manager-Clients, z. B. Geräte- oder Volumetreibern, einen Laufwerkbuchstaben oder Linknamen für die zugeordneten Volumes vorzuschlagen.

Die Unterstützung für diese IOCTL durch Einbindungs-Manager-Clients ist optional.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Keine.

Eingabepufferlänge

Keine.

Ausgabepuffer

Der Clienttreiber muss eine Struktur mit variabler Länge vom Typ MOUNTDEV_SUGGESTED_LINK_NAME am Anfang des Puffers unter Irp-AssociatedIrp.SystemBuffer> platzieren. Der Clienttreiber muss den vorgeschlagenen persistenten Namen an der Adresse einfügen, auf die der Name-Member dieser Struktur verweist.

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

Eingabe-/Ausgabepuffer

Länge des Eingabe-/Ausgabepuffers

Statusblock

Wenn der Vorgang erfolgreich ist, wird das Feld Information auf die Gesamtanzahl der zurückgegebenen Bytes und das Feld Status auf STATUS_SUCCESS festgelegt.

Wenn OutputBufferLength kleiner als sizeof(MOUNTDEV_SUGGESTED_LINK_NAME ist), wird das Statusfeld auf STATUS_INVALID_PARAMETER festgelegt.

Wenn OutputBufferLength kleiner als die Gesamtlänge der Ausgabedaten ist, wird das Feld Status auf STATUS_BUFFER_OVERFLOW und das Feld Information auf sizeof(MOUNTDEV_SUGGESTED_LINK_NAME) festgelegt.

Hinweise

Einige Einbindungs-Manager-Clients können ihre Laufwerkbuchstaben bei Neustarts des Systems ohne Hilfe des Bereitstellungs-Managers nachverfolgen. Solche Clients können als Reaktion auf diese IOCTL einen vorgeschlagenen Laufwerkbuchstabennamen an den Bereitstellungs-Manager senden. Der Bereitstellungs-Manager verwendet den vorgeschlagenen Namen, wenn die Datenbank des Bereitstellungs-Managers nicht bereits einen Namen für persistente Laufwerkbuchstaben für das Volume des Clients enthält. Andernfalls wird der Vorschlag ignoriert und der Laufwerkbuchstabename in der Datenbank für persistente Namen verwendet.

Laufwerkbuchstabennamen müssen den vollständigen Pfad des symbolischen Links im Objektnamespace enthalten und die herkömmliche MS-DOS-Syntax aufweisen. Der Laufwerkbuchstabe "D" muss beispielsweise wie folgt dargestellt werden: "\DosDevices\D:". Der alternative symbolische Linkpfad von "?? \D:" kann weder verwendet werden, noch können Abkürzungen des symbolischen Links wie "D:" verwendet werden.

Der Implementierer dieser Funktion darf keine Threadsynchronisierung durchführen und darf keine blockierenden und/oder IPC-Funktionsaufrufe (Interprocess Communication) ausführen.

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

Anforderungen

Anforderung Wert
Header mountdev.h (include Mountdev.h)

Weitere Informationen

MOUNTDEV_SUGGESTED_LINK_NAME