Rotina MRxStop

A rotinaMRxStop é chamada pelo RDBSS para interromper o minidiretório de rede.

Sintaxe

PMRX_CALLDOWN_CTX MRxStop;

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

Parâmetros

RxContext [in, out]
Um ponteiro para a estrutura RX_CONTEXT. Esse parâmetro contém o IRP que solicitou que o minidiretório de rede parasse.

RxDeviceObject [in, out]
Um ponteiro para a estrutura de RDBSS_DEVICE_OBJECT para esse minidiretório de rede.

Retornar valor

MRxStop retorna STATUS_SUCCESS com êxito ou um valor NTSTATUS apropriado, como um dos seguintes:

Código de retorno Descrição
STATUS_REDIRECTOR_HAS_OPEN_HANDLES

O minidiretório de rede tem identificadores abertos que impedem que ele pare no momento.

STATUS_REDIRECTOR_NOT_STARTED

O minidiretório de rede não foi iniciado.

Comentários

O MRxStop para e não inicializa o minidiretório de rede da perspectiva do RDBSS. Parar o minidiretório de rede provavelmente pode exigir a liberação de alocações de memória e outros recursos do sistema.

Antes de chamar MRxStop, o RDBSS modifica os seguintes valores:

O membro MajorFunction na estrutura RX_CONTEXT apontada por RxContext é definido como a função principal do IRP.

O membro LowIoContext.ParamsFor.FsCtl.FsControlCode na estrutura de RX_CONTEXT apontada por RxContext será definido como o código FSCTL para o IRP se esta for uma solicitação FSTCL usada para interromper o minidiretório de rede.

O membro StartStopContext.State da estrutura RDBSS_DEVICE_OBJECT apontada por RxDeviceObject é definido como RDBSS_STOP_IN_PROGRESS

O membro StartStopContext.pStopContext da estrutura RDBSS_DEVICE_OBJECT apontada por RxDeviceObject é definido como o parâmetro RxContext .

MRxStop é chamado pelo RDBSS da rotina RxStopMinirdr .

Se MRxStop retornar STATUS_SUCCESS, a rotina foi bem-sucedida. Qualquer outro valor retornado indica que ocorreu um erro ao interromper o minidiretório de rede.

Se MRxStop retornar STATUS_SUCCESS, o RDBSS definirá o estado do RDBSS como RDBSS_STARTABLE. Esse estado é armazenado no membro StartStopContext.State da estrutura RDBSS_DEVICE_OBJECT apontada por RxDeviceObject.

Um minidiretório de rede normalmente manteria uma variável interna indicando se o minidiretório de rede foi iniciado. Por exemplo, um minidiretório de rede pode acompanhar quando ele é interrompido, iniciado e quando uma operação de início ou parada está em andamento.

Requisitos

Plataforma de destino

Área de Trabalho

parâmetro

Mrx.h (inclua Mrx.h)

Confira também

MRxDevFcbXXXControlFile

MrxStart

RxStopMinirdr