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 작업을 시작하는 미니필터 드라이버 instance 대한 불투명 instance 포인터입니다. 이 매개 변수는 필수이며 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 작업을 시작합니다. 이러한 루틴은 시작 instance 아래에 연결된 미니필터 드라이버 인스턴스(Instance 매개 변수에 지정됨) 및 파일 시스템에만 I/O 작업을 보냅니다. 지정된 instance 위에 연결된 미니필터 드라이버는 I/O 작업을 받지 못합니다.
미니필터 드라이버는 IRP 기반 I/O 작업만 시작할 수 있습니다. 빠른 I/O 또는 FSFilter(파일 시스템 필터) 콜백 작업을 시작할 수 없습니다.
미니필터 드라이버는 다음과 같은 루틴을 사용할 수 없는 I/O 작업에만 FltAllocateCallbackData, FltPerformAsynchronousIo 및 FltPerformSynchronousIo 를 사용해야 합니다.
FltAllocateCallbackData에서 할당한 콜백 데이터 구조가 더 이상 필요하지 않은 경우 호출자는 FltFreeCallbackData를 호출하여 해제할 책임이 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | fltkernel.h(Fltkernel.h 포함) |
라이브러리 | FltMgr.lib |
IRQL | <= APC_LEVEL |