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_XXX 程式代碼,指出要執行的裝置 I/O 作業。此參數的值會決定 InputBuffer 和 OutputBuffer的格式和必要長度,並決定下列哪一個參數組 (InputB 需要 和 InputBufferLength或 OutputBuffer 和 OutputBufferLength)。
[in, optional] InputBuffer
呼叫端配置的輸入緩衝區指標,其中包含要提供給目標驅動程式的裝置特定資訊。 如果 IoControlCode 參數指定不需要輸入資料的作業,這個參數是選擇性的,而且可以 NULL。
[in] InputBufferLength
InputBuffer緩衝區的大小,以位元組為單位。 如果 InputBufferNULL,則會忽略這個值。
[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 |