다음을 통해 공유


IWDFRemoteInterfaceInitialize::RetrieveSymbolicLink 메서드(wudfddi.h)

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

RetrieveSymbolicLink 메서드는 디바이스 인터페이스에 할당된 운영 체제가기호화된 링크 이름을 검색합니다.

통사론

HRESULT RetrieveSymbolicLink(
  [out, optional] PWSTR pSymbolicLink,
  [in, out]       DWORD *pdwSymbolicLinkLengthInChars
);

매개 변수

[out, optional] pSymbolicLink

기호 링크 이름을 나타내는 null종료된 유니코드 문자열을 수신하는 버퍼에 대한 포인터입니다. 필요한 버퍼 크기를 얻으려면 이 포인터를 NULL 설정합니다.

[in, out] pdwSymbolicLinkLengthInChars

호출자가 할당한 위치에 대한 포인터입니다. 입력에서 이 위치에는 pSymbolicLink 가리키는 버퍼의 호출자 제공 길이가 포함되어야 합니다. 출력 시 위치는 NULL 종료 문자를 포함하여 기호 링크 이름의 길이를 문자로 받습니다.

반환 값

RetrieveSymbolicLink 작업이 성공하면 S_OK 반환합니다. 그렇지 않으면 메서드가 다음 값을 반환할 수 있습니다.

반환 코드 묘사
E_NOT_SUFFICIENT_BUFFER
pSymbolicLink가 가리키는 버퍼가 너무 작습니다. 이 경우 프레임워크는 pdwSymbolicLinkLengthInChars가 가리키는 위치에 필요한 버퍼 크기를 .
 

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

발언

기호 링크 이름에는 추가된 백슬래시() 문자와 인스턴스별 참조 문자열이 포함될 수 있습니다.

일반적으로 드라이버는 다음과 같이 RetrieveSymbolicLink 두 번 호출해야 합니다.

  1. pSymbolicLink 매개 변수를 NULL RetrieveSymbolicLink호출하도록 설정합니다. pdwSymbolicLinkLengthInChars 가리키는 위치는 기호 링크 이름에 포함된 문자 수를 받습니다.
  2. 기호화된 링크 이름을 받을 수 있을 만큼 큰 버퍼를 할당합니다.
  3. RetrieveSymbolicLink 다시 호출하고 pSymbolicLink 매개 변수를 할당한 버퍼의 주소로 설정합니다.
RetrieveSymbolicLink 메서드에 대한 자세한 내용은 UMDF 기반 드라이버 디바이스 인터페이스 사용참조하세요.

예제

다음 코드 예제에서는 드라이버의 IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival 콜백 함수가 디바이스 인터페이스의 기호 링크 이름의 길이를 결정하고, 이름에 버퍼를 할당한 다음, 이름을 검색하는 방법을 보여줍니다.

void 
STDMETHODCALLTYPE
CMyDevice::OnRemoteInterfaceArrival(
    __in IWDFRemoteInterfaceInitialize  *FxRemoteInterfaceInit
    )
{
    HRESULT hr;
    INT BufferSize;
    hr= FxRemoteInterfaceInit->RetrieveSymbolicLink(NULL,
                                                    &BufferSize);
    if (FAILED(hr)) goto Error;
    hr = FxDriver->CreateWdfMemory(BufferSize, 
                                   NULL, 
                                   FxRemoteInterface, 
                                   &FxSymLinkBuffer);
    if (FAILED(hr)) goto Error;
    hr= FxRemoteInterfaceInit->RetrieveSymbolicLink(FxSymLinkBuffer->GetDataBuffer(NULL),
                                                    &BufferSize);
    if (FAILED(hr)) goto Error;
...
Error:
...
}

요구 사항

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

참고 항목

IWDFRemoteInterfaceInitialize

IWDFRemoteInterfaceInitialize::GetInterfaceGuid