PFN_WSK_SEND回呼函式 (wsk.h)
WskSend 函式會將數據透過連線導向或數據流套接字傳送至遠端傳輸位址。
語法
PFN_WSK_SEND PfnWskSend;
NTSTATUS PfnWskSend(
[in] PWSK_SOCKET Socket,
[in] PWSK_BUF Buffer,
[in] ULONG Flags,
[in, out] PIRP Irp
)
{...}
參數
[in] Socket
WSK_SOCKET 結構的指標,指定要傳送數據之套接字的套接字物件。
[in] Buffer
初始化 WSK_BUF 結構的指標,描述包含透過套接字傳送之數據的數據緩衝區。
[in] Flags
ULONG 值,其中包含下列旗標組合的位 OR:
WSK_FLAG_NODELAY
指示基礎傳輸立即將數據和任何先前已排入佇列的數據傳送至遠端應用程式,而不會延遲。
Microsoft TCP/IP 傳輸通訊協定支援此旗標。 其他傳輸通訊協定可能不支援此旗標。
[in, out] Irp
WSK 子系統用來異步完成傳送作業的呼叫端配置 IRP 指標。 如需搭配 WSK 函式使用 IRP 的詳細資訊,請參閱 搭配 Winsock 核心函式使用 IRP。
傳回值
WskSend 會傳回下列其中一個 NTSTATUS 程式代碼:
傳回碼 | 描述 |
---|---|
|
數據已成功透過套接字傳送。 IRP 將會以成功狀態完成。 IRP 的 [IoStatus.Information] 字段包含已傳送的位元元組數目。 |
|
WSK 子系統無法立即透過套接字傳送數據。 WSK 子系統會在透過套接字傳送數據之後完成 IRP。 傳送作業的狀態將會在 IRP 的 [IoStatus.Status] 字段中傳回。 如果作業成功,IRP IoStatus.Information 字段將包含已傳送的位元組數目。 |
|
套接字已不再運作。 IRP 將會以失敗狀態完成。 WSK 應用程式必須呼叫 WskCloseSocket 函式,以儘快關閉套接字。 |
|
基礎網路傳輸不支援指定的旗標。 |
|
發生錯誤。 IRP 將會以失敗狀態完成。 |
言論
WSK 應用程式只能在先前連線到遠端傳輸地址的連線導向或數據流套接字上呼叫 WskSend 函式。 線上導向套接字會透過下列其中一種方法連接到遠端傳輸位址:
- WSK 應用程式會呼叫 WskConnect 函式來連接套接字。
- WSK 應用程式會呼叫 WskSocketConnect 函式來建立、系結及連接套接字。
- 當 WSK 應用程式接受接聽套接字上的連入連線要求時,WSK 子系統會連接套接字。
WSK 子系統在透過套接字傳送數據時,不會對數據執行任何緩衝處理。 因此,WSK 子系統將不會完成對 WskSend 函式的呼叫,直到所有數據都已實際傳送為止。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows作系統中使用。 |
目標平臺 | 普遍 |
標頭 | wsk.h (包括 Wsk.h) |
IRQL | <= DISPATCH_LEVEL |