Compartir a través de


Rutina MRxStop

RDBSS llama a la rutinaMRxStop para detener el minidirector de red.

Sintaxis

PMRX_CALLDOWN_CTX MRxStop;

NTSTATUS MRxStop(
  _Inout_ PRX_CONTEXT          RxContext,
  _Inout_ PRDBSS_DEVICE_OBJECT RxDeviceObject
)
{ ... }

Parámetros

RxContext [in, out]
Puntero a la estructura RX_CONTEXT. Este parámetro contiene el IRP que solicitó que se detenga el minidirector de red.

RxDeviceObject [in, out]
Puntero a la estructura RDBSS_DEVICE_OBJECT para este minidirector de red.

Valor devuelto

MRxStop devuelve STATUS_SUCCESS si se ejecuta correctamente o un valor NTSTATUS adecuado, como uno de los siguientes:

Código devuelto Descripción
STATUS_REDIRECTOR_HAS_OPEN_HANDLES

El minidirector de red tiene identificadores abiertos que impiden que se detenga en este momento.

STATUS_REDIRECTOR_NOT_STARTED

No se inició el minidirector de red.

Comentarios

MRxStop detiene y anula la inicialización del minidirector de red desde la perspectiva de RDBSS. Es probable que la detención del minidirector de red requiera liberar asignaciones de memoria y otros recursos del sistema.

Antes de llamar a MRxStop, RDBSS modifica los valores siguientes:

El miembro MajorFunction de la estructura RX_CONTEXT a la que apunta RxContext se establece en la función principal del IRP.

El miembro LowIoContext.ParamsFor.FsCtl.FsControlCode de la estructura RX_CONTEXT a la que apunta RxContext se establece en el código FSCTL del IRP si se trata de una solicitud FSTCL utilizada para detener el minidirector de red.

El miembro StartStopContext.State de la estructura de RDBSS_DEVICE_OBJECT a la que apunta RxDeviceObject se establece en RDBSS_STOP_IN_PROGRESS

El miembro StartStopContext.pStopContext de la estructura RDBSS_DEVICE_OBJECT a la que apunta RxDeviceObject se establece en el parámetro RxContext .

RDBSS llama a MRxStop desde la rutina RxStopMinirdr .

Si MRxStop devuelve STATUS_SUCCESS, la rutina se realizó correctamente. Cualquier otro valor devuelto indica que se produjo un error al detener el minidirector de red.

Si MRxStop devuelve STATUS_SUCCESS, RDBSS establece el estado de RDBSS en RDBSS_STARTABLE. Este estado se almacena en el miembro StartStopContext.State de la estructura de RDBSS_DEVICE_OBJECT a la que apunta RxDeviceObject.

Normalmente, un minidirector de red mantendría una variable interna que indica si se inicia el minidirector de red. Por ejemplo, un minidirector de red podría realizar un seguimiento de cuándo se detiene, se inicia y cuándo está en curso una operación de inicio o una operación de detención.

Requisitos

Plataforma de destino

Escritorio

Encabezado

Mrx.h (incluya Mrx.h)

Consulte también

MRxDevFcbXXXControlFile

MrxStart

RxStopMinirdr