Pengelogan Data
Untuk menentukan data apa yang harus dicatat, fungsi callout classifyFn callout dapat memeriksa kombinasi bidang data, bidang metadata, dan data mentah apa pun yang diteruskan ke sana, serta data relevan yang telah disimpan dalam konteks yang terkait dengan filter atau aliran data.
Misalnya, jika callout melacak berapa banyak paket IPv4 masuk (masuk) yang dibuang oleh filter di lapisan jaringan, callout ditambahkan ke mesin filter di lapisan FWPM_LAYER_INBOUND_IPPACKET_V4_DISCARD. Dalam situasi ini, fungsi callout classifyFn callout mungkin menyerupai contoh berikut:
ULONG TotalDiscardCount = 0;
ULONG FilterDiscardCount = 0;
// classifyFn callout function
VOID NTAPI
ClassifyFn(
IN const FWPS_INCOMING_VALUES0 *inFixedValues,
IN const FWPS_INCOMING_METADATA_VALUES0 *inMetaValues,
IN OUT VOID *layerData,
IN const FWPS_FILTER0 *filter,
IN UINT64 flowContext,
IN OUT FWPS_CLASSIFY_OUT *classifyOut
)
{
// Increment the total count of discarded packets
InterlockedIncrement(&TotalDiscardCount);
// Check whether a discard reason metadata field is present
if (FWPS_IS_METADATA_FIELD_PRESENT(
inMetaValues,
FWPS_METADATA_FIELD_DISCARD_REASON))
{
// Check whether it is a general discard reason
if (inMetaValues->discardMetadata.discardModule ==
FWPS_DISCARD_MODULE_GENERAL)
{
// Check whether discarded by a filter
if (inMetaValues->discardMetadata.discardReason ==
FWPS_DISCARD_FIREWALL_POLICY)
{
// Increment the count of packets discarded by a filter
InterlockedIncrement(&FilterDiscardCount);
}
}
}
// Take no action on the data
classifyOut->actionType = FWP_ACTION_CONTINUE;
}
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk