WNetGetResourceInformationA 함수(winnetwk.h)
네트워크 리소스에 대한 원격 경로와 함께 제공되는 경우 WNetGetResourceInformation 함수는 리소스를 소유하는 네트워크 공급자를 식별하고 리소스 유형에 대한 정보를 가져옵니다. 함수는 일반적으로 WNetGetResourceParent 함수와 함께 사용하여 사용자가 입력한 네트워크 경로를 구문 분석하고 해석합니다.
구문
DWORD WNetGetResourceInformationA(
[in] LPNETRESOURCEA lpNetResource,
[out] LPVOID lpBuffer,
[in, out] LPDWORD lpcbBuffer,
[out] LPSTR *lplpSystem
);
매개 변수
[in] lpNetResource
정보가 필요한 네트워크 리소스를 지정하는 NETRESOURCE 구조체에 대한 포인터입니다.
구조체의 lpRemoteName 멤버는 리소스의 원격 경로 이름(일반적으로 사용자가 입력한 이름)을 지정해야 합니다. lpProvider 및 dwType 멤버도 채워야 합니다. 특히 dwType 멤버를 지정하지 않으면 이 작업이 메모리를 많이 사용할 수 있기 때문입니다. 이러한 멤버의 값을 모르는 경우 NULL로 설정해야 합니다. NETRESOURCE 구조체의 다른 모든 멤버는 무시됩니다.
[out] lpBuffer
결과를 받을 버퍼에 대한 포인터입니다. 반환이 성공적이면 버퍼의 첫 번째 부분은 입력 리소스 종류와 관련된 시스템 함수를 통하지 않고 WNet 함수를 통해 액세스되는 입력 리소스 경로의 해당 부분을 나타내는 NETRESOURCE 구조입니다. (버퍼의 나머지 부분에는 NETRESOURCE 구조체의 멤버가 가리키는 가변 길이 문자열이 포함됩니다.)
예를 들어 입력 원격 리소스 경로가 \server\share\dir1\dir2인 경우 출력 NETRESOURCE 구조에는 \server\share 리소스에 대한 정보가 포함됩니다. 경로의 \dir1\dir2 부분은 파일 관리 함수를 통해 액세스됩니다. NETRESOURCE의 lpRemoteName, lpProvider, dwType, dwDisplayType 및 dwUsage 멤버가 반환되고 다른 모든 멤버가 NULL로 설정됩니다.
lpRemoteName 멤버는 WNetEnumResource 함수에 의해 열거형에서 반환된 것과 동일한 구문으로 반환됩니다. 이렇게 하면 호출자가 문자열 비교를 수행하여 WNetGetResourceInformation 에 전달된 리소스가 WNetEnumResource에 대한 별도의 호출에서 반환된 리소스와 동일한지 여부를 확인할 수 있습니다.
[in, out] lpcbBuffer
항목에서 lpBuffer 버퍼의 크기를 바이트 단위로 지정하는 위치에 대한 포인터입니다. 할당하는 버퍼는 NETRESOURCE 구조체와 해당 멤버가 가리키는 문자열을 포함할 수 있을 만큼 커야 합니다. 버퍼가 결과에 비해 너무 작으면 이 위치는 필요한 버퍼 크기를 수신하고 함수는 ERROR_MORE_DATA 반환합니다.
[out] lplpSystem
함수가 성공적으로 반환되면 이 매개 변수는 시스템 함수를 통해 액세스되는 리소스 부분을 지정하는 출력 버퍼의 문자열을 가리킵니다. (WNet 함수가 아닌 리소스 종류와 관련된 함수에만 적용됩니다.)
예를 들어 입력 원격 리소스 이름이 \server\share\dir1\dir2인 경우 출력 NETRESOURCE 구조체의 lpRemoteName 멤버는 \server\share를 가리킵니다. 또한 lplpSystem 매개 변수는 \dir1\dir2를 가리킵니다. 두 문자열 모두 lpBuffer 매개 변수가 가리키는 버퍼에 저장됩니다.
반환 값
함수가 성공하면 반환 값이 NO_ERROR.
함수가 실패하면 반환 값은 다음 값 중 하나와 같은 시스템 오류 코드입니다.
반환 코드 | 설명 |
---|---|
|
입력 lpRemoteName 멤버는 네트워크에 대한 기존 네트워크 리소스가 아닙니다. |
|
입력 dwType 멤버가 lpRemoteName 멤버에 지정된 리소스 형식과 일치하지 않습니다. |
|
네트워크 관련 오류가 발생했습니다. WNetGetLastError를 호출하여 오류에 대한 설명을 가져옵니다. |
|
lpBuffer 매개 변수가 가리키는 버퍼가 너무 작습니다. |
|
네트워크를 사용할 수 없습니다. |
설명
참고
winnetwk.h 헤더는 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 WNetGetResourceInformation을 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | winnetwk.h |
라이브러리 | Mpr.lib |
DLL | Mpr.dll |