GetServiceA 함수(nspapi.h)

GetService 함수는 기본 네임스페이스 집합 또는 지정된 네임스페이스의 컨텍스트에서 네트워크 서비스에 대한 정보를 검색합니다. 네트워크 서비스는 형식 및 이름으로 지정됩니다. 서비스에 대한 정보는 NS_SERVICE_INFO 데이터 구조 집합으로 가져옵니다.

참고GetService 함수는 Windows 소켓 1.1 사양에 대한 Microsoft 전용 확장입니다. 이 함수는 사용되지 않습니다. Windows 소켓 1.1 개발자의 편의를 위해 이 참조 자료가 포함되어 있습니다.
 
참고프로토콜 독립적 이름 확인 에 자세히 설명된 함수는 Windows 소켓 2에서 동등한 기능을 제공합니다.
 

구문

INT GetServiceA(
  [in]           DWORD                dwNameSpace,
  [in]           LPGUID               lpGuid,
  [in]           LPSTR                lpServiceName,
  [in]           DWORD                dwProperties,
  [out]          LPVOID               lpBuffer,
  [in, out]      LPDWORD              lpdwBufferSize,
  [in, optional] LPSERVICE_ASYNC_INFO lpServiceAsyncInfo
);

매개 변수

[in] dwNameSpace

운영 체제에서 지정된 네트워크 서비스에 대한 정보를 쿼리해야 하는 네임스페이스 또는 기본 네임스페이스 집합입니다.

다음 상수 중 하나를 사용하여 네임스페이스를 지정합니다.

의미
NS_DEFAULT
기본 네임스페이스 집합입니다. 운영 체제는 이 집합 내의 각 네임스페이스를 쿼리합니다. 기본 네임스페이스 집합에는 일반적으로 시스템에 설치된 모든 네임스페이스가 포함됩니다. 그러나 시스템 관리자는 집합에서 특정 네임스페이스를 제외할 수 있습니다. NS_DEFAULT 대부분의 애플리케이션이 dwNameSpace에 사용해야 하는 값입니다.
NS_DNS
호스트 이름 확인을 위해 인터넷에서 사용되는 도메인 이름 시스템입니다.
NS_NETBT
TCP/IP 계층을 통해 NetBIOS. 모든 운영 체제는 NetBIOS에 컴퓨터 이름을 등록합니다. 이 네임스페이스는 이 등록을 사용하여 컴퓨터 이름을 IP 주소로 resolve 데 사용됩니다. NS_NETBT WINS 서버에 액세스하여 해결을 수행할 수 있습니다.
NS_SAP
NetWare Service Advertising Protocol입니다. 적절한 경우 NetWare 바인더리에 액세스할 수 있습니다. NS_SAP 서비스 등록을 허용하는 동적 네임스페이스입니다.
NS_TCPIP_HOSTS
systemroot>\system32\drivers\etc\hosts 파일에서 <호스트 이름 및 IP 주소를 찾습니다.
NS_TCPIP_LOCAL
로컬 호스트 이름과의 비교를 포함하여 로컬 TCP/IP 이름 확인 메커니즘은 호스트와 IP 주소 매핑의 캐시에서 호스트 이름 및 IP 주소를 조회합니다.
 

GetService에 대한 대부분의 호출은 특수 값 NS_DEFAULT 사용해야 합니다. 이렇게 하면 클라이언트가 인터넷 작업에서 사용 가능한 네임스페이스를 모르고 으로 가져올 수 있습니다. 시스템 관리자가 네임스페이스 액세스를 결정합니다. 네임스페이스는 클라이언트가 변경 내용을 인식하지 않고도 오고 갈 수 있습니다.

[in] lpGuid

네트워크 서비스의 형식을 지정하는 GUID(Globally Unique Identifier)에 대한 포인터입니다. Svcguid.h 헤더 파일에는 DNS 및 SAP 네임스페이스 내에서 잘 알려진 여러 서비스의 GUID 서비스 유형이 포함됩니다.

Svcguid.h 헤더 파일은 Winsock2.h 헤더 파일에 자동으로 포함되지 않습니다.

[in] lpServiceName

서비스 이름을 고유하게 나타내는 0으로 끝나는 문자열에 대한 포인터입니다. 예: "MY SNA SERVER."

[in] dwProperties

함수가 검색하는 서비스 정보를 지정하는 비트 플래그 집합입니다. PROP_ALL 이외의 각 비트 플래그 상수는 SERVICE_INFO 데이터 구조의 특정 멤버에 해당합니다. 플래그가 설정되면 함수는 *lpBuffer에 저장된 데이터 구조체의 해당 멤버에 정보를 넣습니다. 다음 비트 플래그가 정의됩니다.

