共用方式為


SIO_LOOPBACK_FAST_PATH控制項程式碼

重要SIO_LOOPBACK_FAST_PATH已被取代,不建議在程式碼中使用。

SIO_LOOPBACK_FAST_PATH通訊端 I/O 控制程式碼可讓 WSK 應用程式設定 TCP 通訊端,以加快回送介面上的作業速度。

若要使用此 IOCTL,WSK 應用程式會使用下列參數呼叫 WskControlSocket 函式。

參數

RequestType

WskIoctl

ControlCode

SIO_LOOPBACK_FAST_PATH

Level

0

InputSize

輸入緩衝區的大小,以位元組為單位。

InputBuffer

輸入緩衝區的指標。 此參數包含 布林 值的指標,指出是否應該針對快速回送作業設定通訊端。

OutputSize

0

OutputBuffer

NULL

OutputSizeReturned

NULL

Irp

IRP 的指標。

應用程式可以使用 SIO_LOOPBACK_FAST_PATH IOCTL 來改善 TCP 通訊端上回送作業的效能。 此 IOCTL 要求 TCP/IP 堆疊使用此通訊端上回送作業的特殊快速路徑。 SIO_LOOPBACK_FAST_PATH IOCTL 只能與 TCP 通訊端搭配使用。 這個 IOCTL 必須在回送會話的兩端使用。 支援使用 IPv4 或 IPv6 回送介面的 TCP 回送快速路徑。

計畫起始連線要求的通訊端必須先套用此 IOCTL,才能提出連線要求。 接聽連線要求的通訊端必須先套用此 IOCTL,才能接受連線。

一旦應用程式使用快速路徑在回送介面上建立連線,連線存留期的所有封包都必須使用快速路徑。

SIO_LOOPBACK_FAST_PATH 套用至將連線到非回送路徑的通訊端將不會有任何作用。

此 TCP 回送優化會導致透過傳輸層 (TL) 而不是透過網路層的傳統回送的封包。 此優化可改善回送封包的延遲。 一旦應用程式加入宣告連線層級設定以使用回送快速路徑,所有封包都會遵循回送路徑。 針對回送通訊,預期不會發生壅塞和封包捨棄。 TCP 中壅塞控制和可靠傳遞的概念是不必要的。 不過,對於流量控制而言,這並不成立。 若沒有流量控制,傳送者可能會讓接收緩衝區超載,導致錯誤 TCP 回送行為。 TCP 優化回送路徑中的流程式控制制是藉由將傳送要求放在佇列中來維護。 當接收緩衝區已滿時,TCP/IP 堆疊會保證在服務佇列之前不會完成傳送,並維持流量控制。

有 Windows 篩選平台 (的「TCP 快速路徑回送」連線) 連線資料的圖說文字,必須採用未優化緩慢路徑進行回送。 因此,其會防止使用這個新的回送快速路徑。 啟用一個「一個」篩選準則時,即使 已設定SIO_LOOPBACK_FAST_PATH IOCTL,系統還是會使用慢速路徑。 如此一來,使用者模式應用程式就具有完整的一個「一個」功能。

預設會停用 SIO_LOOPBACK_FAST_PATH

使用 IOCTL SIO_LOOPBACK_FAST_PATH IOCTL 來啟用通訊端上的回送快速路徑時,僅支援 TCP/IP 通訊端選項的子集。 支援的選項清單包括下列各項:

WSK 應用程式必須針對這種類型的要求呼叫 WskControlSocket 函式時,指定 IRP 的指標和完成常式。 在 WSK 子系統完成 IRP 之前,應用程式不得釋放緩衝區。 完成 IRP 時,子系統會叫用完成常式。 在完成常式中,應用程式必須檢查 IRP 狀態,並釋放先前為要求配置的所有資源。

如需 WSK IRP 處理的詳細資訊,請參閱 搭配 Winsock 核心函式使用 IRP

完成 IRP 時,如果要求成功,子系統會將 Irp-IoStatus.Status > 設定為 STATUS_SUCCESS 。 否則,如果呼叫不成功, Irp-IoStatus.Status > 會設定為 STATUS_INVALID_BUFFER_SIZESTATUS_NOT_SUPPORTED

傳回值

規格需求

最低支援的用戶端

Windows 8

最低支援的伺服器

Windows Server 2012

標頭

Mstcpip.h

IRQL

PASSIVE_LEVEL

另請參閱

SIO_LOOPBACK_FAST_PATH (SDK)

搭配 Winsock 核心函式使用 IRP