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
호출자에 대한 불투명 인스턴스 포인터입니다. 이 매개 변수는 필수이며 NULL 수 없습니다.
[in] FileObject
이 요청의 대상인 파일 또는 디바이스에 대한 파일 개체 포인터입니다. 이 매개 변수는 필수이며 NULL 수 없습니다.
[in] IoControlCode
IOCTL_수행할 디바이스 I/O 작업을 나타내는 XXX 코드입니다. 이 매개 변수의 값은 InputBuffer 및 OutputBuffer형식과 필수 길이를 결정하며 다음 매개 변수 쌍(Input 중 어느 것이 결정되는지 결정합니다.Buffer 및 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 |