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 creó correctamente la credencial verificable. |
|
NDIS no pudo asignar memoria suficiente para configurar la credencial verificable. |
|
El NdisAfHandle especificado no es válido. |
|
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) |