MiniportXxx Functions (NDIS 5.1)
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.
The typical miniport driver uses a small number of functions to communicate through NDIS with the upper layers and hardware. The complete list of upper-edge ( MiniportXxx) functions that NDIS can call to communicate with a miniport driver, whether on its own behalf or on the behalf of protocol drivers, is provided in Miniport Driver Upper-Edge Functions; not all of these functions are required. For information about which functions are optional, which are required, and why, see Registering MiniportXxx Functions.
NDIS miniport drivers and upper-layer drivers use the NDIS Library ( ndis.sys) to communicate with each other through calls to NdisXxx functions. A summary of the NdisXxx functions and macros that a miniport driver can call is provided in NDIS Functions Called by Miniport Drivers.
Many miniport driver functions can operate either synchronously or asynchronously. The asynchronous functions have NdisXxxComplete functions that must be called when an operation is finished. For example, if a protocol driver calls NdisRequestto query miniport driver information, the miniport driver's MiniportQueryInformationfunction can pend the reset operation by returning NDIS_STATUS_PENDING. Eventually, the MiniportResetfunction must call NdisMQueryInformationCompleteto indicate the final status of the query request. For more information about asynchronous MiniportXxx functions and the corresponding completion functions, see Overview of Miniport Driver Operations and Functions.