CoNDIS MCM OID Requests

Like other CoNDIS call managers, miniport call managers (MCMs) can query or set the operating parameters of CoNDIS client drivers. CoNDIS client drivers can query or set the call manager parameters or the miniport driver parameters of an MCM.

To originate an OID request to a CoNDIS client driver, an MCM calls the NdisMCmOidRequest function.

The following figure illustrates an OID request that an MCM originated.

Diagram showing an OID request originated by an MCM.

After an MCM driver calls the NdisMCmOidRequest function, NDIS calls the ProtocolCoOidRequest function of the client driver.

To complete synchronously, NdisMCmOidRequest returns NDIS_STATUS_SUCCESS or an error status. To complete asynchronously, NdisMCmOidRequest returns NDIS_STATUS_PENDING.

If NdisMCmOidRequest returns NDIS_STATUS_PENDING, NDIS calls the ProtocolCoOidRequestComplete function of the MCM after the client drivers complete the OID request by calling the NdisCoOidRequestComplete function. In this case, NDIS passes the results of the request at the OidRequest parameter of ProtocolCoOidRequestComplete. NDIS passes the final status of the request at the Status parameter of ProtocolCoOidRequestComplete.

If NdisMCmOidRequest returns NDIS_STATUS_SUCCESS, it returns the results of a query request in the NDIS_OID_REQUEST structure at the OidRequest parameter. In this case, NDIS does not call the ProtocolCoOidRequestComplete function of the MCM.

CoNDIS client drivers can query or set the call manager operating parameters or miniport operating parameters of MCMs. To originate an OID request for MCM call manager parameters, a client calls the NdisCoOidRequest function and provides a valid address family (AF) handle at the NdisAfHandle parameter. To originate an OID request for MCM miniport parameters, a client calls the NdisCoOidRequest function and sets the AF handle to NULL.

After a client calls the NdisCoOidRequest function, NDIS calls either the MiniportCoOidRequest function or the ProtocolCoOidRequest function of the MCM driver.

The following figure illustrates an OID request for the miniport parameters of the MCM.

Diagram depicting an OID request for the miniport parameters of an MCM.

The following figure illustrates an OID request for the call manager parameters of the MCM.

Diagram displaying an OID request for the call manager parameters of an MCM.

To complete synchronously, NdisCoOidRequest returns NDIS_STATUS_SUCCESS or an error status. To complete asynchronously, ProtocolCoOidRequest or MiniportCoOidRequest returns NDIS_STATUS_PENDING.

If ProtocolCoOidRequest or MininportCoOidRequest returns NDIS_STATUS_PENDING, NDIS calls the ProtocolCoOidRequestComplete function of the client after the MCM completes the OID request by calling the NdisMCoOidRequestComplete or NdisMCmOidRequestComplete function. In this case, NDIS passes the results of the request at the OidRequest parameter of ProtocolCoOidRequestComplete. NDIS passes the final status of the request at the Status parameter of ProtocolCoOidRequestComplete.

If NdisCoOidRequest returns NDIS_STATUS_SUCCESS, it returns the results of a query request in the NDIS_OID_REQUEST structure at the OidRequest parameter. In this case, NDIS does not call the client's ProtocolCoOidRequestComplete function.