NdisCoCreateVc 함수(ndis.h)

NdisCoCreateVc 는 클라이언트가 발신 전화를 걸 수 있거나 독립 실행형 통화 관리자가 들어오는 호출을 디스패치할 수 있는 연결 엔드포인트를 설정합니다.

구문

NDIS_STATUS NdisCoCreateVc(
  [in]           NDIS_HANDLE  NdisBindingHandle,
  [in, optional] NDIS_HANDLE  NdisAfHandle,
  [in]           NDIS_HANDLE  ProtocolVcContext,
  [in, out]      PNDIS_HANDLE NdisVcHandle
);

매개 변수

[in] NdisBindingHandle

호출자가 바인딩된 다음 하위 드라이버의 대상 NIC 또는 가상 어댑터를 식별하는 NdisOpenAdapterEx 에서 반환되는 핸들을 지정합니다.

[in, optional] NdisAfHandle

호출자가 클라이언트인 경우 NdisClOpenAddressFamilyEx 에서 반환되는 핸들을 지정합니다. 호출 관리자는 네트워크 스위치에 대한 VC와 같은 자체 VC를 만드는 경우 이 매개 변수를 NULL 로 설정합니다. 들어오는 호출 알림에 대한 VC를 만들 때 호출 관리자는 입력 매개 변수로 전달된 CallMgrAfContext 에서 지정한 AF별 상태에 저장된 AF 핸들을 전달합니다. ProtocolCmRegisterSap 함수입니다.

[in] ProtocolVcContext

호출자가 이 VC의 상태를 유지하는 호출자가 제공하는 상주 컨텍스트 영역에 대한 핸들을 지정합니다. NDIS는 NdisCoCreateVc 에 대한 호출이 성공하면 이 엔드포인트와 관련된 모든 후속 호출에서 이 핸들을 VC 작성자에 다시 전달합니다.

[in, out] NdisVcHandle

NdisCoCreateVc가 호출될 때 NULL로 초기화해야 하는 호출자 제공 변수에 대한 포인터입니다. 성공적인 호출에서 반환할 때 NDIS가 새로 만든 VC에 대한 핸들로 설정한 변수를 가리킵니다. 호출자는 연결 지향 Ndis Xxx 함수에 대한 후속 호출에 대해 이 핸들을 저장해야 합니다.

반환 값

NdisCoCreateVc 는 다음 중 하나를 반환할 수 있습니다.

반환 코드 설명
NDIS_STATUS_SUCCESS
NDIS는 VC를 성공적으로 만들었습니다.
NDIS_STATUS_RESOURCES
NDIS에서 VC를 설정하기에 충분한 메모리를 할당할 수 없습니다.
NDIS_STATUS_FAILURE
지정된 NdisAfHandle 이 잘못되었습니다.
NDIS_STATUS_ XXX
기본 미니포트 드라이버는 NDIS가 호출자에게 전파한 미니포트 드라이버 결정 이유로 VC를 만들지 못했습니다.

설명

클라이언트 또는 독립 실행형 호출 관리자는 VC가 각각 발신 또는 수신 호출을 나타내는지 여부에 따라 NdisCoCreateVc를 사용하여 VC를 만듭니다.

VC를 만드는 과정에서 NDIS는 두 프로토콜 드라이버가 모두 바인딩된 클라이언트, 호출 관리자 및 미니포트 드라이버에 NdisVcHandle 을 제공합니다. 이 핸들은 지정된 VC와 관련된 후속 요청이 전달되는 클라이언트, 호출 관리자 및 미니포트 드라이버에 대한 가상 회로를 식별합니다. 각 드라이버는 이 VC 핸들을 불투명 변수로 처리하여 특정 연결 지향 NDIS 라이브러리 함수에 대한 후속 호출에서 수정되지 않고 해석되지 않은 상태로 전달해야 합니다.

일반적으로 NdisCoCreateVc의 호출자는 ProtocolVcContext 의 호출자가 할당한 상태 영역에 반환된 NdisVcHandle을 저장합니다. NDIS는 이 핸들을 각 VC 생성에 관련된 다른 두 드라이버의 ProtocolCoCreateVcMiniportCoCreateVc 함수에 입력 매개 변수로 전달합니다.

발신 통화를 하려면 클라이언트가 먼저 NdisCoCreateVc 를 호출해야 합니다. 동기 작업으로 NDIS는 NdisCoCreateVc가 컨트롤을 반환하기 전에 기본 미니포트 드라이버의 MiniportCoCreateVc 함수 및 호출 관리자의 ProtocolCoCreateVc 함수를 호출합니다. NdisCoCreateVc에 대한 호출이 성공하면 클라이언트는 나가는 호출을 계속 진행하여 반환된 NdisVcHandle을NdisClMakeCall에 전달할 수 있습니다.

의 경우 ProtocolCoReceiveNetBufferLists 함수는 등록된 SAP 중 하나로 전달되는 들어오는 호출의 제안을 처리합니다. 호출 관리자는 먼저 NdisCoCreateVc 를 호출해야 합니다. 동기 작업으로 NDIS는 NdisCoCreateVc가 컨트롤을 반환하기 전에 기본 미니포트 드라이버의 MiniportCoCreateVc 함수 및 클라이언트의 ProtocolCoCreateVc 함수를 호출 합니다 . NdisCoCreateVc에 대한 호출이 성공하면 호출 관리자가 적절한 클라이언트에 알리고 반환된 값을 NdisVcHandle에 전달할 수 있습니다. NdisCmDispatchIncomingCall.

NDIS에 프로토콜 드라이버로 등록하는 독립 실행형 통화 관리자는 NdisCoCreateVc를 호출할 수 있습니다. 통합 통화 관리 지원을 제공하는 연결 지향 미니포트 드라이버는 대신 NdisMCmCreateVc를 호출합니다.

요구 사항

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

추가 정보

MiniportCoCreateVc

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisCmDispatchIncomingCall

NdisCoDeleteVc

NdisMCmCreateVc

ProtocolCmRegisterSap

ProtocolCoCreateVc

ProtocolCoReceiveNetBufferLists