FltFsControlFile 함수(fltkernel.h)
FltFsControlFile 루틴은 컨트롤 코드를 지정된 파일 시스템 또는 파일 시스템 필터 드라이버로 직접 보내 해당 드라이버가 지정된 작업을 수행하도록 합니다.
구문
NTSTATUS FLTAPI FltFsControlFile(
[in] PFLT_INSTANCE Instance,
[in] PFILE_OBJECT FileObject,
[in] ULONG FsControlCode,
[in, optional] PVOID InputBuffer,
[in] ULONG InputBufferLength,
[out, optional] PVOID OutputBuffer,
[in] ULONG OutputBufferLength,
[out, optional] PULONG LengthReturned
);
매개 변수
[in] Instance
호출자에 대한 불투명 instance 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
[in] FileObject
이 요청의 대상인 파일 또는 디렉터리에 대한 파일 개체 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
[in] FsControlCode
FSCTL_ 수행할 파일 시스템 작업을 나타내는 XXX 코드입니다. 이 매개 변수의 값은 InputBuffer 및 OutputBuffer의 형식과 필수 길이를 결정하고 다음 매개 변수 쌍(InputBuffer 및 InputBufferLength, OutputBuffer 및 OutputBufferLength)이 필요한 매개 변수 쌍을 결정합니다.
[in, optional] InputBuffer
대상 드라이버에 부여할 디바이스별 정보를 포함하는 호출자가 할당한 입력 버퍼에 대한 포인터입니다. FsControlCode 매개 변수가 입력 데이터가 필요하지 않은 작업을 지정하는 경우 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
[in] InputBufferLength
InputBuffer의 버퍼 크기(바이트)입니다. InputBuffer가 NULL인 경우 이 값은 무시됩니다.
[out, optional] OutputBuffer
대상 드라이버에서 정보를 반환하는 호출자가 할당한 출력 버퍼에 대한 포인터입니다. FsControlCode 매개 변수가 출력 데이터가 필요하지 않은 작업을 지정하는 경우 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
[in] OutputBufferLength
OutputBuffer의 버퍼 크기(바이트)입니다. OutputBuffer가 NULL인 경우 이 값은 무시됩니다.
[out, optional] LengthReturned
OutputBuffer에서 버퍼에 반환된 정보의 크기(바이트)를 수신하는 호출자 할당 변수에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
반환 값
FltFsControlFile 은 STATUS_SUCCESS 또는 적절한 NTSTATUS 값을 반환합니다.
설명
미니필터 드라이버는 ZwFsControlFile 대신 이 루틴을 호출해야 합니다.
커널 모드 드라이버에 대해 현재 문서화된 FSCTL 코드는 다음과 같습니다.
FSCTL_OPBATCH_ACK_CLOSE_PENDING
FSCTL_OPLOCK_BREAK_ACKNOWLEDGE
시스템 정의 FSCTL_XXX 코드에 대한 자세한 내용은 Microsoft Windows SDK 설명서에서 DeviceIoControl에 대한 참조 항목의 설명 섹션을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | fltkernel.h(Fltkernel.h 포함) |
라이브러리 | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |