WdfDeviceCreateSymbolicLink 함수(wdfdevice.h)

[KMDF 및 UMDF에 적용]

WdfDeviceCreateSymbolicLink 메서드는 지정된 디바이스에 대한 기호 링크를 만듭니다.

구문

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

매개 변수

[in] Device

프레임워크 디바이스 개체에 대한 핸들입니다.

[in] SymbolicLinkName

디바이스의 사용자 표시 이름을 포함하는 UNICODE_STRING 구조체에 대한 포인터입니다.

반환 값

작업이 성공하면 WdfDeviceCreateSymbolicLink 는 STATUS_SUCCCESS 반환합니다. 추가 반환 값은 다음과 같습니다.

반환 코드 설명
STATUS_INSUFFICIENT_RESOURCES
시스템에서 디바이스 이름을 저장할 공간을 할당할 수 없습니다.
 

메서드는 다른 NTSTATUS 값을 반환할 수 있습니다.

드라이버가 잘못된 개체 핸들을 제공하는 경우 버그 검사 발생합니다.

설명

드라이버가 디바이스에 대한 기호 링크를 만드는 경우 애플리케이션은 기호 링크 이름을 사용하여 디바이스에 액세스할 수 있습니다. 일반적으로 프레임워크 기반 드라이버는 심볼 링크를 제공하는 대신 애플리케이션이 디바이스에 액세스하는 데 사용할 수 있는 디바이스 인터페이스를 제공합니다.

디바이스가 예기치 않게 제거되면(서프라이즈 제거) 프레임워크는 디바이스에 대한 기호 링크를 제거합니다. 그런 다음 드라이버는 디바이스의 새 instance 기호 링크 이름을 사용할 수 있습니다.

예제

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)

추가 정보

UNICODE_STRING