Compartilhar via


PMRX_CALLDOWN_CTX função de retorno de chamada (mrx.h)

A rotina de MRxStart é chamada por RDBSS para iniciar o minidiretório de rede.

Sintaxe

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

Um ponteiro para a estrutura RX_CONTEXT. Esse parâmetro contém o IRP que solicitou o minidiretório de rede para iniciar.

[in, out] RxDeviceObject

Um ponteiro para a estrutura de RDBSS_DEVICE_OBJECT para esse minidiretório de rede.

Valor de retorno

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

Código de retorno Descrição
STATUS_REDIRECTOR_STARTED O minidiretório de rede já foi iniciado.
STATUS_UNSUCCESSFUL O minidiretório de rede não pôde ser iniciado com êxito.

Observações

MRxStart conclui a inicialização do minidiretório de rede da perspectiva RDBSS. Observe que isso é diferente da inicialização feita na rotina DriverEntry. Qualquer inicialização que dependa do RDBSS deve ser feita como parte dessa rotina, enquanto a inicialização independente do RDBSS deve ser feita na rotina DriverEntry.

Antes de chamar MRxStart, o RDBSS modifica os seguintes membros na estrutura RX_CONTEXT apontada pelo parâmetro RxContext:

O membro MajorFunction é definido como a função principal do IRP.

O membro LowIoContext.ParamsFor.FsCtl.FsControlCode é definido como o código FSCTL do IRP se essa for uma solicitação FSTCL usada para iniciar o minidiretório de rede.

MRxStart é chamado pelo RDBSS da rotina deRxStartMinirdr. Antes de chamar MRxStart, o RDBSS registrará RxDeviceObject do minidiretório de rede como um sistema de arquivos. O RDBSS também registrará o minidiretório de rede como um provedor UNC se o minidiretório de rede indicar suporte para nomes UNC.

Se MRxStart retornar STATUS_SUCCESS, a rotina foi bem-sucedida. Qualquer outro valor retornado indica que ocorreu um erro na sequência de inicialização.

Se MRxStart retornar STATUS_SUCCESS, o RDBSS definirá o estado do RDBSS como RDBSS_STARTED. Esse estado é armazenado no membro StartStopContext.State da estrutura RDBSS_DEVICE_OBJECT apontada pelo 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 operação de parada está em andamento.

Requisitos

Requisito Valor
da Plataforma de Destino Área de trabalho
cabeçalho mrx.h (incluir Mrx.h)

Consulte também

MRxDevFcbXXXControlFile

MRxStop

RxStartMinirdr