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
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) |