Share via


NdisMCmCreateVc 함수(ndis.h)

NdisMCmCreateVc 는 MCM 드라이버가 클라이언트에 수신 호출 제안을 디스패치할 수 있는 연결 엔드포인트를 설정합니다.

구문

NDIS_STATUS NdisMCmCreateVc(
  [in]  NDIS_HANDLE  MiniportAdapterHandle,
  [in]  NDIS_HANDLE  NdisAfHandle,
  [in]  NDIS_HANDLE  MiniportVcContext,
  [out] PNDIS_HANDLE NdisVcHandle
);

매개 변수

[in] MiniportAdapterHandle

MiniportInitializeEx에 원래 입력된 NDIS 제공 핸들을 지정합니다.

[in] NdisAfHandle

들어오는 호출의 대상인 클라이언트를 식별하는 핸들을 지정합니다. MCM 드라이버는 이 핸들을 ProtocolCmOpenAf 함수에 대한 입력 매개 변수로 획득했습니다.

[in] MiniportVcContext

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

[out] NdisVcHandle

NdisMCmCreateVc가 호출되기 전에 NULL로 초기화해야 하는 호출자 제공 변수에 대한 포인터입니다. 성공적으로 호출된 후 반환 시 이 변수는 새로 만든 VC에 대해 NDIS 제공 핸들로 설정되었습니다. 호출자는 이 VC와 관련된 연결 지향 NdisXxx 함수에 대한 후속 호출을 위해 이 핸들을 저장해야 합니다.

반환 값

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

반환 코드 설명
NDIS_STATUS_SUCCESS
NDIS는 VC를 성공적으로 만들었습니다.
NDIS_STATUS_RESOURCES
NDIS에서 VC를 설정하기에 충분한 메모리를 할당할 수 없습니다.
NDIS_STATUS_FAILURE
지정된 NdisAfHandle 이 잘못되었습니다.
NDIS_STATUS_XXX
클라이언트가 어떤 이유로 VC를 만들지 못했고 NDIS는 ProtocolCoCreateVc 함수에서 반환한 오류 상태 MCM 드라이버에 전파했습니다.

설명

MCM 드라이버는 NdisMCmCreateVc 를 사용하여 VC를 만들어 이미 MCM 드라이버에 등록된 SAP로 전송된 원격 노드에서 들어오는 연결 제안을 나타냅니다.

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

일반적으로 NdisMCmCreateVc의 호출자는 MiniportVcContext 의 호출자가 할당한 상태 영역에 반환된 NdisVcHandle을 저장합니다. NDIS는 MCM 드라이버가 VC를 만들 때마다 NdisVcHandle 을 적절한 클라이언트의 ProtocolCoCreateVc 함수에 입력 매개 변수로 전달합니다.

MCM 드라이버가 등록된 SAP 중 하나로 전달되는 수신 호출의 제안을 처리할 때 먼저 NdisMCmCreateVc 를 호출해야 합니다. 동기 작업으로 NDIS는 NdisMCmCreateVc가 컨트롤을 반환하기 전에 클라이언트의 ProtocolCoCreateVc 함수를 호출합니다. NdisMCmCreateVc에 대한 호출이 성공하면 MCM 드라이버는 적절한 클라이언트에 알리고 반환된 값을 NdisVcHandle에 전달할 수 있습니다. NdisMCmDispatchIncomingCall.

드라이버 작성기는 MCM 드라이버에 발신 및 수신 호출에 대한 연결을 설정하는 컨텍스트에서 드라이버가 호출하는 (내부) MiniportCoCreateVc 함수가 있는지 여부를 결정합니다.

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

요구 사항

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

추가 정보

MiniportCoCreateVc

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisCoCreateVc

NdisMCmDeleteVc

NdisMCmDispatchIncomingCall

ProtocolCmRegisterSap

ProtocolCoCreateVc