Función NdisCoCreateVc (ndis.h)

NdisCoCreateVc configura un punto de conexión desde el que un cliente puede realizar llamadas salientes o en las que un administrador de llamadas independiente puede enviar llamadas entrantes.

Sintaxis

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

Parámetros

[in] NdisBindingHandle

Especifica el identificador devuelto por NdisOpenAdapterEx que identifica la NIC de destino o el adaptador virtual del controlador inferior siguiente al que está enlazado el autor de la llamada.

[in, optional] NdisAfHandle

Especifica el identificador devuelto por NdisClOpenAddressFamilyEx si el autor de la llamada es un cliente. Un administrador de llamadas establece este parámetro en NULL si está creando una credencial verificable para sí misma, como un VC en un conmutador de red. Cuando crea un VC para las notificaciones de llamada entrantes, un administrador de llamadas pasa el identificador af que guardó en su estado por AF designado por CallMgrAfContext que se pasó como parámetro de entrada a su Función ProtocolCmRegisterSap .

[in] ProtocolVcContext

Especifica el identificador de un área de contexto residente proporcionada por el autor de la llamada en la que el autor de la llamada mantiene el estado de esta credencial verificable. NDIS pasa este identificador al creador de VC en todas las llamadas posteriores relativas a este punto de conexión si la llamada a NdisCoCreateVc se realiza correctamente.

[in, out] NdisVcHandle

Puntero a una variable proporcionada por el autor de la llamada que se debe inicializar en NULL cuando se llama a NdisCoCreateVc . Al volver de una llamada correcta, esto apunta a una variable que NDIS ha establecido en su identificador para la credencial verificable recién creada. El autor de la llamada debe guardar este identificador para las llamadas posteriores a las funciones Ndis Xxx orientadas a la conexión.

Valor devuelto

NdisCoCreateVc puede devolver una de las siguientes opciones:

Código devuelto Descripción
NDIS_STATUS_SUCCESS
NDIS creó correctamente la credencial verificable.
NDIS_STATUS_RESOURCES
NDIS no pudo asignar memoria suficiente para configurar la credencial verificable.
NDIS_STATUS_FAILURE
El NdisAfHandle especificado no es válido.
NDIS_STATUS_ XXX
El controlador de minipuerto subyacente produjo un error en la creación del VC por un motivo determinado por el controlador de minipuerto, que NDIS se ha propagado al autor de la llamada.

Comentarios

Un cliente o un administrador de llamadas independiente crea un VC con NdisCoCreateVc, dependiendo de si el VC representa una llamada saliente o entrante, respectivamente.

En el proceso de creación de VC, NDIS proporciona un NdisVcHandle al cliente, el administrador de llamadas y el controlador de minipuerto al que están enlazados ambos controladores de protocolo. Este identificador identifica el circuito virtual para el cliente, el administrador de llamadas y el controlador de minipuerto al que se dirigen las solicitudes posteriores relativas a la credencial verificable especificada. Cada controlador debe tratar este identificador de VC como una variable opaca, pasandolo sin modificar y nointerpretado en llamadas posteriores a determinadas funciones de biblioteca NDIS orientadas a conexiones.

Normalmente, los autores de llamadas de NdisCoCreateVc almacenan el NdisVcHandle devuelto en el área de estado asignado por el autor de la llamada en ProtocolVcContext . NDIS pasa este identificador como parámetro de entrada a las funciones ProtocolCoCreateVc y MiniportCoCreateVc de los otros dos controladores implicados en cada creación de un VC.

Para realizar una llamada saliente, un cliente debe llamar primero a NdisCoCreateVc . Como operación sincrónica, NDIS llama a la función MiniportCoCreateVc del controlador miniport subyacente y a la función ProtocolCoCreateVc del administrador de llamadas antes de que NdisCoCreateVc devuelva el control. Si su llamada a NdisCoCreateVc se realiza correctamente, el cliente puede continuar realizando una llamada saliente, pasando NdisVcHandle devuelto a NdisClMakeCall.

Cuándo es La función ProtocolCoReceiveNetBufferLists procesa la oferta de una llamada entrante dirigida a una de sus SAP registradas, un administrador de llamadas debe llamar primero a NdisCoCreateVc . Como operación sincrónica, NDIS llama a la función MiniportCoCreateVc del controlador miniport subyacente y a la función ProtocolCoCreateVc del cliente antes de que NdisCoCreateVc devuelva el control. Si su llamada a NdisCoCreateVc se realiza correctamente, el administrador de llamadas puede continuar notificando al cliente adecuado, pasando el valor devuelto en NdisVcHandle a NdisCmDispatchIncomingCall.

Los administradores de llamadas independientes, que se registran con NDIS como controladores de protocolo, pueden llamar a NdisCoCreateVc. Los controladores de minipuerto orientados a la conexión que proporcionan compatibilidad integrada con la administración de llamadas llaman a NdisMCmCreateVc, en su lugar.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con controladores NDIS 6.0 y NDIS 5.1 (consulte NdisCoCreateVc (NDIS 5.1)) en Windows Vista. Compatible con los controladores NDIS 5.1 (consulte NdisCoCreateVc (NDIS 5.1)) en Windows XP.
Plataforma de destino Escritorio
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento de DDI Irql_Connection_Function(ndis)

Consulte también

MiniportCoCreateVc

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisCmDispatchIncomingCall

NdisCoDeleteVc

NdisMCmCreateVc

ProtocolCmRegisterSap

ProtocolCoCreateVc

ProtocolCoReceiveNetBufferLists