Compartir a través de


MINIPORT_CO_ACTIVATE_VC función de devolución de llamada (ndis.h)

La función MiniportCoActivateVc es necesaria para miniportes orientados a la conexión. NDIS llama a MiniportCoActivateVc para indicar al controlador de miniporte que se está activando una conexión virtual.

Nota Debe declarar la función mediante el tipo MINIPORT_CO_ACTIVATE_VC. Para obtener más información, consulte la sección Ejemplos siguientes.
 

Sintaxis

MINIPORT_CO_ACTIVATE_VC MiniportCoActivateVc;

NDIS_STATUS MiniportCoActivateVc(
  [in]      NDIS_HANDLE MiniportVcContext,
  [in, out] PCO_CALL_PARAMETERS CallParameters
)
{...}

Parámetros

[in] MiniportVcContext

Especifica el identificador de un área de contexto asignada por controlador de miniport en el que el controlador de miniporte mantiene su estado por VC. El controlador de minipuerto proporcionó este identificador a NDIS desde su función MiniportCoCreateVc.

[in, out] CallParameters

Especifica los parámetros de llamada, tal y como especifica el administrador de llamadas, que se va a establecer para esta credencial verificable. En la salida, el controlador de miniporte devuelve parámetros de llamada modificados si se establecen determinadas marcas en la estructura CO_CALL_PARAMETERS.

Valor devuelto

Código devuelto Descripción
NDIS_STATUS_SUCCESS
Indica que la credencial verificable se activó correctamente.
NDIS_STATUS_PENDING
Indica que el controlador de miniporte completará la solicitud para activar un VC de forma asincrónica. Cuando el controlador de miniporte ha terminado con sus operaciones, debe llamar a . NdisMCoActivateVcComplete.
NDIS_STATUS_INVALID_DATA
Indica que los parámetros de llamada especificados en CallParameters no son válidos o no son válidos para el tipo de medio que admite este controlador de miniport.
NDIS_STATUS_RESOURCES
Indica que el controlador de miniporte no pudo activar el VC porque no pudo asignar todos los recursos necesarios que el controlador de miniporte necesita para mantener la información de estado sobre la vc activa.

Observaciones

El controlador de miniport debe validar los parámetros de llamada para este VC, tal como se especifica en CallParameters, para comprobar que el adaptador puede admitir la llamada solicitada. Si no se pueden satisfacer los parámetros de llamada solicitados, el controlador de miniport debe producir un error en la solicitud con NDIS_STATUS_INVALID_DATA.

miniportCoActivateVc se puede llamar muchas veces para un solo VC con el fin de cambiar los parámetros de llamada de una llamada ya activa. En cada llamada, el controlador de miniport debe validar los parámetros y realizar cualquier procesamiento según sea necesario por su adaptador para satisfacer la solicitud. Sin embargo, si no puede establecer los parámetros de llamada especificados, MiniportCoActivateVc debe dejar el VC en un estado utilizable, ya que el cliente orientado a la conexión o un administrador de llamadas pueden seguir enviando o recibiendo datos mediante los parámetros de llamada anteriores.

Si las marcas ROUND_UP_FLOW o ROUND_DOWN_FLOW se establecen en la estructura de parámetros de llamada en CallParameters->MediaParameters->Flags, se ha solicitado al controlador de miniportar que devuelva la velocidad de flujo real del VC después de redondear la velocidad de flujo según la marca adecuada que se haya establecido. Si el controlador de miniporte cambia cualquiera de los parámetros de llamada porque se han establecido estas marcas, debe devolver los parámetros de llamada reales que se usan para el VC en CallParameters.

Si los parámetros de llamada son aceptables, MiniportCoActivateVc se comunica con su adaptador según sea necesario para preparar el adaptador para recibir o transmitir datos a través de la conexión virtual (es decir, programar búferes de recepción).

Ejemplos de

Para definir una función MiniportCoActivateVc, primero debe proporcionar una declaración de función que identifique el tipo de función que va a definir. Windows proporciona un conjunto de tipos de función para controladores. Declarar una función mediante los tipos de función ayuda a análisis de código para controladores, comprobador de controladores estáticos (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir un miniportCoActivateVc función denominada "MyCoActivateVc", use el tipo MINIPORT_CO_ACTIVATE_VC tal como se muestra en este ejemplo de código:

MINIPORT_CO_ACTIVATE_VC MyCoActivateVc;

A continuación, implemente la función de la siguiente manera:

_Use_decl_annotations_
NDIS_STATUS
 MyCoActivateVc(
    NDIS_HANDLE  MiniportVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

El tipo de función MINIPORT_CO_ACTIVATE_VC se define en el archivo de encabezado Ndis.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función MINIPORT_CO_ACTIVATE_VC en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, vea Declaración de funciones mediante el uso de tipos de roles de función para controladores NDIS.

Para obtener información sobre Use_decl_annotations, vea Anotación del comportamiento de la función.

Requisitos

Requisito Valor
cliente mínimo admitido Compatible con los controladores NDIS 6.0 y NDIS 5.1 (consulte MiniportCoActivateVc (NDIS 5.1)) en Windows Vista. Compatible con controladores NDIS 5.1 (consulta MiniportCoActivateVc (NDIS 5.1)) en Windows XP.
de la plataforma de destino de Windows
encabezado de ndis.h (incluya Ndis.h)
irQL <= DISPATCH_LEVEL

Consulte también

MiniportCoCreateVc

MiniportCoDeactivateVc

NdisMCoActivateVcComplete