Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция PktMonClntInitialize инициализирует приложение PktMonClnt, информируя монитор пакетов об идентификаторе модуля, который идентифицирует клиент, а также некоторые обработчики, которые он делает доступными для вызова монитора пакетов.
Синтаксис
NTSTATUS PktMonClntInitialize(
PNPI_MODULEID ModuleId,
PKTMON_CLIENT_COMP_ENUM_HANDLER EnumComponents,
PKTMON_CLIENT_CLEANUP_HANDLER CleanupComponents,
PKTMON_CLIENT_COMP_NOTIFY_HANDLER NotifyComponent
);
Параметры
ModuleId
Идентификатор сетевого модуля, используемый для идентификации приложения PktMonClnt.
EnumComponents
Обработчик, который должен вызывать монитор пакетов для перечисления компонентов.
typedef VOID (NTAPI PKTMON_CLIENT_COMP_ENUM)(VOID);
typedef PKTMON_CLIENT_COMP_ENUM(*PKTMON_CLIENT_COMP_ENUM_HANDLER);
CleanupComponents
Обработчик, который монитор пакетов должен вызывать компоненты очистки. Может иметь значение NULL.
typedef VOID (NTAPI PKTMON_CLIENT_CLEANUP)(VOID);
typedef PKTMON_CLIENT_CLEANUP(*PKTMON_CLIENT_CLEANUP_HANDLER);
NotifyComponent
Обработчик, который монитор пакетов должен вызывать для уведомления компонента. Может иметь значение NULL.
typedef VOID (NTAPI PKTMON_CLIENT_COMP_NOTIFY)(_In_ PKTMON_COMPONENT_CONTEXT *CompContext);
typedef PKTMON_CLIENT_COMP_NOTIFY(*PKTMON_CLIENT_COMP_NOTIFY_HANDLER);
Возвращаемое значение
Если функция успешно выполнена, она возвращается STATUS_SUCCESS. В противном случае возвращается NTSTATUS код ошибки.
Замечания
PktMonClntInitialize следует вызывать только один раз для каждого модуля. Чтобы неинициализировать драйвер перед выходом, вызовите функцию PktMonClntUninitialize .
Требования
| Требование | Ценность |
|---|---|
| Заголовок | pktmonclntk.h |
См. также
Пример
const NPI_MODULEID NPI_PKTMON_CLNT_DRV_MODULEID = {
sizeof(NPI_MODULEID),
MIT_GUID,
{
0xeb004a00 + 0xea,
0x9b1a, 0x11d4, {0x91, 0x23, 0x00, 0x50, 0x04, 0x77, 0x59, 0xbc}
}
};
VOID NTAPI PktMonApiTstRegistrationCallback(VOID)
{
// NOTE: Can be used to register providers
}
VOID NTAPI PktMonApiTstClientCleanupCallback(VOID)
{
// Cleanup components
}
VOID NTAPI PktMonApiTstClientCompNotifyCallback(_In_ PKTMON_COMPONENT_CONTEXT *CompContext)
{
UNREFERENCED_PARAMETER(CompContext);
// Handle notification
}
NTSTATUS NTAPI DriverEntry(
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
)
{
NTSTATUS status = STATUS_SUCCESS;
status = PktMonClntInitialize(
&NPI_PKTMON_CLNT_DRV_MODULEID,
PktMonApiTstRegistrationCallback,
PktMonApiTstClientCleanupCallback,
PktMonApiTstClientCompNotifyCallback
);
if (STATUS_SUCCESS != status)
{
// Log error
return status;
}
// Additional driver initialization code
return status;
}