Método IVdsAdviseSink::OnNotify (vdshwprv.h)
[Começando com Windows 8 e Windows Server 2012, a interface COM do Serviço de Disco Virtual é substituída pela API de Gerenciamento de Armazenamento do Windows.]
Passa notificações de provedores para VDS e de VDS para aplicativos.
Sintaxe
HRESULT OnNotify(
[in] LONG lNumberOfNotifications,
[in] VDS_NOTIFICATION *pNotificationArray
);
Parâmetros
[in] lNumberOfNotifications
O número de notificações especificadas em pNotificationArray.
[in] pNotificationArray
Um ponteiro para uma matriz de estruturas VDS_NOTIFICATION . Um provedor aloca a memória para a matriz quando o provedor chama o serviço; o serviço libera a matriz. O VDS aloca a matriz quando o serviço chama um aplicativo. Nesse caso, os chamadores devem liberar a matriz usando a função CoTaskMemFree .
Retornar valor
Esse método pode retornar valores HRESULT padrão, como E_INVALIDARG ou E_OUTOFMEMORY, e valores retornados específicos do VDS. Ele também pode retornar códigos de erro do sistema convertidos usando a macro HRESULT_FROM_WIN32 . Os erros podem se originar do próprio VDS ou do provedor de VDS subjacente que está sendo usado. Os possíveis valores retornados incluem o seguinte.
Código de retorno | Descrição |
---|---|
|
O VDS retornará esse valor a um provedor se o serviço não for totalmente inicializado quando o provedor chamar esse método ou se algumas notificações forem perdidas pelo serviço. |
Comentários
Um aplicativo implementa esse método para receber notificações do VDS. Algumas dessas notificações são originadas do VDS; outras são notificações do provedor que são encaminhadas pelo VDS.
O VDS mantém um cache de informações sobre as propriedades de todos os objetos VDS, como subsistemas e controladores. Sempre que ocorre uma alteração que dispara uma notificação, esse cache é atualizado automaticamente. Além disso, chamar IVdsHwProvider::Refresh ou IVdsService::Refresh em resposta a uma notificação de VDS pode fazer com que um loop infinito de notificações seja enviado. Por esses motivos, um aplicativo não deve chamar IVdsHwProvider::Refresh ou IVdsService::Refresh em sua implementação desse método.
Para provedores que usam esse método para enviar notificações, é uma boa prática agrupar notificações provenientes de um único evento juntos. Por exemplo, quando um LUN é excluído, envie VDS_NF_DRIVE_MODIFY notificações para todas as unidades afetadas juntas.
Requisitos
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | vdshwprv.h |
Biblioteca | Uuid.lib |