RpcNsBindingImportNext 함수(rpcnsi.h)

RpcNsBindingImportNext 함수는 인터페이스(및 필요에 따라 이름 서비스 데이터베이스의 개체)를 조회하고 호환되는 서버의 바인딩 핸들을 반환합니다(있는 경우).

참고 이 함수는 Windows Vista 이상 운영 체제에서 지원되지 않습니다.
 

구문

RPC_STATUS RpcNsBindingImportNext(
  RPC_NS_HANDLE      ImportContext,
  RPC_BINDING_HANDLE *Binding
);

매개 변수

ImportContext

RpcNsBindingImportBegin 함수에서 반환된 이름 서비스 핸들입니다.

Binding

서버에 대한 클라이언트 호환 서버 바인딩 핸들에 대한 포인터를 반환합니다.

반환 값

의미
RPC_S_OK
호출이 성공했습니다.
RPC_S_NO_MORE_BINDINGS
더 이상 바인딩이 없습니다.
RPC_S_NAME_SERVICE_UNAVAILABLE
이름 서비스를 사용할 수 없습니다.
 
참고 유효한 오류 코드 목록은 RPC 반환 값을 참조하세요.
 

설명

RpcNsBindingImportNext 함수는 RpcNsBindingImportBegin 함수에서 IfSpecObjUuid 매개 변수로 지정된 인터페이스 및 개체 UUID를 제공하는 서버에 대해 클라이언트 호환 서버 바인딩 핸들 하나를 반환합니다. 함수는 서버와 직접 통신하지 않고 name-service 데이터베이스와만 통신합니다.

Windows 2000에서 적용되는 RPC 환경은 Active Directory를 이름 서비스 데이터베이스로 사용하고 런타임 환경에서 검색을 수행하는 순서는 다음과 같습니다.

  • 로컬 캐시에서 검색합니다. 항목이 없으면
  • Active Directory에서 검색합니다. 항목이 없으면
  • 도메인의 다른 모든 디렉터리 서비스에 브로드캐스트 요청을 보냅니다.

    항목이 Active Directory에 있지만 항목과 관련된 정보가 없는 경우 런타임 환경에서 이 브로드캐스트 요청을 실행하지 않습니다.

반환되는 호환되는 바인딩 핸들에는 항상 개체 UUID가 포함되며, 값은 RpcNsBindingImportBegin 함수의 ObjUuid 매개 변수에 따라 달라집니다. null이 아닌 개체 UUID를 지정한 경우 반환된 바인딩 핸들에는 해당 개체 UUID가 포함됩니다. 그러나 null 개체 UUID 또는 null 값을 지정한 경우 반환되는 개체 UUID는 다음과 같은 가능성의 결과입니다.
  • 서버에서 개체 UUID를 내보내지 않은 경우 반환된 바인딩 핸들에는 nil 개체 UUID가 포함됩니다.
  • 서버에서 하나의 개체 UUID를 내보낸 경우 반환된 바인딩 핸들에는 해당 개체 UUID가 포함됩니다.
  • 서버에서 여러 개체 UUID를 내보낸 경우 반환된 바인딩 핸들에는 개체 UUID 중 하나가 포함됩니다. 다음 가져오기 작업은 반환된 개체 UUID를 비결정적 방식으로 선택합니다. 따라서 단일 서버 항목에서 호환되는 각 바인딩 핸들에 대해 다른 개체 UUID를 반환할 수 있습니다.
RpcNsBindingImportNext 함수는 찾은 호환되는 바인딩 핸들에서 하나의 서버 바인딩 핸들을 선택하고 반환합니다. 클라이언트 애플리케이션은 해당 바인딩 핸들을 사용하여 서버에 대한 원격 프로시저 호출을 시도할 수 있습니다. 클라이언트가 서버와의 관계를 설정하지 못하면 RpcNsBindingImportNext를 다시 호출할 수 있습니다.

클라이언트가 RpcNsBindingImportNext를 호출할 때마다 함수는 다른 서버 바인딩 핸들을 반환합니다. 반환된 바인딩 핸들의 순서가 지정되지 않습니다. 클라이언트 애플리케이션은 RpcNsBindingInqEntryName 함수를 호출하여 바인딩 핸들이 제공된 항목 이름에서 name-service 데이터베이스를 가져옵니다. 검색이 이름 서비스 데이터베이스의 끝에 도달하면 RpcNsBindingInqEntryName은 RPC_S_NO_MORE_BINDINGS 상태 반환하고 NULL의 바인딩 매개 변수 값을 반환합니다.

RpcNsBindingImportNext 함수는 반환된 Binding 매개 변수에서 참조하는 데이터에 대한 스토리지를 할당합니다. 클라이언트 애플리케이션이 바인딩 핸들로 완료되면 RpcBindingFree를 호출하여 스토리지 할당을 취소해야 합니다. RpcNsBindingImportNext에 대한 각 호출에는 RpcBindingFree에 대한 해당 호출이 필요합니다.

클라이언트는 가져오기 컨텍스트를 삭제 하는 RpcNsBindingImportDone 함수를 호출해야 합니다. 또한 클라이언트는 RpcNsBindingImportDone을 호출한 후 RpcNsBindingImportBegin을 호출하여 호환되는 서버에 대한 새 검색을 시작합니다. 반환되는 바인딩 핸들의 순서는 새 검색마다 다르기 때문에 애플리케이션이 실행될 때마다 바인딩 핸들이 애플리케이션에 반환되는 순서가 다를 수 있습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 rpcnsi.h(Rpc.h 포함)
라이브러리 Rpcns4.lib
DLL Rpcns4.dll

추가 정보

RpcBindingFree

RpcNsBindingImportBegin

RpcNsBindingImportDone

RpcNsBindingInqEntryName

RpcNsBindingLookupBegin

RpcNsBindingLookupDone

RpcNsBindingLookupNext

RpcNsBindingSelect