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는 VC를 성공적으로 만들었습니다. |
|
NDIS에서 VC를 설정하기에 충분한 메모리를 할당할 수 없습니다. |
|
지정된 NdisAfHandle 이 잘못되었습니다. |
|
기본 미니포트 드라이버는 NDIS가 호출자에게 전파한 미니포트 드라이버 결정 이유로 VC를 만들지 못했습니다. |
설명
클라이언트 또는 독립 실행형 호출 관리자는 VC가 각각 발신 또는 수신 호출을 나타내는지 여부에 따라 NdisCoCreateVc를 사용하여 VC를 만듭니다.
VC를 만드는 과정에서 NDIS는 두 프로토콜 드라이버가 모두 바인딩된 클라이언트, 호출 관리자 및 미니포트 드라이버에 NdisVcHandle 을 제공합니다. 이 핸들은 지정된 VC와 관련된 후속 요청이 전달되는 클라이언트, 호출 관리자 및 미니포트 드라이버에 대한 가상 회로를 식별합니다. 각 드라이버는 이 VC 핸들을 불투명 변수로 처리하여 특정 연결 지향 NDIS 라이브러리 함수에 대한 후속 호출에서 수정되지 않고 해석되지 않은 상태로 전달해야 합니다.
일반적으로 NdisCoCreateVc의 호출자는 ProtocolVcContext 의 호출자가 할당한 상태 영역에 반환된 NdisVcHandle을 저장합니다. NDIS는 이 핸들을 각 VC 생성에 관련된 다른 두 드라이버의 ProtocolCoCreateVc 및 MiniportCoCreateVc 함수에 입력 매개 변수로 전달합니다.
발신 통화를 하려면 클라이언트가 먼저 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) |