IRP_MJ_MDL_WRITE_COMPLETE 공용 구조체에 대한 FLT_PARAMETERS
다음 FLT_PARAMETERS 공용 구조체 멤버는 FLT_IO_PARAMETER_BLOCK 때 사용됩니다. MajorFunction 이 IRP_MJ_MDL_WRITE_COMPLETE.
구문
typedef union _FLT_PARAMETERS {
... ;
struct {
LARGE_INTEGER FileOffset;
PMDL MdlChain;
} MdlWriteComplete;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
멤버
MdlWriteComplete: 다음 멤버를 포함하는 구조체입니다.
FileOffset: 캐시된 파일 내에서 바이트를 시작합니다.
MdlChain: 캐시된 파일에 쓸 데이터가 포함된 페이지를 설명하는 하나 이상의 MDL(메모리 설명자 목록) 체인에 대한 포인터를 받는 변수에 대한 포인터입니다.
설명
IRP_MJ_MDL_WRITE_COMPLETE 빠른 I/O 작업입니다. 다음 차이점을 제외하고 IRP_MJ_WRITE + IRP_MN_COMPLETE_MDL 동일한 작업을 수행합니다.
- IRP 기반 작업은 MDL 작업을 수행하기 전에 아직 캐시되지 않은 경우 파일에 대한 캐싱을 설정합니다.
- 파일이 아직 캐시되지 않은 경우 빠른 IO 작업이 실패합니다.
IRP_MJ_MDL_WRITE_COMPLETE 작업에 대한 FLT_PARAMETERS 구조에는 빠른 I/O MdlWriteComplete 작업에 대한 매개 변수가 포함됩니다. 이 작업은 Iopb이 가리키는 FLT_IO_PARAMETER_BLOCK 구조에서 작업의 매개 변수를 사용하여 콜백 데이터(FLT_CALLBACK_DATA) 구조체로 표시됩니다.
빠른 I/O IRP_MJ_MDL_WRITE_COMPLETE 요청이 실패하면 I/O의 발급자에서 요청을 다시 발행하는 방법을 결정합니다. 예를 들어 요청은 IRP_MJ_WRITE + IRP_MN_COMPLETE_MDL 사용하여 IRP 기반 작업으로 재발행될 수 있습니다.
요구 사항
요구 사항 유형 | 요건 |
---|---|
헤더 | Fltkernel.h(Fltkernel.h 포함) |