MRxStop - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// mrx.h

PMRX_CALLDOWN_CTX MRxStop;

NTSTATUS MRxStop(
  _Inout_ PRX_CONTEXT          RxContext,
  _Inout_ PRDBSS_DEVICE_OBJECT RxDeviceObject
)
{ ... }
View the official Windows hardware development documentation

NtDoc

No description available.

Windows hardware development documentation (mrxstop)

MRxStop routine

TheMRxStop routine is called by RDBSS to stop the network mini-redirector.

Parameters

RxContext [in, out] A pointer to the RX_CONTEXT structure. This parameter contains the IRP that requested the network mini-redirector to stop.

RxDeviceObject [in, out] A pointer to the RDBSS_DEVICE_OBJECT structure for this network mini-redirector.

Return value

MRxStop returns STATUS_SUCCESS on success or an appropriate NTSTATUS value, such as one of the following:

Return code Description
STATUS_REDIRECTOR_HAS_OPEN_HANDLES The network mini-redirector has open handles that prevent it from stopping at this time.
STATUS_REDIRECTOR_NOT_STARTED The network mini-redirector was not started.

Remarks

MRxStop stops and uninitializes the network mini-redirector from the RDBSS perspective. Stopping the network mini-redirector may likely require releasing memory allocations and other system resources.

Before calling MRxStop, RDBSS modifies the following values:

The MajorFunction member in the RX_CONTEXT structure pointed to by RxContext is set to the major function of the IRP.

The LowIoContext.ParamsFor.FsCtl.FsControlCode member in the RX_CONTEXT structure pointed to by RxContext is set to the FSCTL code for the IRP if this was an FSTCL request used to stop the network mini-redirector.

The StartStopContext.State member of the RDBSS_DEVICE_OBJECT structure pointed to by RxDeviceObject is set to RDBSS_STOP_IN_PROGRESS

The StartStopContext.pStopContext member of the RDBSS_DEVICE_OBJECT structure pointed to by RxDeviceObject is set to the RxContext parameter.

MRxStop is called by RDBSS from the RxStopMinirdr routine.

If MRxStop returns STATUS_SUCCESS, then the routine was successful. Any other return value indicates that an error occurred in stopping the network mini-redirector.

If MRxStop returns STATUS_SUCCESS, RDBSS sets the state of RDBSS to RDBSS_STARTABLE. This state is stored in the StartStopContext.State member of the RDBSS_DEVICE_OBJECT structure pointed to by RxDeviceObject.

A network mini-redirector would normally maintain an internal variable indicating whether the network mini-redirector is started. For example, a network mini-redirector might track when it is stopped, started, and when a start operation or stop operation is in progress.

Requirements

Target platform Desktop
Header Mrx.h (include Mrx.h)

See also

MRxDevFcbXXXControlFile

MrxStart

RxStopMinirdr