ksWriteFile 函式 (ks.h)
KsWriteFile 函式會對指定的檔案物件執行寫入。 假設呼叫端會串行化對檔案的存取,以針對FO_SYNCHRONOUS_IO檔案物件執行作業。 如果可能,函式會嘗試使用 FastIoDispatch ,或針對裝置對象產生寫入要求。 所有相關統計數據都會更新。
語法
KSDDKAPI NTSTATUS KsWriteFile(
[in] PFILE_OBJECT FileObject,
[in, optional] PKEVENT Event,
[in, optional] PVOID PortContext,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[in] PVOID Buffer,
[in] ULONG Length,
[in, optional] ULONG Key,
[in] KPROCESSOR_MODE RequestorMode
);
參數
[in] FileObject
指定要對其執行讀取的檔案物件。
[in, optional] Event
選擇性地包含要在寫入中使用的事件。 如果未傳遞任何事件,則會假設呼叫位於同步檔案物件上,或呼叫端正在等候檔案物件的事件。 如果呼叫不在同步檔案物件上,則可以以異步方式完成。 如果檔案已針對同步 I/O 開啟,此變數必須為 NULL。 如果使用這個變數,它必須是物件管理員所配置的事件。
[in, optional] PortContext
選擇性地包含完成埠的內容資訊。
[out] IoStatusBlock
指出傳回狀態資訊的位置。 不論要求者模式為何,這一律假設為有效的位址。
[in] Buffer
指定要從中寫入數據的緩衝區。 如果需要探查和鎖定緩衝區,則會使用例外狀況處理程式以及 RequesterMode。
[in] Length
指定傳遞的緩衝區大小。
[in, optional] Key
選擇性地包含索引鍵,如果沒有,則為零。
[in] RequestorMode
指出需要產生處理器模式時,要放在讀取 IRP 中。 此外,如果需要探查和鎖定緩衝區,則會使用它。 此變數也會判斷是否可以執行快速 I/O 呼叫。 如果要求者模式不是 KernelMode,但先前的模式是 ,則無法使用快速 I/O。
傳回值
如果成功, KsWriteFile 函式會傳回STATUS_SUCCESS,STATUS_PENDING如果動作擱置,則傳回讀取錯誤。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | ks.h (包含 Ks.h) |
程式庫 | Ks.lib |