Starting an Adapter
NDIS calls a miniport driver's MiniportRestart function to initiate a restart request for an adapter that is in the Paused state. The driver can resume indicating received data immediately after NDIS calls MiniportRestart and before the miniport driver completes the restart operation, either synchronously or asynchronously.
When it calls a miniport driver's MiniportRestart function, NDIS passes a pointer to an NDIS_RESTART_ATTRIBUTES structure to the miniport driver in the RestartAttributes member of the NDIS_MINIPORT_RESTART_PARAMETERS structure.
To complete the restart operation asynchronously, MiniportRestart returns NDIS_STATUS_PENDING and the driver must call the NdisMRestartComplete function after the operation is complete.
The miniport driver should be ready to accept send requests after it completes the restart operation. NDIS does not initiate any other Plug and Play operations, such as halt, initialize, or a pause request, until the restart operation is complete.
After the driver is ready to handle send and receive operations, the adapter is in the Running state.