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) |