共用方式為


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 自變數的句柄是監視器提供的 OpenPortOpenPortEx 函式的埠句柄。

語言監視器 WritePort 函式通常會將語言特定命令新增至 pBuffer所指向之緩衝區中包含的數據流,然後將修改過的數據流傳遞至埠監視器的 WritePort 函式。

埠監視器伺服器 DLL 的 WritePort 函式通常會呼叫 WriteFile (如 Microsoft Windows SDK 檔所述)將數據流傳送至內核模式埠驅動程式。

一般列印作業是由對 WritePort的多個呼叫所組成。 每個呼叫都可以有不同的 cbBuf 值。

函式應該傳回成功寫入的位元組數,方法是將數位放在 所指向的位置。 對於語言監視器,這個數位不得包含新增至數據流的額外特定語言位元組數目。

多任務緩衝處理程式會檢查 WritePort的傳回值,而不是傳回的位元組計數,來判斷寫入作業的成功或失敗。 因此,除非函式傳回 false,否則傳回的位元組計數不代表失敗的寫入。

某種系統實作或監視實作的逾時機制必須確保 WritePort 函式會在合理的時間內傳回,以避免停止多任務緩衝處理程式。

語言監視器可以接受呼叫埠監視器的 WritePort 例程,而 StartDocPort/EndDocPort 組之外。 不過,某些埠監視器可能會失敗這類呼叫,因此必須寫入語言監視器來處理此失敗。

要求

要求 價值
目標平臺 桌面
標頭 winsplp.h (包括 Winsplp.h)
連結庫 NtosKrnl.exe

另請參閱

StartDocPort

OpenPortEx

OpenPort

MONITOR2

EndDocPort