Compartilhar via


Rotina MRxQueryFileInfo

A rotinaMRxQueryFileInfo é chamada pelo RDBSS para solicitar que um minidiretório de rede consulte informações de arquivo em um objeto do sistema de arquivos.

Sintaxe

PMRX_CALLDOWN MRxQueryFileInfo;

NTSTATUS MRxQueryFileInfo(
  _Inout_ PRX_CONTEXT RxContext
)
{ ... }

Parâmetros

RxContext [in, out]
Um ponteiro para a estrutura RX_CONTEXT. Esse parâmetro contém o IRP que está solicitando a operação.

Retornar valor

MRxQueryFileInfo retorna STATUS_SUCCESS em caso de êxito ou um valor NTSTATUS apropriado, como um dos seguintes:

Código de retorno Descrição
STATUS_ACCESS_DENIED

O chamador não tinha a segurança adequada para esta operação.

STATUS_BUFFER_OVERFLOW

O buffer para receber as informações do arquivo era muito pequeno.

Esse valor retornado deve ser considerado êxito e o máximo de dados válidos possível deve ser retornado no membro Info.Buffer da estrutura RX_CONTEXT apontada pelo parâmetro RxContext .

STATUS_BUFFER_TOO_SMALL

O buffer é muito pequeno para receber os dados solicitados.

Se esse valor for retornado, o membro InformationToReturn da estrutura RX_CONTEXT apontada pelo parâmetro RxContext deverá ser definido como o tamanho mínimo do buffer esperado para que a chamada seja bem-sucedida.

STATUS_INSUFFICIENT_RESOURCES

Não havia recursos suficientes para concluir a consulta.

STATUS_INVALID_NETWORK_RESPONSE

Um buffer de informações de arquivo inválido foi recebido do servidor remoto.

STATUS_INVALID_PARAMETER

Um parâmetro inválido foi especificado.

Esse valor poderá ser retornado se um valor inválido para o membro FileInformationClass no RX_CONTEXT for passado. Esse valor também poderá ser retornado se o membro FileInformationClass especificado for para FileStreamInformation e o sistema de arquivos remoto não oferecer suporte a fluxos.

STATUS_OBJECT_NAME_NOT_FOUND

O nome do objeto não foi encontrado. Este é um código de erro.

Comentários

O RDBSS emite uma chamada para MRxQueryFileInfo em resposta ao recebimento de uma solicitação de IRP_MJ_QUERY_INFORMATION .

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

O membro Info.FileInformationClass é definido como IrpSp-Parameters.QueryFile.FileInformationClass>, o valor FILE_INFORMATION_CLASS solicitado.

O membro Info.Buffer é definido como o buffer de usuário do pacote de solicitação de E/S.

O membro Info.LengthRemaining é definido como IrpSp-Parameters.QueryFile.Length>.

O membro QueryDirectory.FileIndex é definido como IrpSp-Parameters.QueryDirectory.FileIndex>.

O membro QueryDirectory.RestartScan será definido se IrpSp-Flags> tiver o SL_RESTART_SCAN bit definido.

O membro QueryDirectory.ReturnSingleEntry será definido se IrpSp-Flags> tiver SL_RETURN_SINGLE_ENTRY bit definido.

O membro QueryDirectory.InitialQuery será definido se Fobx-UnicodeQueryTemplate.Buffer> for NULL e Fobx-Flags> não tiver o FOBX_FLAG_MATCH_ALL bit definido.

Em caso de êxito, o minidiretório de rede deve definir o membro Info.LengthRemaining da estrutura RX_CONTEXT como membro Info.Length menos o comprimento das informações de arquivo retornadas. Se a chamada para MRxQueryFileInfo tiver sido bem-sucedida, o RDBSS definirá o membro IoStatus.Information do IRP como IrpSp-Parameters.QueryFile.Length> menos o membro Info.LengthRemaining de RX_CONTEXT.

O RDBSS não dá suporte a solicitações com o bit SL_INDEX_SPECIFIED do conjunto IrpSp-Flags>. Um minidiretório de rede não receberá chamadas para MRxQueryFileInfo com o bit SL_INDEX_SPECIFIED de IrpSp-Flags> definido.

Requisitos

Plataforma de destino

Área de Trabalho

parâmetro

Mrx.h (inclua Mrx.h)

Confira também

MRxIsValidDirectory

MRxQueryDirectory

MRxQueryEaInfo

MRxQueryQuotaInfo

MRxQuerySdInfo

MRxQueryVolumeInfo

MRxSetEaInfo

MRxSetFileInfo

MRxSetFileInfoAtCleanup

MRxSetQuotaInfo

MRxSetSdInfo

MRxSetVolumeInfo