Compartilhar via


Implementando FormatProperties

O Monitor de Rede chama a função FormatProperties para formatar os dados exibidos no painel de detalhes da interface do usuário do Monitor de Rede. Normalmente, FormatProperties é chamado para formatar a linha de resumo de um protocolo e, em seguida, formatar todas as instâncias de propriedade do protocolo dentro de um quadro. No entanto, o Monitor de Rede não identifica o número de vezes que FormatProperties é chamado para um analisador específico.

Ao chamar FormatProperties, o Monitor de Rede fornece uma estrutura PROPERTYINST para cada propriedade exibida. A estrutura PROPERTYINST fornece informações sobre os dados a serem exibidos, incluindo um ponteiro para a estrutura PROPERTYINFO que especifica a função a ser usada para formatar a propriedade de dados exibida.

Observação

Uma estrutura PROPERTYINFO é especificada ao adicionar uma propriedade ao banco de dados de propriedade do analisador.

 

O Monitor de Rede identifica a função de formato a ser chamada para cada instância de propriedade. O membro InstanceData da estrutura PROPERTYINFO pode especificar o seguinte:

As funções FormatPropertyInstance e custom format retornam os dados formatados exibidos no painel de detalhes da interface do usuário do Monitor de Rede.

A ilustração a seguir mostra como o Monitor de Rede identifica a função a ser chamada para cada instância de propriedade.

como o monitor de rede identifica a função a ser chamada

O procedimento a seguir identifica as etapas necessárias para implementar FormatProperties.

Para implementar FormatProperties

  • Usando uma estrutura de loop, chame a função format para cada estrutura PROPERTYINST que é passada para o analisador no parâmetro lpPropInst da função FormatProperties .

Veja a seguir uma implementação básica de FormatProperties.

#include <windows.h>

DWORD BHAPI MyProtocolFormatProperties( HFRAME hFrame,
                                        LPBYTE         pMacFrame,
                                        LPBYTE         pBLRPLATEFrame,
                                        DWORD          nPropertyInsts
                                        LPPROPERTYINST  p)
  {
    while( nPropertyInsts-- > 0)
      {
         ( (FORMAT) p->lpPropertyInfo->InstanceData) ) (p);
         p++;
      }
  return BHERR_SUCCESS;
  }