NdisClRegisterSap 함수(ndis.h)

NdisClRegisterSap 는 클라이언트가 원격 노드에서 들어오는 호출을 받을 수 있는 SAP를 등록합니다.

구문

NDIS_STATUS NdisClRegisterSap(
  [in]  NDIS_HANDLE  NdisAfHandle,
  [in]  NDIS_HANDLE  ProtocolSapContext,
  [in]  PCO_SAP      Sap,
  [out] PNDIS_HANDLE NdisSapHandle
);

매개 변수

[in] NdisAfHandle

SAP를 등록할 호출 관리자를 암시적으로 식별하는 NdisClOpenAddressFamilyEx에서 반환된 핸들을 지정합니다.

[in] ProtocolSapContext

클라이언트가 열린 후 이 SAP의 상태를 유지하는 호출자 제공 상주 컨텍스트 영역에 대한 핸들을 지정합니다. NdisClRegisterSap에 대한 호출이 성공하면 NDIS는 이 SAP와 관련된 모든 후속 호출에서 이 핸들을 클라이언트에 다시 전달합니다.

[in] Sap

열려는 SAP에 대한 클라이언트 제공 사양에 대한 포인터이며 형식이 CO_SAP 형식의 구조로 지정됩니다.

[out] NdisSapHandle

이 호출이 성공하면 새로 등록된 SAP에 대한 핸들이 반환되는 변수에 대한 포인터입니다.

반환 값

NdisClRegisterSap가 NDIS_STATUS_PENDING 이외의 항목을 반환하는 경우 클라이언트는 에 대한 내부 호출을 수행해야 합니다. ProtocolClRegisterSapComplete 함수입니다. 그렇지 않으면 이 작업이 완료되면 NDIS에서 클라이언트의 ProtocolClRegisterSapComplete 함수를 호출합니다.

설명

NdisClRegisterSap를 호출하면 클라이언트는 특정 SAP에서 들어오는 호출에 대한 알림을 요청합니다. NDIS는 유효성 검사를 위해 지정된 SAP 정보를 호출 관리자의 ProtocolCmRegisterSap 함수에 전달합니다. 지정된 SAP가 이미 사용 중이거나 호출 관리자가 Sap에서 클라이언트 제공 사양을 인식하지 못하는 경우 호출 관리자는 이 요청에 실패합니다.

SAP 형식은 중간 종속형이며 호출 관리자가 지원하는 주소 패밀리에 한정되며, 이후에 등록된 SAP를 사용하여 들어오는 호출을 적절한 클라이언트로 라우팅합니다. 호출 관리자는 기본 매체에 따라 다른 네트워크 구성 요소에 연결하지 않고 설정된 PVC에 대한 SAP를 등록할 수 있습니다.

NdisClRegisterSap에 대한 호출이 성공하면 클라이언트는 NdisClDeregisterSap에 필요한 매개 변수이므로 NdisSapHandle에 반환된 핸들을 저장해야 합니다. NdisClRegisterSap의 호출자는 일반적으로 ProtocolSapContext에서 클라이언트 할당 상태 영역의 변수에 대한 포인터를 전달하므로 이 호출이 성공하면 NDIS가 NdisSapHandle로 설정할 수 있습니다. NDIS는 클라이언트가 NdisClDeregisterSap를 호출할 때까지 이 SAP와 관련된 모든 후속 호출에서 지정된 ProtocolSapContext를 클라이언트의 등록된 ProtocolCl/CoXxx 함수에 전달합니다.

일반적으로 클라이언트는 NdisClOpenAddressFamilyEx를 성공적으로 호출한 후 ProtocolAfRegisterNotify 함수에서 NdisClRegisterSap를 호출합니다. 하나 이상의 SAP를 등록하면 호출 관리자가 네트워크를 통해 수신하는 즉시 클라이언트가 수신 전화를 받을 수 있습니다.

클라이언트에서 시작한 발신 호출과 달리 클라이언트는 NdisClRegisterSap를 호출하기 전에 NdisCoCreateVc를 호출하지 않습니다. 들어오는 호출의 경우 호출 관리자는 다음과 같이 VC 만들기를 시작합니다.

  • 등록된 SAP에서 수신 전화를 받으면 호출 관리자는 먼저 NdisCoCreateVc를 호출하여 NDIS가 클라이언트의 ProtocolCoCreateVc 함수를 호출하게 합니다.
  • VC가 설정되고 활성화되면 호출 관리자가 NdisCmDispatchIncomingCall을 호출하여 NDIS가 클라이언트의 를 호출하게 합니다. ProtocolClIncomingCall 함수입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista에서 NDIS 6.0 및 NDIS 5.1 드라이버(NdisClRegisterSap(NDIS 5.1 참조))에 대해 지원됩니다. Windows XP에서 NDIS 5.1 드라이버(NdisClRegisterSap(NDIS 5.1 참조))에 대해 지원됩니다.
대상 플랫폼 데스크톱
머리글 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 규정 준수 규칙 Irql_Protocol_Driver_Function(ndis)

추가 정보

CO_SAP

NdisClDeregisterSap

NdisClMakeCall

NdisCmDispatchIncomingCall

NdisCoCreateVc

ProtocolClIncomingCall

ProtocolClRegisterSapComplete

ProtocolCmRegisterSap

ProtocolCoAfRegisterNotify

ProtocolCoCreateVc