IOCTL_MOUNTDEV_QUERY_DEVICE_NAME IOCTL (mountmgr.h)
Dopo aver ricevuto 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 di dispositivo sarà "\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 Nome membro della 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 deve essere maggiore o uguale a sizeof(MOUNTDEV_NAME)
.
Blocco di stato
Il campo Informazioni è impostato su FIELD_OFFSET(MOUNTDEV_NAME, Nome) + output->NameLength o in alternativa, output->NameLength + sizeof(USHORT), dove l'output punta al buffer in corrispondenza 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.
Osservazioni
Come procedura consigliata, l'implementatore non deve eseguire la sincronizzazione dei thread e non deve effettuare chiamate di funzione IPC (Interprocess Communication).
Per altre informazioni, vedere Supporto delle richieste di Gestione montaggio in un driver di classe di archiviazione.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | mountmgr.h (include Mountmgr.h) |