다음을 통해 공유


IWDFDevice2::CreateSymbolicLinkWithReferenceString 메서드(wudfddi.h)

[경고: UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에는 새로운 기능이 추가되지 않으며 최신 버전의 Windows 10에서는 UMDF 1에 대한 지원이 제한되어 있습니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다. 자세한 내용은 UMDF시작 .]을 참조하세요.

CreateSymbolicLinkWithReferenceString 메서드는 디바이스에 대한 기호 링크 이름 및 선택적으로 참조 문자열을 만듭니다.

통사론

HRESULT CreateSymbolicLinkWithReferenceString(
  [in]           PCWSTR pSymbolicLink,
  [in, optional] PCWSTR pReferenceString
);

매개 변수

[in] pSymbolicLink

디바이스의 사용자가 볼 수 있는 이름이 되는 NULL종료된 문자열에 대한 포인터입니다. 기호 링크 이름은 전역 DosDevices 네임스페이스에 있어야 합니다.

[in, optional] pReferenceString

애플리케이션이 pSymbolicLink 매개 변수가 지정하는 기호 이름을 사용할 때 Windows에서 디바이스 이름에 추가하는 NULL종결 문자 문자열에 대한 포인터입니다. 자세한 내용은 다음 설명 섹션을 참조하세요. 이 매개 변수는 선택 사항이며 NULL 수 있습니다.

반환 값

CreateSymbolicLinkWithReferenceString 작업이 성공하면 S_OK 반환합니다. 그렇지 않으면 메서드는 다음 값 중 하나를 반환할 수 있습니다.

반환 코드 묘사
E_INVALIDARG
호출자가 입력 매개 변수에 대해 잘못된 값을 지정했습니다.
E_OUTOFMEMORY
메모리 할당에 실패했습니다.
 

이 메서드는 Winerror.h에 포함된 다른 값 중 하나를 반환할 수 있습니다.

발언

CreateSymbolicLinkWithReferenceStringIWDFDevice2 인터페이스가 나타내는 디바이스에 대한 기호 링크 이름 및 선택적으로 참조 문자열을 만듭니다. 드라이버가 createSymbolicLinkWithReferenceString 호출한 후 애플리케이션은 기호 링크 이름을 사용하여 디바이스에 액세스할 수 있습니다.

디바이스 이름이 "\Device\MyDevice"라고 가정합니다. pSymbolicLink 매개 변수에 "L"DeviceUserName"을 지정하여 디바이스에 대한 "DeviceUserName"의 기호 링크 이름을 만들 수 있습니다. pReferenceString 매개 변수에 "L"Instance3"을 지정하는 경우 \Device\MyDevice\Instance3에 대한 기호 링크를 만듭니다. 응용 프로그램에서 기호 링크 이름을 사용하여 디바이스를 열면 I/O 관리자가 \Device\MyDevice를 열고 \Instance3 문자열을 파일 이름으로 포함하는 WDM 파일 개체를 만듭니다. UMDF 기반 드라이버는 \Instance3 문자열을 파일 이름으로 포함하는 프레임워크에서 만든 파일 개체를 받습니다(IWDFFile::RetrieveFileName참조).

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

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

디바이스의 기호 링크 이름에 참조 문자열을 추가할 필요가 없는 경우 드라이버는 CreateSymbolicLinkWithReferenceString대신 IWDFDevice::CreateSymbolicLink 호출할 수 있습니다.

예제

다음 줄은 전역 DosDevices 네임스페이스에 기호화된 링크 이름 접두사를 정의합니다.

#define SYMBOLIC_LINK_NAME_PREFIX   L"\\DosDevices\\Global\\"

다음 코드 예제에서는 기호 이름 문자열을 만들고, IWDFDevice2 인터페이스를 가져온 다음, CreateSymbolicLinkWithReferenceString 호출합니다.


    IWDFDevice2 *pDevice2 = NULL;
    HRESULT hr;

    //
    // Create symbolic link name string.
    //
    hr = StringCchPrintf(portFullName,
                         portFullNameLength,
                         L"%ws%ws",
                         SYMBOLIC_LINK_NAME_PREFIX,
                         portName);
    if (FAILED(hr))
    {
        goto Exit;
    }

    //
    // Get a pointer to the IWDFDevice2 interface.
    //
    hr = pIWDFDevice->QueryInterface(__uuidof(IWDFDevice2),
                                     (void**) &pDevice2);
    if (SUCCEEDED(hr)) 
    {
    hr = pDevice2->CreateSymbolicLinkWithReferenceString(portFullName,
                                                         portCountString);
    if (FAILED(hr))
        {
            goto Exit;
        }
        SAFE_RELEASE(pDevice2);
    }

요구 사항

요구
지원 종료 UMDF 2.0 이상에서는 사용할 수 없습니다.
대상 플랫폼 바탕 화면
최소 UMDF 버전 1.9
헤더 wudfddi.h(Wudfddi.h 포함)
DLL WUDFx.dll

참고 항목

IWDFDevice2

IWDFDevice::CreateSymbolicLink