REMOTE_NDIS_PACKET_MSG
REMOTE_NDIS_PACKET_MSG封裝 NDIS 資料封包,以形成單一資料訊息。
串連多個REMOTE_NDIS_PACKET_MSG專案會形成多套件訊息。 每個個別REMOTE_NDIS_PACKET_MSG元件都會建構如下所述。 與單一封包訊息的差異在於,每個REMOTE_NDIS_PACKET_MSG標頭中的 MessageLength 欄位都包含一些額外的填補位元組。 這些填補位元組會附加至最後一個REMOTE_NDIS_PACKET_MSG,讓成功的REMOTE_NDIS_PACKET_MSG從適當的位元組界限開始。 對於從裝置傳送至主機的訊息,此填補應該會讓每個REMOTE_NDIS_PACKET_MSG從多套件訊息開頭開始的位元組位移,從多封裝訊息的開頭開始,從 8 個位元組的倍數開始。 當主機將多套件訊息傳送至裝置時,它會遵守裝置指定的 PacketAlignmentFactor 。
下表定義REMOTE_NDIS_PACKET_MSG格式。
Offset | 大小 | 欄位 | 描述 |
---|---|---|---|
0 |
4 |
MessageType |
指定要傳送的訊息類型。 設定為 0x1。 |
4 |
4 |
MessageLength |
以位元組為單位的訊息長度,包括附加的封包資料、OOB 資料、每個封包資訊資料,以及內部和外部填補。 |
8 |
4 |
DataOffset |
指定從此訊息的 DataOffset 欄位開始到資料開頭的位元組位移。 這是 4 的整數倍數。 |
12 |
4 |
DataLength |
指定此訊息之資料內容中的位元組數目。 |
16 |
4 |
OOBDataOffset |
從此訊息的 DataOffset 欄位開頭,指定第一筆 OOB 資料記錄的位元組位移。 如果沒有 OOB 資料,請將 設定為零。 否則,這是 4 的整數倍數。 |
20 |
4 |
OOBDataLength |
以位元組為單位指定 OOB 資料的總長度。 |
24 |
4 |
NumOOBDataElements |
指定此訊息中的 OOB 記錄數目。 |
28 |
4 |
PerPacketInfoOffset |
指定REMOTE_NDIS_PACKET_MSG資料訊息中 DataOffset 欄位開頭到第一個每個封包資訊資料記錄開頭的位移位元組。 如果沒有每個封包的資料,請將 設定為零。 否則,這是 4 的整數倍數。 |
32 |
4 |
PerPacketInfoLength |
以位元組為單位指定此訊息中包含的每個封包資訊總長度。 |
36 |
4 |
VcHandle |
保留給連線導向裝置。 設定為零。 |
40 |
4 |
保留 |
保留的。 設定為零。 |
下表指出單一 OOB 資料記錄的格式。
Offset | 大小 | 欄位 | 描述 |
---|---|---|---|
0 |
4 |
大小 |
這個 OOB 標頭和附加 OOB 資料和填補的位元組長度。 這是 4 的整數倍數。 |
4 |
4 |
類型 |
未針對 802.3 裝置定義。 |
8 |
4 |
ClassInformationOffset |
這個 OOB 資料記錄開頭到 OOB 資料開頭的位元組位移。 |
(N) |
... |
OOB 資料 |
OOB 資料;如需詳細資訊,請參閱 Microsoft Windows 驅動程式開發工具組 (DDK) 檔。 |
注意 (N) 等於 ClassInformationOffset的值。
下表定義每個封包資訊資料記錄的格式。
Offset | 大小 | 欄位 | 描述 |
---|---|---|---|
0 |
4 |
大小 |
這個每個封包標頭的位元組長度,並附加每個封包資料和填補。 這個值是 4 的整數倍數。 |
4 |
4 |
類型 |
如 Windows 2000 驅動程式開發工具組 (DDK) 中所述,設定為NDIS_PER_PACKET_INFO_FROM_PACKET的其中一個法務值。 |
8 |
4 |
PerPacketInformationOffset |
從這個每個封包資訊資料記錄的開頭到每個封包資訊資料開頭的位元組位移。 |
(N) |
... |
Per-Packet資料 |
Per-Packet資料;如需詳細資訊,請參閱 Windows 2000 DDK 檔。 |
注意 (N) 等於 PerPacketInformationOffset的值。
備註
每個REMOTE_NDIS_PACKET_MSG可能包含一或多個 OOB 資料記錄。 NumOOBDataElements 指出此訊息中的 OOB 資料記錄數目。 OOB 資料記錄必須依序顯示。 OOBDataLength欄位表示整個 OOB 資料區塊的位元組長度。 OOBDataOffset欄位表示從DataOffset欄位開頭到 OOB 資料區塊開頭的位元組位移。 如需 OOB 封包資料的詳細資訊,請參閱 Windows 2000 DDK 中的 NDIS 規格。
如果多個 OOB 資料區塊附加至REMOTE_NDIS_PACKET_MSG訊息,則每個後續 OOB 資料記錄都必須緊接在先前 OOB 記錄的資料之後。
目前未針對 802.3 裝置定義 OOB 資訊。
每個REMOTE_NDIS_PACKET_MSG可能包含一或多個每個封包資訊的資料記錄。 每個封包資訊可用來傳達封包中繼資料,例如 TCP 總和檢查碼。 PerPacketInfoOffset欄位表示從DataOffset欄位開頭到每個封包資訊資料記錄開頭的位元組位移。 OOBDataLength欄位會指出每個封包資訊資料記錄的位元組長度。 如需每個封包資訊資料的詳細資訊,請參閱 Windows 2000 DDK。
如果有多個每個封包資訊資料區塊,則每個後續每個封包資訊資料記錄都必須緊接在先前每個封包資訊記錄的資料之後。
遠端 NDIS 裝置必須透過 NDIS 資料封包來傳送和接收資料。 裝置使用的匯流排會決定如何將這些封包從主機傳遞至裝置,以及裝置到主機。 它可以是共用記憶體,或在 USB、Isoch 和 Bulk 管道的情況下。 NDIS 封包也可能包含頻外 (OOB) 資料,以及透過網路傳送的資料。
遠端 NDIS 裝置會傳輸 NDIS 封包,封裝為跨資料通道 REMOTE_NDIS_PACKET_MSG 。 無連線 (,例如 802.3) 和連線導向 (,例如 ATM) 裝置使用相同的封包訊息結構來協助處理封包的常見程式碼。 每個 REMOTE_NDIS_PACKET_MSG 訊息都包含單一網路資料單位的相關資訊, (這類乙太網路 802.3 框架) 。
如需頻外封包資料或每個封包資訊資料的詳細資訊,請參閱 Windows 2000 DDK NDIS 小節。
規格需求
版本 |
可在 Microsoft Windows XP 和更新版本的 Windows 作業系統中使用。 在 Windows 2000 中也提供可轉散發二進位檔。 |
標頭 |
Rndis.h (包含 Rndis.h) |