Mendaftarkan Callout dengan Mesin Filter
Setelah driver callout membuat objek perangkat, kemudian dapat mendaftarkan callout-nya dengan mesin filter. Driver callout dapat mendaftarkan callout-nya dengan mesin filter kapan saja, bahkan jika mesin filter saat ini tidak berjalan. Untuk mendaftarkan callout dengan mesin filter, driver callout memanggil fungsi FwpsCalloutRegister0 . Contohnya:
// Prototypes for the callout's callout functions
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_OUT0 *classifyOut
);
NTSTATUS NTAPI
NotifyFn(
IN FWPS_CALLOUT_NOTIFY_TYPE notifyType,
IN const GUID *filterKey,
IN const FWPS_FILTER0 *filter
);
VOID NTAPI
FlowDeleteFn(
IN UINT16 layerId,
IN UINT32 calloutId,
IN UINT64 flowContext
);
// Callout registration structure
const FWPS_CALLOUT0 Callout =
{
{ ... }, // GUID key identifying the callout
0, // Callout-specific flags (none set here)
ClassifyFn,
NotifyFn,
FlowDeleteFn
};
// Variable for the run-time callout identifier
UINT32 CalloutId;
NTSTATUS
DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
)
{
PDEVICE_OBJECT deviceObject;
NTSTATUS status;
...
status =
FwpsCalloutRegister0(
deviceObject,
&Callout,
&CalloutId
);
...
return status;
}
Jika panggilan ke fungsi FwpsCalloutRegister0 berhasil, variabel yang diarahkan oleh parameter terakhir berisi pengidentifikasi run-time untuk callout. Pengidentifikasi run-time ini sesuai dengan GUID yang ditentukan untuk kunci callout.
Satu driver callout dapat menerapkan lebih dari satu callout. Jika driver callout mengimplementasikan lebih dari satu callout, ia memanggil fungsi FwpsCalloutRegister0 satu kali untuk setiap callout yang didukungnya untuk mendaftarkan setiap callout dengan mesin filter.
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