FltAllocateCallbackData 函式 (fltkernel.h)
FltAllocateCallbackData 配置迷你篩選驅動程式可用來起始 I/O 要求的回呼數據結構。
語法
NTSTATUS FLTAPI FltAllocateCallbackData(
[in] PFLT_INSTANCE Instance,
[in, optional] PFILE_OBJECT FileObject,
[out] PFLT_CALLBACK_DATA *RetNewCallbackData
);
參數
[in] Instance
起始 I/O 作業之迷你篩選驅動程序實例的不透明實例指標。 這是必要參數,而且無法 NULL。
[in, optional] FileObject
要用於 I/O 作業的檔案物件指標。 這個參數是選擇性的,而且可以 NULL。
[out] RetNewCallbackData
接收新配置回呼資料 (FLT_CALLBACK_DATA) 結構的呼叫端配置變數的指標。
傳回值
FltAllocateCallbackData 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,如下所示:
傳回碼 | 描述 |
---|---|
|
FltAllocateCallbackData 嘗試配置回呼數據結構時發生集區配置失敗。 這是錯誤碼。 |
言論
小型篩選驅動程式可以呼叫 FltAllocateCallbackData,為迷你篩選驅動程式所起始的 I/O 作業配置回呼數據 (FLT_CALLBACK_DATA) 結構。
初始化 FltAllocateCallbackData所傳回的回呼數據結構參數之後,呼叫端會將 結構傳遞至 FltPerformSynchronousIo 或 FltPerformAsynchronousIo來起始 I/O 作業。 這些例程只會將 I/O 作業傳送至附加在起始實例下方的小型篩選驅動程序實例(在 Instance 參數中指定)和文件系統。 附加在指定實例上方的迷你篩選驅動程式不會收到I/O 作業。
迷你篩選驅動程式只能起始 IRP 型 I/O 作業。 它們無法起始快速 I/O 或文件系統篩選器 (FSFilter) 回呼作業。
Minifilter 驅動程式應該使用 FltAllocateCallbackData、FltPerformAsynchronousIo,以及 FltPerformSynchronousIo 僅適用於無法使用下列例程的 I/O 作業:
當不再需要由 FltAllocateCallbackData 配置的回呼數據結構時,呼叫者會負責呼叫 fltFreeCallbackData 來釋放它。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
標頭 | fltkernel.h (包括 Fltkernel.h) |
連結庫 | FltMgr.lib |
IRQL | <= APC_LEVEL |