CcDeferWrite 함수(ntifs.h)
CcDeferWrite 루틴은 캐시된 파일에 쓰는 것을 지연합니다. 제공된 게시 루틴은 쓰기 작업을 수용할 수 있을 때 캐시 관리자가 호출합니다.
통사론
void CcDeferWrite(
[in] PFILE_OBJECT FileObject,
[in] PCC_POST_DEFERRED_WRITE PostRoutine,
[in] PVOID Context1,
[in] PVOID Context2,
[in] ULONG BytesToWrite,
[in] BOOLEAN Retrying
);
매개 변수
[in] FileObject
데이터를 쓸 캐시된 파일의 파일 개체에 대한 포인터입니다.
[in] PostRoutine
캐시된 파일에 쓰기 위해 캐시 관리자가 호출할 루틴의 주소입니다.
게시물 루틴은 ntifs.h에서 다음과 같이 정의됩니다.
typedef
VOID (*PCC_POST_DEFERRED_WRITE) (
_In_ PVOID Context1,
_In_ PVOID Context2
);
이 함수는 현재 IRP가 FSRTL_MOD_WRITE_TOP_LEVEL_IRP 설정된 TopLevelIrp 필드를 사용하여 호출할 수 있습니다.
[in] Context1
PostRoutinepost 루틴에 대한 첫 번째 매개 변수입니다.
[in] Context2
PostRoutinepost 루틴에 대한 두 번째 매개 변수입니다.
[in] BytesToWrite
쓸 데이터의 바이트 수입니다.
[in] Retrying
요청이 처음으로 게시되는 경우 FALSE
반환 값
없음
발언
파일 시스템은 일반적으로 CcCanIWriteFALSE 반환 값을 받은 후 CcDeferWrite 호출합니다.
파일을 캐시하려면 CcInitializeCacheMap사용합니다.
PostRoutine 전달되는 컨텍스트 매개 변수는 일반적으로 I/O 요청 및 관련 컨텍스트 데이터입니다.
요구 사항
요구 | 값 |
---|---|
대상 플랫폼 | 보편적 |
헤더 | ntifs.h(Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
참고 항목
ccCanIWrite
ccInitializeCacheMap