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 |