版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微软RNDIS协议微软RNDIS协议微软RNDIS协议 Remote NDIS SpecificationRev 1.1August 9, 2002 1998-2001 Microsoft Corporation. All rights reserved. TOC o 1-3 h z HYPERLINK l _Toc503342721 1Introduction PAGEREF _Toc503342721 h 4 HYPERLINK l _Toc503342722 1.1License Agreement PAGEREF _Toc503342722 h 5 HYPERLINK l _Toc50
2、3342723 2Concepts and Definitions PAGEREF _Toc503342723 h 6 HYPERLINK l _Toc503342724 2.1Control channel PAGEREF _Toc503342724 h 6 HYPERLINK l _Toc503342725 2.2Data channel PAGEREF _Toc503342725 h 6 HYPERLINK l _Toc503342726 2.3Initialization and Teardown PAGEREF _Toc503342726 h 6 HYPERLINK l _Toc50
3、3342727 2.4Device State Definitions PAGEREF _Toc503342727 h 6 HYPERLINK l _Toc503342728 2.4.1Halt PAGEREF _Toc503342728 h 7 HYPERLINK l _Toc503342729 2.4.2Reset PAGEREF _Toc503342729 h 7 HYPERLINK l _Toc503342730 2.5Flow Control PAGEREF _Toc503342730 h 7 HYPERLINK l _Toc503342731 2.6Byte Ordering PA
4、GEREF _Toc503342731 h 7 HYPERLINK l _Toc503342732 2.7Encapsulation PAGEREF _Toc503342732 h 7 HYPERLINK l _Toc503342733 2.8Remote NDIS Version PAGEREF _Toc503342733 h 7 HYPERLINK l _Toc503342734 2.9Status Values PAGEREF _Toc503342734 h 8 HYPERLINK l _Toc503342735 3Message Set for Connectionless (802.
5、3) Devices PAGEREF _Toc503342735 h 9 HYPERLINK l _Toc503342736 3.1REMOTE_NDIS_INITIALIZE_MSG PAGEREF _Toc503342736 h 9 HYPERLINK l _Toc503342737 3.1.1REMOTE_NDIS_INITIALIZE_MSG Format PAGEREF _Toc503342737 h 10 HYPERLINK l _Toc503342738 3.1.2Response to REMOTE_NDIS_INITIALIZE_MSG PAGEREF _Toc5033427
6、38 h 10 HYPERLINK l _Toc503342739 3.2REMOTE_NDIS_HALT_MSG PAGEREF _Toc503342739 h 12 HYPERLINK l _Toc503342740 3.3REMOTE_NDIS_QUERY_MSG PAGEREF _Toc503342740 h 13 HYPERLINK l _Toc503342741 3.3.1REMOTE_NDIS_QUERY_MSG Format PAGEREF _Toc503342741 h 13 HYPERLINK l _Toc503342742 3.3.2Response to REMOTE_
7、NDIS_QUERY_MSG PAGEREF _Toc503342742 h 14 HYPERLINK l _Toc503342743 3.4REMOTE_NDIS_SET_MSG PAGEREF _Toc503342743 h 14 HYPERLINK l _Toc503342744 3.4.1REMOTE_NDIS_SET_MSG Format PAGEREF _Toc503342744 h 15 HYPERLINK l _Toc503342745 3.4.2Response to REMOTE_NDIS_SET_MSG PAGEREF _Toc503342745 h 15 HYPERLI
8、NK l _Toc503342746 3.4.3Setting Device-specific Parameters PAGEREF _Toc503342746 h 16 HYPERLINK l _Toc503342747 3.5REMOTE_NDIS_RESET_MSG PAGEREF _Toc503342747 h 17 HYPERLINK l _Toc503342748 3.5.1REMOTE_NDIS_RESET_MSG Format PAGEREF _Toc503342748 h 17 HYPERLINK l _Toc503342749 3.5.2Response to REMOTE
9、_NDIS_RESET_MSG PAGEREF _Toc503342749 h 17 HYPERLINK l _Toc503342750 3.6REMOTE_NDIS_INDICATE_STATUS_MSG PAGEREF _Toc503342750 h 18 HYPERLINK l _Toc503342751 3.6.1REMOTE_NDIS_INDICATE_STATUS_MSG Format PAGEREF _Toc503342751 h 19 HYPERLINK l _Toc503342752 3.7REMOTE_NDIS_KEEPALIVE_MSG PAGEREF _Toc50334
10、2752 h 19 HYPERLINK l _Toc503342753 3.7.1REMOTE_NDIS_KEEPALIVE_MSG Format PAGEREF _Toc503342753 h 20 HYPERLINK l _Toc503342754 3.7.2Response to REMOTE_NDIS_KEEPALIVE_MSG PAGEREF _Toc503342754 h 20 HYPERLINK l _Toc503342755 3.8Example Connectionless (802.3) Initialization Sequence PAGEREF _Toc5033427
11、55 h 21 HYPERLINK l _Toc503342758 3.9Data Messages (REMOTE_NDIS_PACKET_MSG) PAGEREF _Toc503342758 h 22 HYPERLINK l _Toc503342759 3.9.1REMOTE_NDIS_PACKET_MSG Format PAGEREF _Toc503342759 h 22 HYPERLINK l _Toc503342760 3.9.2Multi-Packet Transfers PAGEREF _Toc503342760 h 24 HYPERLINK l _Toc503342761 4R
12、equired NDIS OIDs PAGEREF _Toc503342761 h 27 HYPERLINK l _Toc503342762 4.1General OIDs PAGEREF _Toc503342762 h 27 HYPERLINK l _Toc503342763 4.2802.3 OIDs PAGEREF _Toc503342763 h 29 HYPERLINK l _Toc503342764 4.3Optional Power Management OIDs PAGEREF _Toc503342764 h 30 HYPERLINK l _Toc503342765 4.3.1N
13、etwork Wake-Up PAGEREF _Toc503342765 h 31 HYPERLINK l _Toc503342766 5Remote NDIS to USB Mapping PAGEREF _Toc503342766 h 32 HYPERLINK l _Toc503342767 5.1Related Specifications PAGEREF _Toc503342767 h 32 HYPERLINK l _Toc503342768 5.2Overview PAGEREF _Toc503342768 h 32 HYPERLINK l _Toc503342769 5.3PnP
14、and USB-level initialization PAGEREF _Toc503342769 h 32 HYPERLINK l _Toc503342770 5.3.1USB Device Descriptor PAGEREF _Toc503342770 h 32 HYPERLINK l _Toc503342771 5.3.2USB Configuration Descriptor PAGEREF _Toc503342771 h 33 HYPERLINK l _Toc503342772 5.3.3Communication Class Interface PAGEREF _Toc5033
15、42772 h 33 HYPERLINK l _Toc503342773 5.3.4Data Class Interface PAGEREF _Toc503342773 h 33 HYPERLINK l _Toc503342774 5.4USB-level termination PAGEREF _Toc503342774 h 34 HYPERLINK l _Toc503342775 5.5Control channel characteristics PAGEREF _Toc503342775 h 34 HYPERLINK l _Toc503342776 5.6Data channel ch
16、aracteristics PAGEREF _Toc503342776 h 35 HYPERLINK l _Toc503342777 5.6.1USB Short Packets PAGEREF _Toc503342777 h 35 HYPERLINK l _Toc503342778 5.6.2Flow Control PAGEREF _Toc503342778 h 36 HYPERLINK l _Toc503342779 5.7Power management PAGEREF _Toc503342779 h 36 HYPERLINK l _Toc503342780 5.8Timer cons
17、tants PAGEREF _Toc503342780 h 36IntroductionRemote NDIS is a bus-independent class specification for Ethernet (802.3) network devices on dynamic PnP busses such as USB, 1394, BlueTooth, and InfiniBand. This specification defines a bus-independent message protocol between a host PC and a Remote NDIS
18、device over abstract control and data channels. Also included are bus-mapping chapters which define specific features of the specification on the respective busses.The “legacy-free” PC revolution is eliminating not only legacy connection ports (e.g. serial, parallel, PS/2) but also legacy expansion
19、buses like ISA and PCI in mainstream PCs. The resulting “sealed case” PCs will require either built-in networking support on the motherboard or support for network adapters on external busses. This specification defines a message protocol for external bus attached network devices. It is precise enou
20、gh to allow vendor-independent class driver support for Remote NDIS devices on the host PC.Remote NDIS is a fairly simple extension of the well-understood and time-tested NDIS architecture. NDIS defines a function-call interface for device-specific NDIS miniport drivers. This interface defines primi
21、tives to send and receive network data, and to query and set configuration parameters and statistics. Remote NDIS leverages NDIS by defining a message wrapping for the NDIS miniport interface, thus moving the NDIS-handling code from a miniport driver into the device itself. In this and other ways, t
22、he Remote NDIS specification allows for a wide range of device functionality and performance levels.License AgreementThe Remote NDIS Specification and any accompanying materials (the “Specification”) provided by Microsoft is for your personal use only, and may be used solely for the purpose of imple
23、menting the Remote NDIS protocol message set to interface with (i) a Microsoft Windows operating system or (ii) a bus or network-connected communications device, such as a USB, 1394 or TCP/IP device. THE SPECIFICATION MAY NOT BE COPIED OR DISTRIBUTED.Microsoft may have copyrights, patents or pending
24、 patent applications covering subject matter in the Specification. To the extent Microsoft has such copyrights, patents or applications, Microsoft agrees to grant a nonexclusive, royalty-free, world-wide license under these copyrights, patents or applications solely to implement the Remote NDIS Spec
25、ification to interface with (i) a Microsoft Windows operating system or (ii) a bus or network-connected communications device, such as a USB, 1394 or TCP/IP device, on condition that you agree not to assert any intellectual property rights against Microsoft or other companies for their implementatio
26、n of the Specification. Microsoft reserves all other rights it may have in the Specification. The furnishing of this document does not give you any license to any other Microsoft patents, trademarks, copyrights, or other intellectual property rights. Specifically, neither this document nor the Speci
27、fication give you any license to the NDIS Specification or to USB Communication Device Class technology. The Specification is provided AS IS without warranty of any kind. To the maximum extent permitted by applicable law, Microsoft further disclaims all warranties, including without limitation any i
28、mplied warranties of merchantability and fitness for a particular purpose, as well as warranties of title and noninfringement. The entire risk arising out of the use or performance of the Specification remains with you.To the maximum extent permitted by applicable law, in no event shall Microsoft or
29、 its suppliers be liable for any consequential, incidental, direct, indirect, special, punitive, or other damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of o
30、r inability to use the Specification, even if Microsoft has been advised of the possibility of such damages. Because some states/jurisdictions do not allow the exclusion or limitation of liability for consequential or incidental damages, the above limitation may not apply to you.Concepts and Definit
31、ionsThis section discusses requirements and characteristics of the channels used to communicate between the host and the remote device. Device state transitions and major operations such as initialization, halt and reset are also defined here.Control channelThe specifics of the control channel are g
32、iven in the appropriate bus-mapping chapter. The control channel must be reliable and ensure sequenced delivery. It is used for all communication except for the transmission of network data packets. All required control messages except REMOTE_NDIS_HALT and REMOTE_NDIS_INDICATE_STATUS_MSG are request
33、/response exchanges initiated by the host. The device must respond within the ControlTimeoutPeriod as specified in the appropriate bus-mapping chapter.Data channelThe specifics of the data channel are given in the appropriate bus-mapping chapter. The data channel is used exclusively for the transmis
34、sion of network data packets. It may consist of multiple sub-channels (e.g. for varying quality of service) as defined in the appropriate bus-mapping chapter. The reliability and delivery specifics of the data channel are likewise defined in the respective bus-mapping chapter.Initialization and Tear
35、downThe control and data channels are initialized as specified in the respective bus-mapping chapter. The host and Remote NDIS device then exchange initialization messages. The host sends REMOTE_NDIS_INITIALIZE_MSG to the device, and the device provides information about its type, supported medium a
36、nd version in the response message REMOTE_NDIS_INITIALIZE_CMPLT. Either the host or the remote device can halt the network connection in an abortive fashion via the REMOTE_NDIS_HALT_MSG message. All outstanding requests and packets should be discarded on receipt of this message.Device State Definiti
37、onsFollowing bus-level initialization, the device is in the rndis-uninitialized state. Upon receiving REMOTE_NDIS_INITIALIZE_MSG and returning REMOTE_NDIS_INITIALIZE_CMPLT with status success, the device enters the rndis-initialized state. Upon receiving REMOTE_NDIS_SET_MSG for the OID_GEN_CURRENT_P
38、ACKET_FILTER parameter with a non-zero filter, the device enters the rndis-data-initialized state. When in the rndis-data-initialized state, receiving REMOTE_NDIS_SET_MSG for OID_GEN_CURRENT_PACKET_FILTER with a zero filter value forces the device back into the rndis-initialized state. Receiving REM
39、OTE_NDIS_HALT_MSG or a bus-level disconnect or hard-reset at any time forces the device into the rndis-uninitialized state.HaltAt any time that the device is in the rndis-initialized or rndis-data-initialized state, the host computer may terminate the Remote NDIS functionality of the device in an ab
40、ortive fashion by sending REMOTE_NDIS_HALT_MSG to the device. ResetThe communication channel is “soft-reset” when an error such as message timeout occurs. The host may initiate a soft-reset at any time when the device is in the rndis_initialized state by sending REMOTE_NDIS_RESET_MSG to the device (
41、see details below); and the device must send a response message when it has completed the reset. For example, the host may initiate a soft-reset when an error, such as a message timeout has occurred. Note that this is a soft reset in the sense that any handles (e.g. VCs for connection-oriented devic
42、es) continue to be valid after the reset. The Remote NDIS device, as part of the reset process, discards all outstanding requests and packets. The remote device may reset some of its hardware components, but keeps all communication channels to the host intact.Hard ResetIf the Remote NDIS device perf
43、orms a hard reset (i.e. reboot), this event is assumed to be equivalent of “Remove” followed by “Add” plug-and-play events. The host NDIS mini-port will be halted and removed, and a new instance will be added and started. All bus-level and Remote NDIS initialization will be re-executed. A Remote NDI
44、S device may hard-reset itself in the event of a critical device failure.Flow ControlThe Remote NDIS device may need to exercise flow control to prevent the host from overflowing its data buffers with packets. Any flow control provisions or requirements are given in the respective bus-mapping chapte
45、r.Byte OrderingAll numeric values in message fields defined by this specification are assumed to be coded in little-endian format, i.e. least significant byte first.EncapsulationThis section does not specify the way NDIS messages are encapsulated in native bus messages or primitives. Please refer to
46、 the appropriate bus-mapping chapter for more details.Remote NDIS Version REF _Ref501343564 h Table 21 defines the Remote NDIS protocol version identifiers exchanged between host and device. Note that these are unrelated to the revision number of this specification.Table STYLEREF 1 s 2 SEQ Table * A
47、RABIC s 1 1: Remote NDIS Protocol VersionVersion IdentifierValueDescriptionRNDIS_MAJOR_VERSION1Remote NDIS Major Version specified in this document.RNDIS_MINOR_VERSION0Remote NDIS Minor Version specified in this document.Status ValuesThe Remote NDIS status values are generally equivalent to the 32-b
48、it status values defined in the Windows 2000 DDK. Specifically, high bit set indicates an error state and the high bit clear indicates a success state. The specific Remote NDIS status values used in this specification are listed below, others can be inferred from the Windows 2000 DDK or MSDN. A devi
49、ce may return any semantically correct Remote NDIS status value in a Status field of a message that it generates.Table STYLEREF 1 s 2 SEQ Table * ARABIC s 1 2: Remote NDIS Status ValuesStatus IdentifierValueDescriptionRNDIS_STATUS_SUCCESS0 x00000000SuccessRNDIS_STATUS_FAILURE0 xC0000001Unspecified e
50、rror (equivalent to STATUS_UNSUCCESSFUL)RNDIS_STATUS_INVALID_DATA0 xC0010015Invalid data errorRNDIS_STATUS_NOT_SUPPORTED0 xC00000BBUnsupported request errorRNDIS_STATUS_MEDIA_CONNECT0 x4001000BDevice is connected to network medium (equivalent to NDIS_STATUS_MEDIA_CONNECT from Windows 2000 DDK)RNDIS_
51、STATUS_MEDIA_DISCONNECT0 x4001000CDevice is disconnected from network medium (equivalent to NDIS_STATUS_MEDIA_DISCONNECT from Windows 2000 DDK)RNDIS_STATUS_XxxEqual to NDIS_STATUS_Xxx values defined in Windows 2000 DDK or MSDNMessage Set for Connectionless (802.3) DevicesThe following Remote NDIS co
52、ntrol messages that must be supported by an 802.3 connectionless device, see REF _Ref501342261 h Table 31 for an overview. In the more detailed descriptions below, some messages include a RequestId field. This is used to match sent messages with responses. With this mechanism, a host driver can send
53、 multiple Remote NDIS messages to a device without concern for the ordering of responses. A Remote NDIS device must maintain the RequestId field when returning a response.Table STYLEREF 1 s 3 SEQ Table * ARABIC s 1 1: Control Messages SetMessage IdentifierValueDescriptionREMOTE_NDIS_INITIALIZE_MSG0
54、x00000002Initialize the device.REMOTE_NDIS_HALT_MSG0 x00000003Halt the device. This is the only host control message that doesnt get a response.REMOTE_NDIS_QUERY_MSG0 x00000004Send a query OID.REMOTE_NDIS_SET_MSG0 x00000005Send a set OID.REMOTE_NDIS_RESET_MSG0 x00000006Perform a soft reset on the de
55、vice.REMOTE_NDIS_INDICATE_STATUS_MSG0 x00000007Indicates 802.3 link state or undefined message error.REMOTE_NDIS_KEEPALIVE_MSG0 x00000008During idle periods, sent every few seconds to check that the device is still responsive (may optionally also be sent by the device).REMOTE_NDIS_INITIALIZE_CMPLT0
56、x80000002Device response to initialization request.REMOTE_NDIS_QUERY_CMPLT0 x80000004Device response to query OID request.REMOTE_NDIS_SET_CMPLT0 x80000005Device response to set OID request.REMOTE_NDIS_RESET_CMPLT0 x80000006Device responses to reset request.REMOTE_NDIS_KEEPALIVE_CMPLT0 x80000008Devic
57、e response to keep alive message.REMOTE_NDIS_INITIALIZE_MSG This message is sent by the host to a Remote NDIS device to initialize the network connection. It is sent via the control channel and only when the device is in the rndis-uninitialized state. See REF _Ref501343609 h Table 32 for details of
58、the message.The MaxTransferSize indicates the maximum size, in bytes, of any single bus data transfer that the host expects to receive from the device. Typically, each bus data transfer accommodates a single Remote NDIS message. However, as described below (see REF _Ref501344899 h Multi-Packet Trans
59、fers), the device may bundle several Remote NDIS messages containing Data packets into a single transfer.MajorVersion and MinorVersion indicate the highest Remote NDIS protocol version implemented by the host. There is no guarantee that the host supports any lower versions; specifics of Remote NDIS
60、version(s) supported by various Windows operating system versions will be documented in appropriate product documentation, e.g. the DDK. See REF _Ref501343564 h Table 21 for more details.REMOTE_NDIS_INITIALIZE_MSG FormatTable STYLEREF 1 s 3 SEQ Table * ARABIC s 1 2: REMOTE_NDIS_INITIALIZE_MSGOffsetS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年浙江省永康市高二生物下册期末考试检测卷及参考答案【模拟题】
- 2026年河南省林州市高二生物下册期末考试考试卷及参考答案【培优】
- 2026年江苏省启东市高二生物下册期末考试模拟卷【考点精练】附答案
- 2026年广东省乐昌市高二生物下册期末考试测试卷附参考答案(轻巧夺冠)
- 2026年河南省孟州市高二生物下册期末考试模拟卷附答案(B卷)
- 2026年福建省永安市高二生物下册期末考试模拟卷含答案(A卷)
- 2026年河南省济源市高二生物下册期末考试模拟卷带答案(B卷)
- 2026年福建省福鼎市高二生物下册期末考试检测卷及参考答案(模拟题)
- 2026年黑龙江省导游基础知识考试卷及答案(十)
- 2026年山东省昌邑市高二生物下册期末考试模拟卷【真题汇编】附答案
- 2026年广东省汕头市潮南区中考一模英语(含详细答案解析)
- 建筑防水维修用快速堵漏材料验收方案
- 2026年安全生产月:非煤矿山爆破作业安全管理课件
- 13 任何可能的紧急情况的处理措施、预案以及抵抗风险包括工程施工过程中可能遇到
- 中国成人患者肠外肠内营养临床应用指南(2026版)
- 2025年交通运输概论考试试题及答案
- 五下道法 全册必背120个考点26春
- 天津中考:历史高频考点总结
- 2026年地铁站务员面试常见问题
- 2026苏教版(新教材)小学科学二年级下册《探秘玩具》单元综合测试卷及答案(2套)
- 2026年中央安全生产考核巡查明查暗访清单
评论
0/150
提交评论