This documentation is archived and is not being maintained.

NdisMCmRequestComplete 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.

NdisMCmRequestComplete returns the final status of a client's OID_GEN_CO_XXX request, for which the MCM driver's ProtocolCoRequest function previously returned NDIS_STATUS_PENDING.


VOID NdisMCmRequestComplete(
  _In_     NDIS_STATUS   Status,
  _In_     NDIS_HANDLE   NdisAfHandle,
  _In_opt_ NDIS_HANDLE   NdisVcHandle,
  _In_opt_ NDIS_HANDLE   NdisPartyHandle,
  _In_     PNDIS_REQUEST NdisRequest


Status [in]

Specifies the final status of the requested operation, either NDIS_STATUS_SUCCESS or any driver-determined NDIS_STATUS_XXX except NDIS_STATUS_PENDING.

NdisAfHandle [in]

Specifies the AF handle, which implicitly identifies the client that made this request. The MCM driver originally obtained this handle as an input parameter to its ProtocolCmOpenAf function, and, more recently from its per-AF state designated by the ProtocolAfContext that was passed in to its ProtocolCoRequest function.

NdisVcHandle [in, optional]

Specifies the VC handle or NULL if the request is not VC-specific in nature. For a VC-specific request, the MCM driver obtained this handle from its per-VC state designated by the ProtocolVcContext passed in to its ProtocolCoRequest function.

NdisPartyHandle [in, optional]

Specifies the party handle or NULL if the request is not party-specific in nature. For a party-specific request, the MCM driver obtained this handle from its per-party state designated by the ProtocolPartyContext passed in to its ProtocolCoRequest function

NdisRequest [in]

Pointer to a buffer formatted as an NDIS_REQUEST structure, which the client that called NdisCoRequest supplied.

Return value



A call to NdisMCmRequestComplete causes a call to the ProtocolCoRequestComplete function of the client that originally called NdisCoRequest with the given handle(s) and NdisRequest pointer.

In response to client-issued requests for which it returns NDIS_STATUS_PENDING, such an MCM driver subsequently must call NdisMCmRequestComplete or NdisMCoRequestComplete depending on whether each such request was routed to the MCM driver's ProtocolCoRequest or MiniportCoRequest function, respectively.

An MCM driver's MiniportQueryInformation and MiniportSetInformation functions, if any, usually handle client requests passed to NdisRequest, such as the OID_GEN_XXX queries commonly issued to miniport drivers during initialization. Otherwise, NDIS calls the MCM driver's MiniportCoRequest function when a bound protocol calls NdisRequest.

For more information about the sets of OIDs defined for use with NdisMCmRequest, NdisCoRequest, and NdisRequest, see NDIS Object Identifiers.


Target platform



Not supported for NDIS 6.0 drivers in Windows Vista. Use NdisMCmOidRequestCompleteinstead. Supported for NDIS 5.1 drivers in Windows Vista and Windows XP.


Ndis.h (include Ndis.h)



See also




Send comments about this topic to Microsoft