PMRX_CALLDOWN_CTX función de devolución de llamada (mrx.h)
RDBSS llama a la rutina MRxStart para iniciar el minidirector de red.
Sintaxis
PMRX_CALLDOWN_CTX PmrxCalldownCtx;
NTSTATUS PmrxCalldownCtx(
[in, out] IN OUT PRX_CONTEXT RxContext,
[in, out] IN OUT PRDBSS_DEVICE_OBJECT RxDeviceObject
)
{...}
Parámetros
[in, out] RxContext
Puntero a la estructura RX_CONTEXT. Este parámetro contiene el IRP que solicitó que se inicie el minidirector de red.
[in, out] RxDeviceObject
Puntero a la estructura RDBSS_DEVICE_OBJECT para este minidirector de red.
Valor devuelto
MRxStart devuelve STATUS_SUCCESS si se ejecuta correctamente o un valor NTSTATUS adecuado, como uno de los siguientes:
Código devuelto | Descripción |
---|---|
STATUS_REDIRECTOR_STARTED | El minidirector de red ya se inició. |
STATUS_UNSUCCESSFUL | El minidirector de red no pudo iniciarse correctamente. |
Comentarios
MRxStart completa la inicialización del minidirector de red desde la perspectiva de RDBSS. Tenga en cuenta que esto es diferente de la inicialización realizada en la rutina DriverEntry . Cualquier inicialización que dependa de RDBSS debe realizarse como parte de esta rutina, mientras que la inicialización independiente de RDBSS debe realizarse en la rutina DriverEntry .
Antes de llamar a MRxStart, RDBSS modifica los siguientes miembros de la estructura RX_CONTEXT a la que apunta el parámetro RxContext :
El miembro MajorFunction se establece en la función principal del IRP.
El miembro LowIoContext.ParamsFor.FsCtl.FsControlCode se establece en el código FSCTL del IRP si se trata de una solicitud FSTCL utilizada para iniciar el minidirector de red.
RDBSS llama a MRxStart desde la rutina RxStartMinirdr . Antes de llamar a MRxStart, RDBSS registrará RxDeviceObject del minidirector de red como sistema de archivos. RDBSS también registrará el minidirector de red como proveedor UNC si el minidirector de red indica compatibilidad con nombres UNC.
Si MRxStart devuelve STATUS_SUCCESS, la rutina se realizó correctamente. Cualquier otro valor devuelto indica que se produjo un error en la secuencia de inicio.
Si MRxStart devuelve STATUS_SUCCESS, RDBSS establece el estado de RDBSS en RDBSS_STARTED. 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
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | mrx.h (incluya Mrx.h) |