ntDeviceIoControlFile 函式 (winternl.h)
已取代。 建置所提供緩衝區的描述項 () ,並將不具類型的數據傳遞至與檔句柄相關聯的設備驅動器。 NtDeviceIoControlFile 已由 DeviceIoControl 取代。
語法
__kernel_entry NTSTATUS NtDeviceIoControlFile(
[in] HANDLE FileHandle,
[in] HANDLE Event,
[in] PIO_APC_ROUTINE ApcRoutine,
[in] PVOID ApcContext,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[in] ULONG IoControlCode,
[in] PVOID InputBuffer,
[in] ULONG InputBufferLength,
[out] PVOID OutputBuffer,
[in] ULONG OutputBufferLength
);
參數
[in] FileHandle
開啟應該提供控制資訊之檔案或裝置的檔案句柄。
[in] Event
作業完成時要設定為 signaled
狀態之事件的句柄。 此參數可以是 Null。
[in] ApcRoutine
作業完成後要叫用的程式。 此參數可以是 Null。 如需異步過程調用 () 的詳細資訊,請參閱 異步過程調用。
[in] ApcContext
作業完成時要傳遞至 ApcRoutine 的指標。 如果指定 ApcRoutine ,則需要此參數。
[out] IoStatusBlock
要接收最終完成狀態和作業相關信息的變數。 傳回資訊的服務呼叫會傳回寫入此變數 [資訊] 字段中輸出緩衝區的數據長度。
[in] IoControlCode
表示要執行哪一個裝置 I/O 控制函式的程式代碼。
[in] InputBuffer
緩衝區的指標,其中包含要提供給目標裝置的資訊。 此參數可以是 Null。 這項資訊與裝置相關。
[in] InputBufferLength
InputBuffer 的長度,以位元組為單位。 如果未提供緩衝區,則會忽略此值。
[out] OutputBuffer
緩衝區的指標,用來接收來自目標裝置的裝置相依傳回資訊。 此參數可以是 Null。
[in] OutputBufferLength
OutputBuffer 的長度,以位元組為單位。 如果未提供緩衝區,則會忽略此值。
傳回值
NTSTATUS 中定義了各種NTSTATUS值。H,以 Windows DDK 散發。
傳回碼 | Description |
---|---|
|
控制作業已正確排入 I/O 系統。 作業完成後,可以檢查 I/O 狀態區塊的 [狀態] 字段來判斷狀態。 |
備註
NtDeviceIoControlFile 服務是裝置相依的介面,可擴充應用程式在系統內各種裝置上擁有的控件。 此 API 提供系統輸入和輸出資料的一致檢視,同時仍提供應用程式和驅動程式指定通訊介面的裝置相依方法。
呼叫端所需的檔案存取類型取決於所執行的實際作業。
一旦服務完成 事件,如果指定,則會設定為 signaled
狀態。 如果未指定 Event 參數, 則 FileHandle 所指定的檔案物件會設定為 signaled
狀態。 如果指定 了 ApcRoutine ,則會使用 ApcContext 和 IoStatusBlock 作為其自變數來叫用。
因為此函式沒有匯入連結庫,所以您必須使用 GetProcAddress。
規格需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | winternl.h |
程式庫 | ntdll.lib |
Dll | ntdll.dll |