Compartilhar via


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

A rotina MRxStart é chamada pelo 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.

Retornar valor

MRxStart retorna STATUS_SUCCESS em caso de ê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.

Comentários

O MRxStart conclui a inicialização do minidiretório de rede da perspectiva do 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 será definido como o código FSCTL do IRP se esta for uma solicitação FSTCL usada para iniciar o minidiretório de rede.

MRxStart é chamado pelo RDBSS da rotina RxStartMinirdr . 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 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

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho mrx.h (inclua Mrx.h)

Confira também

MRxDevFcbXXXControlFile

MRxStop

RxStartMinirdr