Método IWDFObject::AssignContext (wudfddi.h)
[Aviso: UMDF 2 é a versão mais recente do UMDF e substitui o UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum recurso novo está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Os drivers universais do Windows devem usar o UMDF 2. Para obter mais informações, consulte Introdução aoda UMDF .]
O método AssignContext registra um contexto e uma função de retorno de chamada de limpeza fornecida pelo driver para o objeto.
Sintaxe
HRESULT AssignContext(
[in, optional] __drv_aliasesMem IObjectCleanup *pCleanupCallback,
[in, optional] __drv_aliasesMem void *pContext
);
Parâmetros
[in, optional] pCleanupCallback
Um ponteiro para a interface IObjectCleanup que contém a função de retorno de chamada de limpeza, que executa operações de limpeza para o objeto se ele se tornar inválido. Esse parâmetro é opcional. O driver poderá passar NULL se o driver não exigir notificação quando o objeto for limpo.
[in, optional] pContext
Um ponteiro para o contexto a ser registrado. NULL é um contexto válido.
Valor de retorno
AssignContext retornará S_OK se a operação for bem-sucedida. Caso contrário, esse método retornará um dos códigos de erro definidos em Winerror.h.
Observações
Um driver chama AssignContext para registrar um contexto e solicitar notificação quando o objeto se tornar inválido. Em uma chamada AssignContext, o driver passa um ponteiro para a interface IObjectCleanup no parâmetro pCleanupCallback para registrar IObjectCleanup. Observe que a estrutura contém internamente uma referência à interface de IObjectCleanup fornecida enquanto o objeto é válido. Quando o objeto se torna inválido, a estrutura chama o método IObjectCleanup::OnCleanup para notificar o driver. A estrutura libera automaticamente a referência ao IObjectCleanup fornecido após chamar IObjectCleanup::OnCleanup.
A qualquer momento, somente um contexto associado a cada instância de objeto pode existir. As tentativas de registrar contextos adicionais falham.
Um contexto só pode ser associado a um objeto que está em um estado válido. Por exemplo, uma tentativa de associar um contexto a um objeto que está em processo de exclusão falha.
Como o contexto não é uma interface COM (Component Object Model), o driver não deve tratar o contexto como tal. Por exemplo, o driver não pode chamar o método AddRef no contexto.
O método IWDFObject::RetrieveContext pode ser usado para recuperar o contexto que foi registrado anteriormente por meio de AssignContext.
Exemplos
Para obter um exemplo de código de como usar o método AssignContext, consulte IWDFIoTarget::FormatRequestForWrite.
Requisitos
Requisito | Valor |
---|---|
fim do suporte | Indisponível no UMDF 2.0 e posterior. |
da Plataforma de Destino | Área de trabalho |
versão mínima do UMDF | 1.5 |
cabeçalho | wudfddi.h (inclua Wudfddi.h) |
de DLL | WUDFx.dll |