Compartilhar via


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
Netmon.h
Biblioteca
Nmapi.lib
DLL
Nmapi.dll