Rotina MRxQueryEaInfo
A rotina MRxQueryEaInfo é chamada pelo RDBSS para solicitar que um minidiretório de rede consulte informações de atributo estendido em um objeto do sistema de arquivos.
Sintaxe
PMRX_CALLDOWN MRxQueryEaInfo;
NTSTATUS MRxQueryEaInfo(
_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
MRxQueryEaInfo retorna STATUS_SUCCESS com ê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 de atributo estendido 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_CONNECTION_DISCONNECTED | A conexão foi desconectada. |
STATUS_EA_CORRUPT_ERROR | Informações de atributo estendido inválidas foram recebidas do servidor remoto. |
STATUS_INSUFFICIENT_RESOURCES | Não havia recursos suficientes para concluir a consulta. |
STATUS_INVALID_PARAMETER | Um parâmetro inválido foi especificado. |
STATUS_NONEXISTENT_EA_ENTRY | Não há atributos estendidos no objeto de arquivo e o usuário forneceu um índice de atributo estendido. |
STATUS_NOT_SUPPORTED | Não há suporte para atributos estendidos. |
STATUS_ONLY_IF_CONNECTED | A estrutura SRV_OPEN não está conectada. |
STATUS_REQUEST_ABORTED | A solicitação de rede foi anulada. |
Comentários
O RDBSS emite uma chamada para MRxQueryEaInfo em resposta ao recebimento de uma solicitação de IRP_MJ_QUERY_EA .
Antes de chamar MRxQueryEaInfo, o RDBSS modifica os seguintes membros na estrutura RX_CONTEXT apontada pelo parâmetro RxContext :
O membro Info.Buffer é definido como o buffer de usuário do pacote de solicitação de E/S. Esse buffer já foi bloqueado pelo RDBSS, se necessário.
O membro Info.LengthRemaining é definido como IrpSp-Parameters.QueryEa.Length>.
O membro QueryEa.UserEaList está definido como IrpSp-Parameters.QueryEa.EaList>.
O membro QueryEa.UserEaListLength está definido como IrpSp-Parameters.QueryEa.EaListLength>.
O membro QueryEa.UserEaIndex está definido como IrpSp-Parameters.QueryEa.EaIndex>.
O membro QueryEa.RestartScan será definido como diferente de zero se IrpSp-Flags> tiver o bit SL_RESTART_SCAN ativado.
O membro QueryEa.ReturnSingleEntry será definido como diferente de zero se IrpSp-Flags> tiver o bit SL_RETURN_SINGLE_ENTRY ativado.
O membro QueryEa.IndexSpecified será definido como diferente de zero se IrpSp-Flags> tiver o SL_INDEX_SPECIFIED bit ativado.
Com êxito, MRxQueryEaInfo deve definir o membro Info.LengthRemaining da estrutura RX_CONTEXT para o comprimento das informações de atributo estendidas retornadas e também atualizar o membro Fobx-OffsetOfNextEaToReturn>. Se a chamada para MRxQueryEaInfo tiver sido bem-sucedida, o RDBSS definirá o membro IoStatus.Information do IRP como IrpSp-Parameters.QueryEa.Length> menos o membro Info.LengthRemaining de RX_CONTEXT.
Requisitos
Plataforma de destino |
Área de Trabalho |
parâmetro |
Mrx.h (inclua Mrx.h) |