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는 VC를 성공적으로 만들었습니다. |
|
NDIS에서 VC를 설정하기에 충분한 메모리를 할당할 수 없습니다. |
|
지정된 NdisAfHandle 이 잘못되었습니다. |
|
클라이언트가 어떤 이유로 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) |