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 반환합니다. 그렇지 않으면 메서드는 다음 값을 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
pSymbolicLink가 가리키는 버퍼가 너무 작습니다. 이 경우 프레임워크는 pdwSymbolicLinkLengthInChars 가 가리키는 위치에 필요한 버퍼 크기를 저장합니다. |
이 메서드는 Winerror.h에 포함된 다른 값 중 하나를 반환할 수 있습니다.
설명
기호 링크 이름에는 추가된 백슬래시() 문자와 instance 특정 참조 문자열이 포함될 수 있습니다.
일반적으로 드라이버는 다음과 같이 RetrieveSymbolicLink 를 두 번 호출해야 합니다.
- pSymbolicLink 매개 변수를 NULL로 설정하고 RetrieveSymbolicLink를 호출합니다. pdwSymbolicLinkLengthInChars가 가리키는 위치는 기호 링크 이름에 포함된 문자 수를 받습니다.
- 기호 링크 이름을 받을 수 있을 만큼 큰 버퍼를 할당합니다.
- RetrieveSymbolicLink를 다시 호출하고 pSymbolicLink 매개 변수를 할당한 버퍼의 주소로 설정합니다.
예제
다음 코드 예제에서는 드라이버의 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 |