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 반환합니다. 그렇지 않으면 메서드는 다음 값 중 하나를 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
호출자가 입력 매개 변수에 잘못된 값을 지정했습니다. |
|
메모리 할당에 실패했습니다. |
이 메서드는 Winerror.h에 포함된 다른 값 중 하나를 반환할 수 있습니다.
설명
CreateSymbolicLinkWithReferenceString 은 IWDFDevice2 인터페이스가 나타내는 디바이스에 대해 기호 링크 이름 및 선택적으로 참조 문자열을 만듭니다. 드라이버가 CreateSymbolicLinkWithReferenceString을 호출한 후 애플리케이션은 기호 링크 이름을 사용하여 디바이스에 액세스할 수 있습니다.
디바이스 이름이 "\Device\MyDevice"라고 가정합니다. pSymbolicLink 매개 변수에 대해 "L"DeviceUserName"을 지정하여 디바이스에 대한 "DeviceUserName"의 기호 링크 이름을 만들 수 있습니다. pReferenceString 매개 변수에 "L"Instance3""을 지정하는 경우 \Device\MyDevice\Instance3에 대한 기호 링크를 만듭니다. 애플리케이션이 기호 링크 이름을 사용하여 디바이스를 열면 I/O 관리자가 \Device\MyDevice를 열고 \Instance3 문자열을 파일 이름으로 포함하는 WDM 파일 개체를 만듭니다. UMDF 기반 드라이버는 \Instance3 문자열을 파일 이름으로 포함하는 프레임워크에서 만든 파일 개체를 받습니다( IWDFFile::RetrieveFileName 참조).
일반적으로 프레임워크 기반 드라이버는 심볼 링크를 제공하는 대신 애플리케이션이 디바이스에 액세스하는 데 사용할 수 있는 디바이스 인터페이스를 제공합니다.
디바이스가 예기치 않게 제거되면(서프라이즈 제거) 프레임워크는 디바이스에 대한 기호 링크를 제거합니다. 그런 다음 드라이버는 디바이스의 새 instance 기호 링크 이름을 사용할 수 있습니다.
디바이스의 기호 링크 이름에 참조 문자열을 추가할 필요가 없는 경우 드라이버는 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 |