Função ExpertGetFrame
A função ExpertGetFrame retorna o quadro solicitado de uma captura carregada.
Sintaxe
DWORD WINAPI ExpertGetFrame(
_In_ HEXPERTKEY hExpertKey,
_In_ DWORD Direction,
_In_ DWORD RequestFlags,
_In_ DWORD RequestedFrameNumber,
_In_ HFILTER hFilter,
_Out_ LPEXPERTFRAMEDESCRIPTOR pEFrameDescriptor
);
Parâmetros
-
hExpertKey [in]
-
Um identificador de especialista exclusivo. O Monitor de Rede passa o identificador hExpertKey para o especialista quando ele chama a função Executar .
-
Direção [in]
-
Um valor que identifica como o Monitor de Rede pesquisa o quadro.
Valor Significado - GET_SPECIFIED_FRAME
Retornar o quadro solicitado. - GET_FRAME_NEXT_FORWARD
Retornar o próximo quadro. - GET_FRAME_NEXT_BACKWARD
Retornar o quadro anterior. -
RequestFlags [in]
-
Os sinalizadores que especificam como o Monitor de Rede deve lidar com a solicitação. Especifique um ou mais dos sinalizadores a seguir.
Valor Significado - FLAGS_DEFER_TO_UI_FILTER
Antes de aplicar o parâmetro de filtro de exibição do especialista especificado em hFilter, aplique o filtro de exibição que o Monitor de Rede está usando quando o especialista for iniciado. - FLAGS_ATTACH_PROPERTIES
As propriedades que todos os analisadores de protocolo encontram com seções reivindicadas desse quadro são anexadas ao quadro. Se o sinalizador não estiver definido, o campo lpPropertyTable da estrutura EXPERTFRAMEDESCRIPTOR (retornado por pEFrameDescriptor) será definido como NULL. -
RequestedFrameNumber [in]
-
O número do quadro solicitado.
-
hFilter [in]
-
Um identificador para o filtro de exibição de especialista. Se o especialista não tiver um filtro de exibição, defina o parâmetro como NULL.
-
pEFrameDescriptor [out]
-
A estrutura EXPERTFRAMEDESCRIPTOR que, no retorno, descreve o quadro. O especialista deve alocar e liberar a memória que essa estrutura usa.
Valor retornado
Se a função for bem-sucedida, o valor retornado será NMERR_SUCCESS.
Se a função não for bem-sucedida, o valor retornado indicará o motivo da falha. Se o valor retornado for NMERR_EXPERT_TERMINATE, o especialista deverá limpo imediatamente para cima e retornar; o usuário anulou a execução do especialista.
Comentários
Se você definir FLAGS_ATTACH_PROPERTIES, a chamada exigirá mais recursos do que se você não definir o sinalizador. Se o sinalizador não estiver definido, um ponteiro apontará para o quadro bruto e para os dados sobre o quadro. Se esse sinalizador for definido, o Monitor de Rede anexa todas as propriedades ao quadro chamando cada analisador que declara uma parte do quadro. Esse pode ser um processo lento.
Os especialistas não devem definir o sinalizador FLAGS_ATTACH_PROPERTIES, a menos que os especialistas exijam as propriedades que os analisadores anexam ao quadro. Se possível, os especialistas devem chamar a função ExpertGetFrame sem o sinalizador e, em seguida, extrair os dados necessários diretamente do quadro.
Se o especialista chamar ExpertGetFrame sem o sinalizador FLAGS_ATTACH_PROPERTIES e exigir as propriedades associadas a esse quadro (um evento, por exemplo), o especialista chamará ExpertGetFrame com os mesmos parâmetros, exceto pelo seguinte:
Direction = EXPERT_GET_SPECIFIED_FRAME;
RequestFlags &= (~EXPERT_DEFER_TO_UI_FILTER) | EXPERT_ATTACH_PROPERTIES;
RequestedFrameNumber= (The actual frame number you want);
hFilter = NULL;
pEFrameDescriptor = (The same one as last time);
Usar o código anterior garante que o especialista obtenha o quadro necessário sem precisar chamar o código de filtro novamente.
Você pode definir o parâmetro hFilter como um LPVOID. Se existir, o quadro retornado passará esse filtro. Se o especialista não tiver um filtro de exibição para passar para a função (se hFilter for NULL ), o quadro retornado não será filtrado.
A função ExpertGetFrame só pode ser chamada por especialistas que implementam a função Executar ou Configurar exportação.
Requisitos
Requisito | Valor |
---|---|
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] |
Cabeçalho |
|
Biblioteca |
|
DLL |
|