의미
PROP_COMMENT
이 플래그를 설정하면 함수는 *lpBuffer에 저장된 데이터 구조체의 lpComment 멤버에 데이터를 저장합니다.
PROP_LOCALE
이 플래그를 설정하면 함수는 *lpBuffer에 저장된 데이터 구조체의 lpLocale 멤버에 데이터를 저장합니다.
PROP_DISPLAY_HINT
이 플래그를 설정하면 함수는 *lpBuffer에 저장된 데이터 구조체의 dwDisplayHint 멤버에 데이터를 저장합니다.
PROP_VERSION
이 플래그를 설정하면 함수는 *lpBuffer에 저장된 데이터 구조체의 dwVersion 멤버에 데이터를 저장합니다.
PROP_START_TIME
이 플래그를 설정하면 함수는 *lpBuffer에 저장된 데이터 구조체의 dwTime 멤버에 데이터를 저장합니다.
PROP_MACHINE
이 플래그를 설정하면 함수는 *lpBuffer에 저장된 데이터 구조체의 lpMachineName 멤버에 데이터를 저장합니다.
PROP_ADDRESSES
이 플래그를 설정하면 함수는 *lpBuffer에 저장된 데이터 구조체의 lpServiceAddress 멤버에 데이터를 저장합니다.
PROP_SD
이 플래그를 설정하면 함수는 *lpBuffer에 저장된 데이터 구조체의 ServiceSpecificInfo 멤버에 데이터를 저장합니다.
PROP_ALL
이 플래그를 설정하면 함수는 *lpBuffer에 저장된 데이터 구조체의 모든 멤버에 데이터를 저장합니다.

[out] lpBuffer

NS_SERVICE_INFO 구조체 및 관련 서비스 정보의 배열을 수신하는 버퍼에 대한 포인터입니다. 각 NS_SERVICE_INFO 구조에는 특정 네임스페이스의 컨텍스트에서 서비스 정보가 포함됩니다. dwNameSpace가 NS_DEFAULT 경우 함수는 둘 이상의 구조를 버퍼에 저장합니다. 그렇지 않으면 하나의 구조만 저장됩니다.

NS_SERVICE_INFO 구조체에는 SERVICE_INFO 구조체가 포함됩니다. 이러한 SERVICE_INFO 구조체의 멤버는 dwProperties 매개 변수에 설정된 비트 플래그를 기반으로 유효한 데이터를 포함합니다. 멤버의 해당 비트 플래그가 dwProperties에 설정되지 않은 경우 멤버의 값은 정의되지 않습니다.

함수는 버퍼의 시작 부분에서 시작하여 NS_SERVICE_INFO 구조를 연속 배열에 저장합니다. 포함된 SERVICE_INFO 구조체의 포인터는 NS_SERVICE_INFO구조체 의 끝과 버퍼 끝 사이에 버퍼에 저장된 정보를 가리킵니다.

[in, out] lpdwBufferSize

입력 시 lpBuffer가 가리키는 버퍼의 크기(바이트)를 포함하는 변수에 대한 포인터입니다. 출력 시 이 변수에는 요청된 정보를 저장하는 데 필요한 바이트 수가 포함됩니다. 이 출력 값이 입력 값보다 크면 버퍼 크기가 부족하여 함수가 실패했습니다.

[in, optional] lpServiceAsyncInfo

다음에 사용하도록 예약됩니다. NULL로 설정해야 합니다.

반환 값

함수가 성공하면 반환 값은 *lpBuffer에 저장된 NS_SERVICE_INFO 구조체의 수입니다. 0은 구조체가 저장되지 않음을 나타냅니다.

함수가 실패하면 반환 값은 SOCKET_ERROR( – 1)입니다. 확장 오류 정보를 얻으려면 다음 확장 오류 값 중 하나를 반환하는 GetLastError를 호출합니다.

오류 코드 의미
ERROR_INSUFFICIENT_BUFFER
lpBuffer가 가리키는 버퍼가 너무 작아서 요청된 모든 정보를 받을 수 없습니다. *lpdwBufferSize에서 반환된 값만큼 버퍼를 사용하여 함수를 호출합니다.
ERROR_SERVICE_NOT_FOUND
지정된 서비스를 찾을 수 없거나 지정된 네임스페이스를 사용하지 않습니다. 이 경우 함수 반환 값은 0입니다.

설명

참고

nspapi.h 헤더는 GETService를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 nspapi.h
라이브러리 Mswsock.lib
DLL Mswsock.dll

추가 정보

NS_SERVICE_INFO

SERVICE_INFO

SetService

Winsock 함수

Winsock 참조