IOCTL_MOUNTDEV_QUERY_DEVICE_NAME IOCTL (mountmgr.h)
Al momento della ricezione di questo IOCTL, un driver client deve fornire il nome (non persistente) del dispositivo (o della destinazione) per il volume. Il gestore di montaggio usa il nome del dispositivo restituito dal client come destinazione di un collegamento simbolico. Un esempio di nome del dispositivo è "\Device\HarddiskVolume1".
Il supporto per questo IOCTL dai client di gestione montaggio è obbligatorio.
Codice principale
Buffer di input
Nessuno.
Lunghezza del buffer di input
Nessuno.
Buffer di output
Il client di gestione montaggio restituisce una struttura a lunghezza variabile di tipo MOUNTDEV_NAME all'inizio del buffer in Irp-AssociatedIrp.SystemBuffer>. Il nome del dispositivo deve essere inserito nell'indirizzo a cui punta il membro Name di questa struttura.
Lunghezza del buffer di output
Parameters.DeviceIoControl.OutputBufferLength nella posizione dello stack I/O di IRP indica le dimensioni, in byte, del buffer di output, che devono essere maggiori o uguali a sizeof(MOUNTDEV_NAME)
.
Blocco dello stato
Il campo Informazioni è impostato su FIELD_OFFSET(MOUNTDEV_NAME, Name) + output-NameLength> o in alternativa, output-NameLength> + sizeof(USHORT), dove l'output punta al buffer in Irp-AssociatedIrp.SystemBuffer>.
Se l'operazione ha esito positivo, il client di gestione montaggio deve impostare il campo Informazioni sulla lunghezza della stringa con terminazione NULL contenente il nome del dispositivo e il campo Stato su STATUS_SUCCESS.
Se il buffer di output è troppo piccolo per contenere il nome del dispositivo, il client di gestione montaggio deve impostare il campo Informazioni su sizeof(MOUNTDEV_NAME)
e il campo Stato su STATUS_BUFFER_OVERFLOW. Inoltre, il client di gestione montaggio compila il membro NameLength della struttura MOUNTDEV_NAME .
Commenti
Come procedura consigliata, l'implementatore non deve eseguire la sincronizzazione dei thread e non deve eseguire chiamate di funzione di blocco e/o interprocess Communication (IPC).
Per altre informazioni, vedere Supporto delle richieste di Mount Manager in un driver di classe di archiviazione.
Requisiti
Requisito | Valore |
---|---|
Intestazione | mountmgr.h (include Mountmgr.h) |