Функция PktMonClntAddEdge (pktmonclntk.h)

Функция PktMonClntAddEdge добавляет край к компоненту монитора пакетов. Ребра представляет пару точек входа и выхода для компонента. Его можно называть границей для компонента. Каждый компонент при необходимости регистрирует его нижний или верхний край.

Синтаксис

NTSTATUS PktMonClntAddEdge(
  PKTMON_COMPONENT_CONTEXT *CompContext,
  PCUNICODE_STRING         Name,
  PKTMON_PACKET_TYPE       PacketType,
  PKTMON_EDGE_CONTEXT      *EdgeContext
);

Параметры

CompContext

Указатель на структуру PKTMON_COMPONENT_CONTEXT , содержащую контекст для компонента.

Name

Имя добавляемого края.

PacketType

Тип пакета, обрабатываемый этим краем. Должно быть допустимым значением, определенным в PKTMON_PACKET_TYPE.

EdgeContext

Указатель на PKTMON_EDGE_CONTEXT , в котором будут храниться сведения о контексте для этого края.

Возвращаемое значение

Если функция успешно выполнена, она возвращается STATUS_SUCCESS. В противном случае возвращается NTSTATUS код ошибки.

Замечания

Ребра представляет пару точек входа и выхода для компонента. Его можно называть границей для компонента. Каждый компонент при необходимости регистрирует его нижний и верхний край. Компонент может иметь несколько ребер. Один вызов PktMonClntAddEdge должен быть сделан для каждого из этих ребер.

Элемент ListLinkPKTMON_EDGE_CONTEXT используется для отслеживания всех пограничных контекстов, принадлежащих компоненту. ListLink можно использовать для доступа к этим пограничным контекстам.

Требования

Требование Ценность
Заголовок pktmonclntk.h

См. также

Пример

PKTMON_EDGE_CONTEXT EdgeContext = { 0 };

NTSTATUS
NTAPI
PktMonApiTstAddEdge()
{
    NTSTATUS status = STATUS_SUCCESS;

    DECLARE_CONST_UNICODE_STRING(EdgeName, L"LowerEdge");

    status = PktMonClntAddEdge(
        &PktMonComp,
        &EdgeName,
        PktMonPayload_IP,
        &EdgeContext
    );
    if (STATUS_SUCCESS != status)
    {
        return status;
    }

    return status;
}