다음을 통해 공유


FltReuseCallbackData 함수(fltkernel.h)

FltReuseCallbackData 루틴은 다시 사용할 수 있도록 콜백 데이터 구조를 다시 초기화합니다.

구문

VOID FLTAPI FltReuseCallbackData(
  [in, out] PFLT_CALLBACK_DATA CallbackData
);

매개 변수

[in, out] CallbackData

재사용할 콜백 데이터(FLT_CALLBACK_DATA) 구조체에 대한 포인터입니다. 이 구조체는 FltAllocateCallbackData에 대한 이전 호출에 의해 할당되어야 합니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

반환 값

없음

설명

FltReuseCallbackData 는 콜백 데이터(FLT_CALLBACK_DATA) 구조를 다시 초기화하여 새 I/O 작업에 사용할 수 있도록 합니다. FltReuseCallbackData 는 콜백 데이터 구조의 I/O 매개 변수 블록의 TargetInstance 필드 또는 TargetFileObject 필드를 변경하지 않습니다.

FltReuseCallbackData 루틴은 제공된 CallbackData 개체와 연결된 모든 MDL 체인을 해제합니다. FLT_CALLBACK_DATA 개체와 연결된 MDL 체인에 대한 포인터는 해당 개체에 대해 FltReuseCallbackData를 호출한 후 유효하지 않습니다.

FltReuseCallbackData를 사용하여 콜백 데이터 구조를 다시 사용하는 것은 구조를 해제하고 새 구조를 할당하는 것보다 빠릅니다.

미니필터 드라이버는 이전에 FltAllocateCallbackData와 함께 할당되고 FltPerformSynchronousIo 또는 FltPerformAsynchronousIo 호출에 사용된 콜백 데이터 구조에서만 FltReuseCallbackData를 사용해야 합니다.

비동기 I/O에 콜백 데이터 구조가 사용된 경우 FltPerformAsynchronousIo 호출에 지정된 CallbackRoutine이 호출될 때까지 미니필터 드라이버는 FltReuseCallbackData를 호출하지 않아야 합니다.

특히 미니필터 드라이버는 미니필터 드라이버 자체에 의해 할당되지 않은 콜백 데이터 구조에 이 루틴을 사용하면 안 됩니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 fltkernel.h(Fltkernel.h 포함)
라이브러리 FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

추가 정보

FLT_CALLBACK_DATA

FltAllocateCallbackData

FltFreeCallbackData

FltPerformAsynchronousIo

FltPerformSynchronousIo

FltReissueSynchronousIo