FsRtlKernelFsControlFile 함수(ntifs.h)
FsRtlKernelFsControlFile 함수는 명시적 FSCTL_XXX IRP를 빌드하고, 스택 아래로 보내고, 완료될 때까지 동기적으로 대기하고, 결과를 반환합니다. 이 함수를 사용하면 호출자가 처리 대신 FileObject
통사론
NTSTATUS FsRtlKernelFsControlFile(
[in] PFILE_OBJECT FileObject,
[in] ULONG FsControlCode,
[in] PVOID InputBuffer,
[in] ULONG InputBufferLength,
[out] PVOID OutputBuffer,
[out] ULONG OutputBufferLength,
[out] PULONG RetOutputBufferSize
);
매개 변수
[in] FileObject
작업을 보낼 FILE_OBJECT 대한 포인터입니다.
[in] FsControlCode
수행할 파일 시스템 제어 작업을 나타내는 FSCTL_XXX 코드입니다. 이 매개 변수의 값은 InputBuffer 및 OutputBuffer형식 및 필요한 길이와 다음 매개 변수 쌍을 결정합니다. 시스템 정의 FSCTL_XXX 코드에 대한 자세한 내용은 Microsoft Windows SDK 설명서에서 DeviceIoControl 대한 참조 항목의 "설명" 섹션을 참조하세요.
[in] InputBuffer
대상 드라이버에 부여할 디바이스별 정보를 포함하는 호출자 할당 입력 버퍼에 대한 포인터입니다. FsControlCode 입력 데이터가 필요하지 않은 작업을 지정하는 경우 이 포인터는 선택 사항이며 NULL일 수 있습니다. 이 버퍼는 반환 시 수정될 수 있으며 호출자는 이를 조정해야 합니다. 이 버퍼를 사용하여 출력 데이터를 저장할 수 있기 때문입니다.
[in] InputBufferLength
InputBuffer 길이(바이트)입니다.
[out] OutputBuffer
대상 드라이버에서 정보가 반환되는 호출자 할당 출력 버퍼에 대한 포인터입니다. FsControlCode 출력 데이터를 생성하지 않는 작업을 지정하는 경우 이 포인터는 선택 사항이며 NULL일 수 있습니다.
[out] OutputBufferLength
OutputBuffer 길이(바이트)입니다.
[out] RetOutputBufferSize
출력 버퍼에 실제로 기록(반환)된 바이트 수를 받습니다.
반환 값
FsRtlKernelFsControlFile STATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.
값 | 의미 |
---|---|
STATUS_INSUFFICIENT_RESOURCES | 풀 할당 오류가 발생했습니다. |
STATUS_INVALID_PARAMETER | 잘못된 매개 변수가 제공되었습니다(예: 잘못된 FileObject). |
발언
FsRtlKernelFsControlFile 특정 작업에 대한 볼륨 권한을 관리할 필요 없이 작업을 수행할 수 있는 IRP_MN_KERNEL_CALL 부 코드를 설정합니다.
이 함수는 전달된 모든 버퍼가 커널 모드 버퍼라고 가정합니다.
요구 사항
요구 | 값 |
---|---|
헤더 | ntifs.h |
참고 항목
ZwFsControlFile