Compartir a través de


Función WdfDeviceCreateSymbolicLink (wdfdevice.h)

[Se aplica a KMDF y UMDF]

El método WdfDeviceCreateSymbolicLink crea un vínculo simbólico a un dispositivo especificado.

Sintaxis

NTSTATUS WdfDeviceCreateSymbolicLink(
  [in] WDFDEVICE        Device,
  [in] PCUNICODE_STRING SymbolicLinkName
);

Parámetros

[in] Device

Identificador de un objeto de dispositivo de marco.

[in] SymbolicLinkName

Puntero a una estructura UNICODE_STRING que contiene un nombre visible para el usuario para el dispositivo.

Valor devuelto

Si la operación se realiza correctamente, WdfDeviceCreateSymbolicLink devuelve STATUS_SUCCCESS. Entre los valores devueltos adicionales se incluyen:

Código devuelto Descripción
STATUS_INSUFFICIENT_RESOURCES
El sistema no puede asignar espacio para almacenar el nombre del dispositivo.
 

El método podría devolver otros valores NTSTATUS.

Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.

Comentarios

Si un controlador crea un vínculo simbólico para un dispositivo, las aplicaciones pueden usar el nombre del vínculo simbólico para acceder al dispositivo. Normalmente, en lugar de proporcionar vínculos simbólicos, los controladores basados en marcos proporcionan interfaces de dispositivo que las aplicaciones pueden usar para acceder a sus dispositivos.

Si el dispositivo se quita inesperadamente (se quita sorpresa), el marco quita el vínculo simbólico al dispositivo. A continuación, el controlador puede usar el nombre del vínculo simbólico para una nueva instancia del dispositivo.

Ejemplos

En el ejemplo de código siguiente de un controlador KMDF se crea un nombre de dispositivo MS-DOS que una aplicación puede usar para acceder 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 controlador UMDF debe proporcionar un nombre de vínculo simbólico en el espacio de nombres global DosDevices , como se muestra en el ejemplo de código siguiente.

#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;
}

Para obtener información sobre los espacios de nombres globales y locales \DosDevices , vea Nombres de dispositivos MS-DOS locales y globales.

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado wdfdevice.h (incluya Wdf.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Consulte también

UNICODE_STRING