다음을 통해 공유


GetServiceA 함수(nspapi.h)

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

참고GetService 함수는 Windows 소켓 1.1 사양에 대한 Microsoft 관련 확장입니다. 이 함수는 사용되지 않습니다. Windows 소켓 1.1 개발자의 편의를 위해 이 참조 자료가 포함되어 있습니다.
 
 

통사론

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 주소로 확인하는 데 사용됩니다. NS_NETBT WINS 서버에 액세스하여 해결을 수행할 수 있습니다.
NS_SAP
NetWare Service Advertising 프로토콜입니다. 적절한 경우 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 참조