RpcNsBindingExportA 함수(rpcnsi.h)
RpcNsBindingExport 함수는 여러 바인딩 핸들과 서버에 대한 여러 개체를 사용하여 이름 서비스 데이터베이스 항목을 설정합니다.
통사론
RPC_STATUS RpcNsBindingExportA(
unsigned long EntryNameSyntax,
RPC_CSTR EntryName,
RPC_IF_HANDLE IfSpec,
RPC_BINDING_VECTOR *BindingVec,
UUID_VECTOR *ObjectUuidVec
);
매개 변수
EntryNameSyntax
EntryName구문입니다.
레지스트리 값 항목 HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\NameService\DefaultSyntax지정된 구문을 사용하려면 RPC_C_NS_SYNTAX_DEFAULT 값을 제공합니다.
EntryName
바인딩 핸들 및 개체 UUID를 내보낼 항목 이름에 대한 포인터입니다. null 또는 빈 문자열을 제공할 수 없습니다. 클라이언트와 서버는 모두 동일한 항목 이름을 사용해야 합니다.
IfSpec
내보낼 인터페이스를 지정하는 스텁 생성 데이터 구조입니다. null 값은 내보낼 바인딩 핸들이 없음을 나타내며(개체 UUID만 내보낼 수 있음) BindingVec 무시되는
BindingVec
내보낼 서버 바인딩에 대한 포인터입니다. null 값은 내보낼 바인딩 핸들이 없음을 나타냅니다(개체 UUID만 내보낼 수 있음).
ObjectUuidVec
서버에서 제공하는 개체 UUID의 벡터에 대한 포인터입니다. 서버 애플리케이션은 이 벡터를 생성합니다. null 값은 내보낼 개체 UUID가 없음을 나타냅니다(바인딩 핸들만 내보낼 수 있음).
반환 값
값 | 의미 |
---|---|
|
호출이 성공했습니다. |
|
내보낼 것이 없었습니다. |
|
바인딩 핸들이 잘못되었습니다. |
|
이것은 작업에 대한 잘못된 종류의 바인딩이었습니다. |
|
이름 구문이 잘못되었습니다. |
|
이름 구문은 지원되지 않습니다. |
|
이름이 불완전합니다. |
|
이름 서비스 작업에 대한 권한이 없습니다. |
|
이름 서비스를 사용할 수 없습니다. |
발언
RpcNsBindingExport 함수를 사용하면 서버 애플리케이션이 모든 클라이언트 애플리케이션에서 사용할 이름 서비스 데이터베이스의 인터페이스를 공개적으로 제공할 수 있습니다.
Windows 2000에 적용된 RPC 런타임 환경에서는 Active Directory를 이름 서비스 데이터베이스로 사용합니다. 즉, 권한 있는 내보낸 항목은 이름 서비스에 유지되며 다시 부팅한 후에도 표시됩니다. 권한 없는 내보내기가 유지되지 않습니다. 권한 부여 및 액세스 제어 목록에 대한 자세한 내용은 SDK(플랫폼 소프트웨어 개발 키트)의 보안 섹션에서 Access Control 참조하세요.
인터페이스를 내보내기 위해 서버 애플리케이션은 인터페이스를 사용하여 RpcNsBindingExport 루틴을 호출하고 서버 바인딩 핸들은 클라이언트가 서버에 액세스하는 데 사용할 수 있습니다. 또한 서버 애플리케이션은 RpcNsBindingExport 함수를 호출하여 이름 서비스 데이터베이스에서 제공하는 리소스의 개체 UUID(있는 경우)를 공개적으로 제공합니다.
서버는 RpcNsBindingExport
서버는 해당 인터페이스를 이름 서비스 데이터베이스로 내보낼 필요가 없습니다. 서버가 내보내지 않으면 서버의 바인딩 정보를 개인적으로 알고 있는 클라이언트만 해당 인터페이스에 액세스할 수 있습니다. 예를 들어 문자열 바인딩을 생성하는 데 필요한 정보가 있는 클라이언트는 RpcBindingFromStringBinding 호출하여 서버에 대한 원격 프로시저 호출을 위한 바인딩 핸들을 만들 수 있습니다.
RpcNsBindingExport호출하기 전에 서버에서 다음을 수행해야 합니다.
- 다음 함수 중 하나를 호출하여 로컬 RPC 런타임 라이브러리에 하나 이상의 프로토콜 시퀀스를 등록합니다.
- RpcServerInqBindings 함수를 호출하여 서버 바인딩 목록을 가져옵니다.
서버가 동일한 이름 서비스 데이터베이스 항목으로 여러 번 내보내는 경우 RpcNsBindingExport에 대한 두 번째 및 후속 호출은 해당 데이터가 서버 항목에 이미 있는 바인딩 정보와 다른 경우 바인딩 정보 및 개체 UUID를 추가할 있습니다. 기존 데이터는 항목에서 제거되지 않습니다.
이름 서비스 데이터베이스에서 바인딩 핸들 및 개체 UUID를 제거하기 위해 서버 애플리케이션은 RpcNsBindingUnexport 함수를 호출합니다.
서버 항목에는 하나 이상의 바인딩 핸들이 있어야 합니다. 따라서 UUID만 기존 항목으로 내보내는 것은 효과가 없으며 모든 바인딩 핸들을 내보내지 않으면 항목이 삭제됩니다.
메모
rpcnsi.h 헤더는 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 RpcNsBindingExport를 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | rpcnsi.h(Rpc.h 포함) |
라이브러리 | Rpcns4.lib |
DLL | Rpcns4.dll |
참고 항목
RpcNsBindingUnexport