ExpertGetFrame 함수

ExpertGetFrame 함수는 로드된 캡처에서 요청된 프레임을 반환합니다.

구문

DWORD WINAPI ExpertGetFrame(
  _In_  HEXPERTKEY              hExpertKey,
  _In_  DWORD                   Direction,
  _In_  DWORD                   RequestFlags,
  _In_  DWORD                   RequestedFrameNumber,
  _In_  HFILTER                 hFilter,
  _Out_ LPEXPERTFRAMEDESCRIPTOR pEFrameDescriptor
);

매개 변수

hExpertKey [in]

고유한 전문가 식별자입니다. 네트워크 모니터는 실행 함수를 호출할 때 hExpertKey 식별자를 전문가에게 전달합니다.

방향 [in]

네트워크 모니터가 프레임을 검색하는 방법을 식별하는 값입니다.

의미
GET_SPECIFIED_FRAME
요청된 프레임을 반환합니다.
GET_FRAME_NEXT_FORWARD
다음 프레임을 반환합니다.
GET_FRAME_NEXT_BACKWARD
이전 프레임을 반환합니다.

RequestFlags [in]

네트워크 모니터가 요청을 처리하는 방법을 지정하는 플래그입니다. 다음 플래그 중 하나 이상을 지정합니다.

의미
FLAGS_DEFER_TO_UI_FILTER
hFilter에 지정된 전문가의 디스플레이 필터 매개 변수를 적용하기 전에 전문가가 시작될 때 네트워크 모니터에서 사용하는 디스플레이 필터를 적용합니다.
FLAGS_ATTACH_PROPERTIES
이 프레임의 클레임된 섹션을 사용하여 모든 프로토콜 파서가 찾은 속성은 프레임에 연결됩니다. 플래그가 설정되지 않은 경우 EXPERTFRAMEDESCRIPTOR 구조체의 lpPropertyTable 필드(pEFrameDescriptor에서 반환됨)가 NULL로 설정됩니다.

RequestedFrameNumber [in]

요청된 프레임의 수입니다.

hFilter [in]

전문가 디스플레이 필터에 대한 핸들입니다. 전문가에게 디스플레이 필터가 없는 경우 매개 변수를 NULL로 설정합니다.

pEFrameDescriptor [out]

반환할 때 프레임을 설명하는 EXPERTFRAMEDESCRIPTOR 구조체입니다. 전문가는 이 구조에서 사용하는 메모리를 할당하고 해제해야 합니다.

반환 값

함수가 성공하면 반환 값이 NMERR_SUCCESS.

함수가 실패하면 반환 값은 실패 이유를 나타냅니다. 반환 값이 NMERR_EXPERT_TERMINATE 경우 전문가는 즉시 클린 반환해야 합니다. 사용자가 전문가 실행을 중단했습니다.

설명

FLAGS_ATTACH_PROPERTIES 설정하면 플래그를 설정하지 않은 경우보다 더 많은 리소스가 호출에 필요합니다. 플래그가 설정되지 않은 경우 포인터는 원시 프레임과 프레임에 대한 데이터를 가리킵니다. 이 플래그가 설정되면 네트워크 모니터는 프레임의 일부를 주장하는 모든 파서 를 호출하여 프레임에 모든 속성을 연결합니다. 이는 느린 프로세스일 수 있습니다.

전문가는 전문가가 파서가 프레임에 연결하는 속성을 요구하지 않는 한 FLAGS_ATTACH_PROPERTIES 플래그를 설정해서는 안됩니다. 가능하면 전문가는 플래그 없이 ExpertGetFrame 함수를 호출한 다음 프레임에서 직접 필요한 데이터를 추출해야 합니다.

전문가가 FLAGS_ATTACH_PROPERTIES 플래그 없이 ExpertGetFrame 을 호출하고 해당 프레임과 연결된 속성(예: 이벤트)이 필요한 경우 전문가는 다음을 제외하고 동일한 매개 변수를 사용하여 ExpertGetFrame 을 호출합니다.

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);

위의 코드를 사용하면 전문가가 필터 코드를 다시 호출하지 않고도 필요한 프레임을 얻을 수 있습니다.

hFilter 매개 변수를 LPVOID로 설정할 수 있습니다. 있는 경우 반환된 프레임이 이 필터를 전달합니다. 전문가에게 함수에 전달할 디스플레이 필터가 없는 경우( hFilterNULL 인 경우) 반환된 프레임이 필터링되지 않습니다.

ExpertGetFrame 함수는 실행 또는 내보내기 구성 함수를 구현하는 전문가만 호출할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server[데스크톱 앱만]
헤더
Netmon.h
라이브러리
Nmapi.lib
DLL
Nmapi.dll