Funzione WdfDeviceCreateSymbolicLink (wdfdevice.h)
[Si applica a KMDF e UMDF]
Il metodo WdfDeviceCreateSymbolicLink crea un collegamento simbolico a un dispositivo specificato.
Sintassi
NTSTATUS WdfDeviceCreateSymbolicLink(
[in] WDFDEVICE Device,
[in] PCUNICODE_STRING SymbolicLinkName
);
Parametri
[in] Device
Handle per un oggetto dispositivo framework.
[in] SymbolicLinkName
Puntatore a una struttura UNICODE_STRING contenente un nome visibile dall'utente per il dispositivo.
Valore restituito
Se l'operazione ha esito positivo, WdfDeviceCreateSymbolicLink restituisce STATUS_SUCCCESS. I valori restituiti aggiuntivi includono:
Codice restituito | Descrizione |
---|---|
|
Il sistema non può allocare spazio per archiviare il nome del dispositivo. |
Il metodo potrebbe restituire altri valori NTSTATUS.
Un controllo di bug si verifica se il driver fornisce un handle di oggetti non valido.
Commenti
Se un driver crea un collegamento simbolico per un dispositivo, le applicazioni possono usare il nome di collegamento simbolico per accedere al dispositivo. In genere, anziché fornire collegamenti simbolici , i driver basati su framework forniscono interfacce di dispositivo che le applicazioni possono usare per accedere ai propri dispositivi.
Se il dispositivo viene rimosso in modo imprevisto (rimosso a sorpresa), il framework rimuove il collegamento simbolico al dispositivo. Il driver può quindi usare il nome del collegamento simbolico per una nuova istanza del dispositivo.
Esempio
L'esempio di codice seguente da un driver KMDF crea un nome di dispositivo MS-DOS che un'applicazione può usare per accedere a un dispositivo.
#define DOS_DEVICE_NAME L"\\DosDevices\\MyDevice"
DECLARE_CONST_UNICODE_STRING(dosDeviceName, DOS_DEVICE_NAME);
NTSTATUS status;
status = WdfDeviceCreateSymbolicLink(
controlDevice,
&dosDeviceName
);
if (!NT_SUCCESS(status)) {
goto Error;
}
Un driver UMDF deve fornire un nome di collegamento simbolico nello spazio dei nomi DosDevices globale, come illustrato nell'esempio di codice seguente.
#define DOS_DEVICE_NAME L"\\DosDevices\\Global\\MyDevice"
DECLARE_CONST_UNICODE_STRING(dosDeviceName, DOS_DEVICE_NAME);
NTSTATUS status;
status = WdfDeviceCreateSymbolicLink(
controlDevice,
&dosDeviceName
);
if (!NT_SUCCESS(status)) {
goto Error;
}
Per informazioni sugli spazi dei nomi globale e locale \DosDevices , vedere Nomi dei dispositivi MS-DOS locali e globali.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Versione UMDF minima | 2,0 |
Intestazione | wdfdevice.h (includere Wdf.h) |
Libreria | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Regole di conformità DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |