NdisMCmActivateVc (NDIS 5.1) function
Note NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.
NdisMCmActivateVc notifies NDIS that an MCM driver is ready to make transfers on a particular VC.
Syntax
NDIS_STATUS NdisMCmActivateVc(
_In_ NDIS_HANDLE NdisVcHandle,
_In_ PCO_CALL_PARAMETERS CallParameters
);
Parameters
NdisVcHandle [in]
Specifies the handle identifying the VC.CallParameters [in]
Pointer to a caller-allocated buffer, formatted as a structure of type CO_CALL_PARAMETERS, containing all the media-specific parameters that the miniport driver uses for the activated VC.
Return value
When NdisMCmActivateVc returns anything other than NDIS_STATUS_PENDING, the MCM driver should make an internal call to its ProtocolCmActivateVcComplete function. Otherwise, NDIS calls the MCM driver's ProtocolCmActivateVcComplete function when this operation is completed.
Remarks
NdisMCmActivateVc informs NDIS that an MCM driver has set up call and media parameters on a newly created VC or changed the call parameters on an established VC.
An MCM driver must call NdisMCmActivateVc after establishing a connection on a VC but before any data is sent or received on that VC. This call notifies NDIS that the miniport driver has made its NIC ready for transfers on the VC.
For a client-initiated outgoing call, an MCM driver usually calls NdisMCmActivateVc following the handshake denoting a negotiated agreement with the remote node or successful call-setup at the switch, before it notifies NDIS (and the client) of outgoing call completion with NdisMCmMakeCallComplete. For an incoming call, an MCM driver usually calls NdisMCmActivateVc after it has called NdisMCmCreateVc successfully and before it calls NdisMCmDispatchIncomingCall.
The driver writer determines whether an MCM driver has an (internal) MiniportCoActivateVc function that the driver calls in the context of setting up connections for outgoing and incoming calls.
For the duration of the connection, an MCM driver can modify the call parameters as conditions on the network change and/or whenever the client calls NdisClModifyCallQoS. The MCM driver must update the state that it maintains about call parameters to the new values if it can continue to make transfers on the VC according to the newly modified call parameters. It must call NdisMCmActivateVc to notify NDIS of any changes in the call parameters for the active VC. Otherwise, the MCM driver can do either of the following:
Call NdisMCmDeactivateVc after failing the client's request to modify QoS or other call parameters for the VC to such a state that the NIC driver cannot continue to make transfers on the VC.
Restore the call parameters to a previously accepted state, notify the client that requested the change, and remain ready to continue transferring data on the VC. In this case, the client has the option of accepting the restored call parameters or rejecting them and initiating a close of the VC.
Only connection-oriented miniport drivers that provide integrated call-management support can call NdisMCmActivateVc. Stand-alone call managers, which register themselves with NDIS as protocols, call NdisCmActivateVc instead.
Requirements
Target platform |
Universal |
Version |
See NdisMCmActivateVc. |
Header |
Ndis.h (include Ndis.h) |
Library |
Ndis.lib |
IRQL |
<= DISPATCH_LEVEL |
See also