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 코드입니다. 이 매개 변수의 값은 InputBuffer 및 OutputBuffer의 형식과 필수 길이를 결정하며 다음 매개 변수 쌍(InputBuffer 및 InputBufferLength 또는 OutputBuffer 및 OutputBufferLength)이 필요한 매개 변수 쌍을 결정합니다.
[in, optional] InputBuffer
대상 드라이버에 부여할 디바이스별 정보를 포함하는 호출자가 할당한 입력 버퍼에 대한 포인터입니다. IoControlCode 매개 변수가 입력 데이터가 필요하지 않은 작업을 지정하는 경우 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
[in] InputBufferLength
InputBuffer의 버퍼 크기(바이트)입니다. InputBuffer가 NULL인 경우 이 값은 무시됩니다.
[out] OutputBuffer
대상 드라이버에서 정보가 반환되는 호출자가 할당한 출력 버퍼에 대한 포인터입니다. IoControlCode 매개 변수가 출력 데이터가 필요하지 않은 작업을 지정하는 경우 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
[in] OutputBufferLength
OutputBuffer의 버퍼 크기(바이트)입니다. OutputBuffer가 NULL인 경우 이 값은 무시됩니다.
[out, optional] LengthReturned
OutputBuffer에서 버퍼에 반환된 정보의 크기(바이트)를 수신하는 호출자 할당 변수에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
반환 값
FltDeviceIoControlFile 은 STATUS_SUCCESS 또는 적절한 NTSTATUS 값을 반환합니다.
설명
시스템 정의 IOCTL_XXX 코드에 대한 자세한 내용은 Microsoft Windows SDK 설명서에서 DeviceIoControl에 대한 참조 항목의 설명 섹션을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | fltkernel.h(Fltkernel.h 포함) |
라이브러리 | FltMgr.lib |
IRQL | PASSIVE_LEVEL |