Memproses Callout Penghapusan Alur
Saat aliran data yang sedang diproses oleh callout dihentikan, mesin filter memanggil fungsi callout flowDeleteFn callout jika driver callout sebelumnya mengaitkan konteks dengan aliran data. Fungsi callout flowDeleteFn callout melakukan pembersihan konteks yang diperlukan agar driver callout yang terkait dengan aliran data sebelum aliran data dihentikan.
Contohnya:
// Context structure to be associated with data flows
typedef struct FLOW_CONTEXT_ {
...
} FLOW_CONTEXT, *PFLOW_CONTEXT;
#define FLOW_CONTEXT_POOL_TAG 'fcpt'
// flowDeleteFn callout function
VOID NTAPI
FlowDeleteFn(
IN UINT16 layerId,
IN UINT32 calloutId,
IN UINT64 flowContext
)
{
PFLOW_CONTEXT context;
// Get the flow context structure
context = (PFLOW_CONTEXT)flowContext;
// Cleanup the flow context structure
...
// Free the memory for the flow context structure
ExFreePoolWithTag(
context,
FLOW_CONTEXT_POOL_TAG
);
}
Mesin filter secara otomatis menghapus konteks bahwa callout yang terkait dengan aliran data saat aliran data dihentikan. Oleh karena itu, callout tidak diperlukan untuk memanggil fungsi FwpsFlowRemoveContext0 dari fungsi callout flowDeleteFn-nya untuk menghapus konteks dari aliran data.
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