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