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

Функция PktMonClntComponentRegister регистрирует компонент с помощью монитора пакетов, позволяя ему отслеживать и сообщать о действиях пакета.

Синтаксис

NTSTATUS PktMonClntComponentRegister(
  PKTMON_COMPONENT_CONTEXT *CompContext,
  PCUNICODE_STRING         Name,
  PCUNICODE_STRING         Description,
  PKTMON_COMPONENT_TYPE    Type,
  PKTMON_PACKET_TYPE       PacketType
);

Параметры

CompContext

Указатель на PKTMON_COMPONENT_CONTEXT , который содержит контекст для компонента. Ноль инициализация этой структуры перед вызовом PktMonClntComponentRegister, которая заполняет структуру.

Name

Имя компонента монитора пакетов.

Description

Описание компонента монитора пакетов.

Type

Тип, связанный с этим компонентом. Это должно быть одно из значений, определенных в перечислении PKTMON_COMPONENT_TYPE .

PacketType

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

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

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

Замечания

Если компонент больше не нужен, приложение PktMonClnt должно вызвать PktMonClntComponentUnregister , чтобы отменить регистрацию из монитора пакетов и освободить все связанные ресурсы.

Требования

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

См. также

Пример

PKTMON_COMPONENT_CONTEXT PktMonComp = { 0 };

NTSTATUS
PktMonApiTstRegisterComponent(VOID)
{
    NTSTATUS status = STATUS_SUCCESS;

    DECLARE_CONST_UNICODE_STRING(DriverName, L"pktmonapitst.sys");
    DECLARE_CONST_UNICODE_STRING(Description, L"Sample driver to report packet drops to pktmon.sys");

    status = PktMonClntComponentRegister(
        &PktMonComp,
        &DriverName,
        &Description,
        PktMonComp_IpInterface,
        PktMonPayload_IP);

if (!NT_SUCCESS(status)) {
        // Log error
    }

    return status;
}