A miniport with an open line can also receive a request to initiate a call in one of two ways. Either the miniport receives:
·An OID_TAPI_MAKE_CALL request that contains the destination address or that specifies that a predefined default number should be used
·Or, an OID_TAPI_MAKE_CALL request that does not include a destination address
In this case, the OID_TAPI_MAKE_CALL will be followed by an OID_TAPI_DIAL request that includes the destination address
When MiniportQueryInformation is called with an OID_TAPI_MAKE_CALL request, NDISTAPI passes the line identifier for the line on which the call is to be made in the hdLine member of the NDIS_TAPI_MAKE_CALL structure. The hdLine value is the value returned by the miniport to an OID_TAPI_OPEN request.
The miniport should store the htCall value passed in this request with the call context it maintains and pass it in subsequent status calls and responses related to this call instance. For instance, the miniport will supply this value as the ConnectionWrapperID when it indicates a line up to NDISWAN.
The ulDestAddressSize can be zero for undialed addresses, such as for a hot phone, which always automatically connects to a predefined number, or when dialing will be done subsequently with an OID_TAPI_DIAL request.
If the bUseDefaultLineCallParams member of NDIS_TAPI_MAKE_CALL is set to FALSE, the miniport should use the call parameters in the LineCallParams member. If bUseDefaultLineCallParams is TRUE, the previously set default call parameters should be used.
The miniport must check the state of the line on which the make-call request is made to ensure that it can make the requested call. If not, the miniport should fail the call.
MiniportQueryInformation returns when either:
·It has made the call,
·Or, if the number will be dialed as a result of a subsequent OID_TAPI_DIAL request, the miniport allocates a structure and sets itself in a state, probably the dialtone state, to subsequently complete the call.
The miniport must return a call-specific context value in the hdCall member if MiniportQueryInformation returns NDIS_STATUS_SUCCESS. This unique hdCall value will be passed to the miniport in subsequent requests related to this call.
If a call is made in two steps by first making an OID_TAPI_MAKE_CALL request to MiniportQueryInformation, followed by an OID_TAPI_DIAL request to MiniportSetInformation, the destination number is passed to the miniport in the NDIS_TAPI_DIAL structure. The OID_TAPI_DIAL request requires an hdCall member to be passed in the NDIS_TAPI_DIAL structure; its value will match the handle the miniport returned from a previous OID_TAPI_MAKE_CALL request.