Função RpcNsMgmtHandleSetExpAge (rpcnsi.h)
A função RpcNsMgmtHandleSetExpAge define a idade de expiração de um identificador name-service para cópias locais de dados name-service.
Sintaxe
RPC_STATUS RpcNsMgmtHandleSetExpAge(
RPC_NS_HANDLE NsHandle,
unsigned long ExpirationAge
);
Parâmetros
NsHandle
Identificador nome-serviço para o qual uma idade de expiração é definida. Um identificador name-service é retornado de uma operação de início de serviço de nome.
ExpirationAge
Valor inteiro, em segundos, que define a idade de expiração dos dados de nome-serviço locais lidos por todas as próximas rotinas usando o parâmetro NsHandle especificado.
Uma idade de expiração de 0 causa uma atualização imediata dos dados de nome-serviço local.
Valor retornado
Valor | Significado |
---|---|
|
A chamada foi bem-sucedida. |
|
O serviço de nome está indisponível. |
Comentários
A função RpcNsMgmtHandleSetExpAge define uma idade de expiração do identificador para um identificador de nome-serviço especificado (NsHandle). A idade de expiração é a quantidade de tempo que uma cópia local de dados de um atributo name-service pode existir antes que uma solicitação do aplicativo para o atributo exija a atualização da cópia local. Quando um aplicativo começa a ser executado, a biblioteca de tempo de execução RPC especifica uma idade de expiração padrão de duas horas. O padrão é global para o aplicativo. Uma idade de expiração do identificador se aplica apenas a um identificador de nome-serviço específico e substitui temporariamente a idade de expiração global atual.
Uma idade de expiração do identificador é usada exclusivamente pelas próximas operações do Ponteiro (que leem dados de atributos name-service). Uma próxima operação normalmente começa procurando uma cópia local dos dados de atributo que estão sendo solicitados por um aplicativo. Na ausência de uma cópia local, a próxima operação cria uma com novos dados de atributo do banco de dados name-service. Se uma cópia local já existir, a operação comparará sua idade real com a idade de expiração que está sendo usada pelo aplicativo (que, nesse caso, é a idade de expiração definida para o identificador nome-serviço). Se a idade real exceder a idade de expiração do identificador, a operação tentará atualizar automaticamente a cópia local com novos dados de atributo. Se a atualização for impossível, os dados locais antigos permanecerão em vigor e a próxima operação falhará, retornando o código RPC_S_NAME_SERVICE_UNAVAILABLE status.
O escopo de uma idade de expiração do identificador é uma única série de próximas operações. A função RpcNsMgmtHandleSetExpAge opera no seguinte contexto:
- Uma operação begin cria um identificador de nome-serviço.
- Uma chamada para a função RpcNsMgmtHandleSetExpAge cria uma idade de expiração para o identificador.
- Uma série de próximas operações para o identificador name-service usa a idade de expiração do identificador.
- Uma operação feita para o identificador nome-serviço exclui o identificador e sua idade de expiração.
- Quando você sempre deve obter dados precisos de name-service.
Por exemplo, durante operações de gerenciamento para atualizar um perfil, talvez seja necessário sempre ver o conteúdo atual do perfil. Nesse caso, antes de começar a perguntar sobre um perfil, seu aplicativo deve chamar a função RpcNsMgmtHandleSetExpAge e especificar 0 para o parâmetro ExpirationAge .
- Quando uma solicitação que usa a idade de expiração padrão falha e seu aplicativo precisa repetir a operação.
Por exemplo, um aplicativo cliente que usa operações de importação de serviço de nome deve primeiro tentar obter associações usando a idade de expiração padrão do aplicativo. No entanto, às vezes, a operação import-next retorna nenhum identificador de associação ou um número insuficiente deles. Nesse caso, o cliente pode repetir a operação de importação e, após a chamada RpcNsBindingImportBegin , incluir uma chamada RpcNsMgmtHandleSetExpAge e especificar 0 para o parâmetro ExpirationAge . Quando o cliente chama a função import-next novamente, a pequena idade de expiração do identificador faz com que a operação import-next atualize os dados do atributo local.
Requisitos
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | rpcnsi.h (inclua Rpc.h) |
Biblioteca | Rpcns4.lib |
DLL | Rpcns4.dll |