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 수행할 파일 시스템 제어 작업을 나타내는 코드입니다. 이 매개 변수의 값은 InputBufferOutputBuffer의 형식 및 필수 길이와 다음 매개 변수 쌍 중 필요한 형식을 결정합니다. 시스템 정의 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