共用方式為


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 值。

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

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

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

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

規格需求

需求
目標平台 桌面
標頭 winsplp.h (包含 Winsplp.h)
程式庫 NtosKrnl.exe

另請參閱

StartDocPort

OpenPortEx

OpenPort

MONITOR2

EndDocPort