Функция WdfDeviceCreateSymbolicLink (wdfdevice.h)
[Относится к KMDF и UMDF]
Метод WdfDeviceCreateSymbolicLink создает символьную ссылку на указанное устройство.
Синтаксис
NTSTATUS WdfDeviceCreateSymbolicLink(
[in] WDFDEVICE Device,
[in] PCUNICODE_STRING SymbolicLinkName
);
Параметры
[in] Device
Дескриптор объекта устройства платформы.
[in] SymbolicLinkName
Указатель на структуру UNICODE_STRING , содержащую видимое пользователем имя устройства.
Возвращаемое значение
Если операция выполнена успешно, WdfDeviceCreateSymbolicLink возвращает STATUS_SUCCCESS. К дополнительным возвращаемым значениям относятся:
Код возврата | Описание |
---|---|
|
Система не может выделить место для хранения имени устройства. |
Метод может возвращать другие значения NTSTATUS.
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Комментарии
Если драйвер создает символьную ссылку для устройства, приложения могут использовать имя символьной ссылки для доступа к устройству. Как правило, вместо предоставления символических ссылок драйверы на основе платформы предоставляют интерфейсы устройств , которые приложения могут использовать для доступа к своим устройствам.
Если устройство удаляется неожиданно (с помощью неожиданного удаления), платформа удаляет символьную ссылку на устройство. Затем драйвер может использовать символьное имя ссылки для нового экземпляра устройства.
Примеры
В следующем примере кода из драйвера KMDF создается имя устройства MS-DOS , которое приложение может использовать для доступа к устройству.
#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;
}
Драйвер UMDF должен предоставить символьное имя ссылки в глобальном пространстве имен DosDevices , как показано в следующем примере кода.
#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;
}
Сведения о глобальных и локальных пространствах имен \DosDevices см. в разделе Локальные и глобальные имена устройств MS-DOS.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Минимальная версия UMDF | 2,0 |
Верхняя часть | wdfdevice.h (включая Wdf.h) |
Библиотека | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Правила соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |