WritePort 函式 (winsplp.h)
埠監視器的 WritePort
函式會將數據寫入印表機埠。
語法
BOOL WritePort(
_In_ HANDLE hPort,
_In_ LPBYTE pBuffer,
DWORD cbBuf,
_Out_ LPDWORD pcbWritten
);
參數
[in] hPort
呼叫端提供的埠句柄。
[in] pBuffer
呼叫端提供的緩衝區指標,其中包含要寫入至埠的數據。
cbBuf
呼叫端提供的大小,以位元組為單位,pBuffer。
[out] pcbWritten
呼叫端提供的位置指標,以接收成功寫入至埠的位元元組數目。
傳回值
如果工作成功,函式應該 TRUE傳回 。 否則,它應該 FALSE傳回 。
言論
語言監視器 和埠監視器伺服器 DLL 必須定義 WritePort
函式,並在 MONITOR2 結構中包含函式的位址。
接收為函式 hPort 自變數的句柄是監視器提供的 OpenPort 或 OpenPortEx 函式的埠句柄。
語言監視器 WritePort
函式通常會將語言特定命令新增至 pBuffer所指向之緩衝區中包含的數據流,然後將修改過的數據流傳遞至埠監視器的 WritePort
函式。
埠監視器伺服器 DLL 的 WritePort
函式通常會呼叫 WriteFile (如 Microsoft Windows SDK 檔所述)將數據流傳送至內核模式埠驅動程式。
一般列印作業是由對 WritePort
的多個呼叫所組成。 每個呼叫都可以有不同的 cbBuf 值。
函式應該傳回成功寫入的位元組數,方法是將數位放在 所指向的位置。 對於語言監視器,這個數位不得包含新增至數據流的額外特定語言位元組數目。
多任務緩衝處理程式會檢查 WritePort
的傳回值,而不是傳回的位元組計數,來判斷寫入作業的成功或失敗。 因此,除非函式傳回 false,否則傳回的位元組計數不代表失敗的寫入。
某種系統實作或監視實作的逾時機制必須確保 WritePort
函式會在合理的時間內傳回,以避免停止多任務緩衝處理程式。
語言監視器可以接受呼叫埠監視器的 WritePort
例程,而 StartDocPort/EndDocPort 組之外。 不過,某些埠監視器可能會失敗這類呼叫,因此必須寫入語言監視器來處理此失敗。
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | winsplp.h (包括 Winsplp.h) |
連結庫 | NtosKrnl.exe |