다음을 통해 공유


FltDeviceIoControlFile 함수(fltkernel.h)

FltDeviceIoControlFile 은 지정된 디바이스 드라이버에 직접 제어 코드를 보내 해당 드라이버가 지정된 작업을 수행하도록 합니다.

구문

NTSTATUS FLTAPI FltDeviceIoControlFile(
  [in]            PFLT_INSTANCE Instance,
  [in]            PFILE_OBJECT  FileObject,
  [in]            ULONG         IoControlCode,
  [in, optional]  PVOID         InputBuffer,
  [in]            ULONG         InputBufferLength,
  [out]           PVOID         OutputBuffer,
  [in]            ULONG         OutputBufferLength,
  [out, optional] PULONG        LengthReturned
);

매개 변수

[in] Instance

호출자에 대한 불투명 instance 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

[in] FileObject

이 요청의 대상인 파일 또는 디바이스에 대한 파일 개체 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

[in] IoControlCode

IOCTL_ 수행할 디바이스 I/O 작업을 나타내는XXX 코드입니다. 이 매개 변수의 값은 InputBufferOutputBuffer의 형식과 필수 길이를 결정하며 다음 매개 변수 쌍(InputBufferInputBufferLength 또는 OutputBufferOutputBufferLength)이 필요한 매개 변수 쌍을 결정합니다.

[in, optional] InputBuffer

대상 드라이버에 부여할 디바이스별 정보를 포함하는 호출자가 할당한 입력 버퍼에 대한 포인터입니다. IoControlCode 매개 변수가 입력 데이터가 필요하지 않은 작업을 지정하는 경우 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

[in] InputBufferLength

InputBuffer의 버퍼 크기(바이트)입니다. InputBufferNULL인 경우 이 값은 무시됩니다.

[out] OutputBuffer

대상 드라이버에서 정보가 반환되는 호출자가 할당한 출력 버퍼에 대한 포인터입니다. IoControlCode 매개 변수가 출력 데이터가 필요하지 않은 작업을 지정하는 경우 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

[in] OutputBufferLength

OutputBuffer의 버퍼 크기(바이트)입니다. OutputBufferNULL인 경우 이 값은 무시됩니다.

[out, optional] LengthReturned

OutputBuffer에서 버퍼에 반환된 정보의 크기(바이트)를 수신하는 호출자 할당 변수에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

반환 값

FltDeviceIoControlFile 은 STATUS_SUCCESS 또는 적절한 NTSTATUS 값을 반환합니다.

설명

시스템 정의 IOCTL_XXX 코드에 대한 자세한 내용은 Microsoft Windows SDK 설명서에서 DeviceIoControl에 대한 참조 항목의 설명 섹션을 참조하세요.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 fltkernel.h(Fltkernel.h 포함)
라이브러리 FltMgr.lib
IRQL PASSIVE_LEVEL

추가 정보

FltFsControlFile