사용자 도구

사이트 도구


kb:windowsnetworkmanagementapi

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

kb:windowsnetworkmanagementapi [2014/11/09 21:09] (현재)
줄 1: 줄 1:
 +====== Network Management API ======
 +윈도우즈에서 자주 사용하는 "​공유"​ 기능과 관련된 함수들이다.
 +
 +
 +====== 목록 ======
 +===== 지정된 컴퓨터의 공유 목록 표시하기 =====
 +<code cpp>
 +#include <​LM.h>​
 +#pragma comment(lib,​ "​Netapi32.lib"​)
 +
 +void show_share(const char* path)
 +{
 +    wchar_t lpszServer[1024+1] = {0, };
 +    ::​mbstowcs(lpszServer,​ path, 1024);
 +
 +    NET_API_STATUS res = 0;
 +
 +    do
 +    {
 +        PSHARE_INFO_1 pShareInfo, p;
 +        DWORD entries_read = 0, total_entries = 0, resume = 0;
 +
 +        res = ::​NetShareEnum (lpszServer, ​
 +            1, reinterpret_cast<​LPBYTE*>​(&​pShareInfo), ​
 +            0xFFFFFFFF, &​entries_read,​ &​total_entries,​ &​resume);​
 +
 +        if (res == ERROR_SUCCESS || res == ERROR_MORE_DATA)
 +        {
 +            p = pShareInfo;
 +
 +            for (DWORD i=1; i <= entries_read;​ i++, p++)
 +            {
 +                wprintf(L"​%s -- ", p->​shi1_netname);​
 +
 +                switch (p->​shi1_type)
 +                {
 +                    case STYPE_DISKTREE: ​ wprintf(L"​Disk drive"​);​ break;
 +                    case STYPE_PRINTQ: ​   wprintf(L"​Print queue"​);​ break;
 +                    case STYPE_DEVICE: ​   wprintf(L"​Communication device"​);​ break;
 +                    case STYPE_IPC: ​      ​wprintf(L"​Interprocess communication (IPC)"​);​ break;
 +                    case STYPE_SPECIAL: ​  ​wprintf(L"​Special share"​);​ break;
 +                    case STYPE_TEMPORARY:​ wprintf(L"​A temporary share"​);​ break;
 +                    default: ​             wprintf(L"​Unknown type"​);​ break;
 +                }
 +
 +                wprintf(L"​\n",​ p->​shi1_netname);​
 +            }
 +
 +            // Free the allocated buffer.
 +            ::​NetApiBufferFree(pShareInfo);​
 +        }
 +        else { wprintf(L"​Error:​ %ld\n",​ res); }
 +    } while (res==ERROR_MORE_DATA);​
 +}
 +
 +...
 +
 +show_share("​\\\\BACKUP_SERVER"​);​
 +</​code>​
 +
 +
 +====== 링크 ======
 +  * [[http://​msdn.microsoft.com/​library/​default.asp?​url=/​library/​en-us/​netmgmt/​netmgmt/​network_management.asp?​frame=true | MSDN > Network Management]] \\ Network Management API MSDN 페이지
 +  * [[http://​www.codeproject.com/​internet/​NetDemo.asp | A brief discussion on how to use three of the network management functions]] \\ NetShareEnum,​ NetConnectionEnum,​ NetFileEnum 함수의 사용법에 관한 튜토리얼
  
kb/windowsnetworkmanagementapi.txt · 마지막으로 수정됨: 2014/11/09 21:09 (바깥 편집)