共用方式為


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
STATUS_SUCCESS
控制作業已正確排入 I/O 系統。 作業完成後,可以檢查 I/O 狀態區塊的 [狀態] 字段來判斷狀態。

備註

NtDeviceIoControlFile 服務是裝置相依的介面,可擴充應用程式在系統內各種裝置上擁有的控件。 此 API 提供系統輸入和輸出資料的一致檢視,同時仍提供應用程式和驅動程式指定通訊介面的裝置相依方法。

呼叫端所需的檔案存取類型取決於所執行的實際作業。

一旦服務完成 事件,如果指定,則會設定為 signaled 狀態。 如果未指定 Event 參數, 則 FileHandle 所指定的檔案物件會設定為 signaled 狀態。 如果指定 了 ApcRoutine ,則會使用 ApcContextIoStatusBlock 作為其自變數來叫用。

因為此函式沒有匯入連結庫,所以您必須使用 GetProcAddress

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 winternl.h
程式庫 ntdll.lib
Dll ntdll.dll

另請參閱

異步過程調用