📄 irda.h
字号:
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// This source code is licensed under Microsoft Shared Source License
// Version 1.0 for Windows CE.
// For a copy of the license visit http://go.microsoft.com/fwlink/?LinkId=3223.
//
/*****************************************************************************
*
*
* File: irda.h
*
* Description: Definitions used across the IRDA stack
*
* Date: 4/15/95
*
* This file primarily defines the IRDA message (IRDA_MSG) used for
* communicating with the stack and communication between the layers
* of the stack. IRDA_MSG provides the following services:
* MAC_CONTROL_SERVICE
* IRLAP_DISCOVERY_SERVICE
* IRDA_DISCONNECT_SERVICE
* IRDA_CONNECT_SERVICE
* IRDA_DATA_SERVICE
* IRLMP_ACCESSMODE_SERVICE
* IRLMP_IAS_SERVICE
*
* IRDA_MSG usage:
*
* +-------+
* | IRLAP |
* +-------+
* |
* | IrmacDown(IRDA_MSG)
* \|/
* +-------+
* | IRMAC |
* +-------+
* |*************************************************************************|
* | Prim | MsgType and parameters |
* |=========================================================================|
* | MAC_DATA_REQ | IRDA_DATA_SERVICE |
* | | o IRDA_MSG_pHdrRead = start of IRDA headers|
* | | o IRDA_MSG_pHdrWrite = end of header |
* | | o IRDA_MSG_pRead = start of data |
* | | o IRDA_MSG_pWrite = end of data |
* |--------------------------+----------------------------------------------|
* | MAC_DATA_RESP | no parms (completetion of DATA_IND) |
* |--------------------------+----------------------------------------------|
* | MAC_CONTROL_REQ | MAC_CONTROL_SERVICE |
* | | o IRDA_MSG_Op = MAC_INITIALIZIE_LINK |
* | | - IRDA_MSG_Port |
* | | - IRDA_MSG_Baud |
* | | - IRDA_MSG_MinTat = min turn time |
* | | - IRDA_MSG_NumBOFs = # added when tx'ing |
* | | - IRDA_MSG_DataSize = max rx frame |
* | | - IRDA_MSG_SetIR = TRUE/FALSE (does an |
* | | EscapeComm(SETIR) to select int/ext |
* | | dongle) |
* | | o IRDA_MSG_Op = MAC_MEDIA_SENSE |
* | | - IRDA_MSG_SenseTime (in ms) |
* | | o IRDA_MSG_Op = MAC_RECONFIG_LINK |
* | | - IRDA_MSG_Baud |
* | | - IRDA_MSG_NumBOFs = # added when tx'ing |
* | | - IRDA_MSG_DataSize = max rx frame |
* | | - IRDA_MSG_MinTat = min turn time |
* | | o IRDA_MSG_OP = MAC_CLOSE_LINK |
* | | o IRDA_MSG_OP = MAC_ACQUIRE_RESOURCES |
* | | - IRDA_MSG_pMacConfig = config struct |
* | | o IRDA_MSG_OP = MAC_RELEASE_RESOURCES |
* | | - IRDA_MSG_pMacConfig = config struct |
* |-------------------------------------------------------------------------|
*
* +-------+
* | IRLAP |
* +-------+
* /|\
* | IrlapUp(IRDA_MSG)
* |
* +-------+
* | IRMAC |
* +-------+
* |*************************************************************************|
* | Prim | MsgType and parameters |
* |=========================================================================|
* | MAC_DATA_IND | IRDA_DATA_SERVICE |
* | | o IRDA_MSG_pRead = start of frame |
* | | (includes IRLAP header)|
* | | o IRDA_MSG_pWrite = end of frame |
* | | (excludes FCS) |
* |--------------------------+----------------------------------------------|
* | MAC_CONTROL_CONF | MAC_CONTROL_SERVICE |
* | | o IRDA_MSG_Op = MAC_MEDIA_SENSE |
* | | - IRDA_MSG_OpStatus = MAC_MEDIA_BUSY |
* | | MAC_MEDIA_CLEAR |
* |--------------------------+----------------------------------------------|
* | MAC_DATA_CONF | no parms |
* |-------------------------------------------------------------------------|
*
* +-------+
* | IRLMP |
* +-------+
* |
* | IrlapDown(IRDA_MSG)
* \|/
* +-------+
* | IRLAP |
* +-------+
* |*************************************************************************|
* | Prim | MsgType and parameters |
* |=========================================================================|
* | IRLAP_DISCOVERY_REQ | IRLAP_DISCOVERY_SERVICE |
* | IRLAP_Down() returns | o IRDA_MSG_SenseMedia = TRUE/FALSE |
* | IRLAP_REMOTE_DISCOVERY_IN_PROGRESS_ERR or |
* | IRLAP_REMOTE_CONNECT_IN_PROGRESS_ERR when indicated |
* |--------------------------+----------------------------------------------|
* | IRLAP_CONNECT_REQ | IRDA_CONNECT_SERVICE |
* | | o IRDA_MSG_RemoteDevAddr |
* | IRLAP_Down() returns | |
* | IRLAP_REMOTE_DISCOVERY_IN_PROGRESS_ERR when indicated |
* |--------------------------+----------------------------------------------|
* | IRLAP_CONNECT_RESP | no parms |
* |--------------------------+----------------------------------------------|
* | IRLAP_DISCONNECT_REQ | no parms |
* |--------------------------+----------------------------------------------|
* | IRLAP_DATA_REQ | IRDA_DATA_SERVICE |
* | IRLAP_UDATA_REQ | o IRDA_MSG_pHdrRead = start of IRLMP header|
* | IRLAP_Down() returns | o IRDA_MSG_pHdrWrite = end of header |
* | IRLAP_REMOTE_BUSY to | o IRDA_MSG_pRead = start of data |
* | to flow off LMP. | o IRDA_MSG_pWrite = end of data |
* |-------------------------------------------------------------------------|
* | IRLAP_FLOWON_REQ | no parms |
* |-------------------------------------------------------------------------|
* | IRLAP_LINKCONTROL_REQ | IRDA_LINKCONTROL_SERVICE |
* | | o IRDA_MSG_pLinkContext - pIrdaLinkCb |
* | | o IRDA_MSG_pLinkConfig - config struct |
* | | o IRDA_MSG_AcquireResources = |
* | | TRUE to acquire |
* | | FALSE to release |
* |-------------------------------------------------------------------------|
*
* +-------+
* | IRLMP |
* +-------+
* /|\
* | IrlmpUp(IRDA_MSG)
* |
* +-------+
* | IRLAP |
* +-------+
* |*************************************************************************|
* | Prim | MsgType and parameters |
* |=========================================================================|
* | IRLAP_DISCOVERY_IND | IRLAP_DISCOVERY_SERVICE |
* | | o pDevList = Discovery info of device that |
* | | initiated discovery |
* |--------------------------+----------------------------------------------|
* | IRLAP_DISCOVERY_CONF | IRLAP_DISCOVERY_SERVICE |
* | | o IRDA_MSG_pDevList = list of discovered |
* | | devices, NULL when |
* | | status != IRLAP_DISCOVERY_COMPLETED |
* | | o IRDA_MSG_DscvStatus = |
* | | MAC_MEDIA_BUSY |
* | | IRLAP_REMOTE_DISCOVERY_IN_PROGRESS |
* | | IRLAP_DISCOVERY_COLLISION |
* | | IRLAP_REMOTE_CONNECTION_IN_PROGRESS |
* | | IRLAP_DISCOVERY_COMPLETED |
* |--------------------------+----------------------------------------------|
* | IRLAP_CONNECT_IND | IRDA_CONNECT_SERVICE |
* | | o IRDA_MSG_RemoteDevAddr |
* | | o IRDA_MSG_pQos = Negotiated QOS |
* |-------------------------------------------------------------------------|
* | IRLAP_CONNECT_CONF | IRDA_CONNECT_SERVICE |
* | | o IRDA_MSG_pQos = Negotiated QOS, only when|
* | | successful |
* | | o IRDA_MSG_ConnStatus = |
* | | IRLAP_CONNECTION_COMPLETE|
* |--------------------------+----------------------------------------------|
* | IRLAP_DISCONNECT_IND | IRDA_DISCONNECT_SERVICE |
* | | o IRDA_MSG_DiscStatus = |
* | | IRLAP_DISCONNECT_COMPLETED |
* | | IRLAP_REMOTED_INITIATED |
* | | IRLAP_PRIMARY_CONFLICT |
* | | IRLAP_REMOTE_DISCOVERY_IN_PROGRESS |
* | | IRLAP_NO_RESPONSE |
* | | IRLAP_DECLINE_RESET |
* | | MAC_MEDIA_BUSY |
* |--------------------------+----------------------------------------------|
* | IRLAP_DATA_IND | IRDA_DATA_SERVICE |
* | IRLAP_UDATA_IND | o IRDA_MSG_pRead = start of IRLMP packet |
* | | o IRDA_MSG_pWrite = end of IRLMP packet |
* |--------------------------+----------------------------------------------|
* | IRLAP_DATA_CONF | IRDA_DATA_SERVICE |
* | IRLAP_UDATA_CONF | o IRDA_MSG_DataStatus = |
* | | ILAP_DATA_REQUEST_COMPLETED |
* | | IRLAP_DATA_REQUEST_FAILED_LINK_RESET |
* |--------------------------+----------------------------------------------|
* | IRLAP_STATUS_IND | IRDA_MSG_LinkStatus |
* |-------------------------------------------------------------------------|
*
* +-----+
* | Tdi |
* +-----+
* |
* | IrlmpDown(IRLMPContext, IRDA_MSG)
* \|/
* +-------+
* | IRLMP |
* +-------+
* |*************************************************************************|
* | Prim | MsgType and parameters |
* |=========================================================================|
* | IRLMP_DISCOVERY_REQ | IRLAP_DISCOVERY_SERVICE |
* | | o IRDA_MSG_SenseMedia = TRUE/FALSE |
* |--------------------------+----------------------------------------------|
* | IRLMP_CONNECT_REQ | IRDA_CONNECT_SERVICE |
* | IRLMP_Down() returns | o IRDA_MSG_RemoteDevAddr |
* | IRLMP_LINK_IN_USE | o IRDA_MSG_RemoteLsapSel |
* | when the requested | o IRDA_MSG_pQos (may be NULL) |
* | connection is to a | o IRDA_MSG_pConnData |
* | remote device other | o IRDA_MSG_ConnDataLen |
* | than the one the link | o IRDA_MSG_LocalLsapSel |
* | is currently connected | o IRDA_MSG_pContext |
* | or connecting to. | o IRDA_MSG_UseTtp |
* | | * o IRDA_MSG_TtpCredits |
* | | o IRDA_MSG_MaxSDUSize - Max size that this |
* | | IRLMP client can receive. |
* | | |
* | | * even if not using TTP, TtpCredits are spec-|
* | | ified for flow control in exclusive mode |
* |--------------------------+----------------------------------------------|
* | IRLMP_CONNECT_RESP | IRDA_CONNECT_SERVICE |
* | | o IRDA_MSG_pConnData |
* | | o IRDA_MSG_ConnDataLen |
* | | o IRDA_MSG_pContext |
* | | o IRDA_MSG_MaxSDUSize - Max size that this |
* | | IRLMP client can receive. |
* | | * o IRDA_MSG_TtpCredits |
* | | * see above |
* |--------------------------+----------------------------------------------|
* | IRLMP_DISCONNECT_REQ | IRDA_DISCONNECT_SERVICE |
* | | o IRDA_MSG_pDiscData |
* | | o IRDA_MSG_DiscDataLen |
* | | o IRDA_MSG_pDiscContext |
* |--------------------------+----------------------------------------------|
* | IRLMP_DATA/UDATA_REQ | IRDA_DATA_SERVICE |
* | IRLMP_Down() may return| o IRDA_MSG_pDataContext =ptr to NDIS_BUFFER|
* | IRLMP_REMOTE_BUSY, | o IRDA_MSG_IrCOMM_9Wire = TRUE/FALSE |
* | when tx cred exhausted| |
* | in multiplexed mode. | |
* | IRLAP_REMOTE_BUSY, | |
* | when remote IRLAP | |
* | flowed off in exclMode| |
* | In either case the req | |
* | was successful. | |
* |-------------------------------------------------------------------------|
* | IRLMP_ACCESSMODE_REQ | IRLMP_ACCESSMODE_SERVICE |
* | IRLMP_Down() may return| o IRDA_MSG_AccessMode = IRLMP_MULTIPLEXED |
* | IRLMP_IN_EXCLUSIVE_MODE| IRLMP_EXCLUSIVE |
* | if already in excl-mode| o IRDA_MSG_IrLPTMode - TRUE, doesn't send |
* | IRLMP_IN_MULTIPLEXED...| the Access PDU |
* | if other LSAPs exist or| |
* | requesting trans to this state when already in it. |
* |-------------------------------------------------------------------------|
* | IRLMP_MORECREDIT_REQ | IRDA_CONNECT_SERVICE |
* | | o IRDA_MSG_TtpCredits |
* |-------------------------------------------------------------------------|
* | IRLMP_GETVALUEBYCLASS_REQ| IRDA_IAS_SERVICE |
* | | o IRDA_MSG_pIasQuery |
* | | o IRDA_MSG_AttribLen |
* |-------------------------------------------------------------------------|
* | IRLMP_REGISTERLSAP_REQ | IRDA_CONNECT_SERVICE |
* | | o IRDA_MSG_LocalLsapSel |
* | | o IRDA_MSG_UseTtp |
* |-------------------------------------------------------------------------|
* | IRLMP_DEREGISTERLSAP_REQ | IRDA_CONNECT_SERVICE |
* | | o IRDA_MSG_LocalLsapSel |
* |-------------------------------------------------------------------------|
* | IRLMP_ADDATTRIBUTE_REQ | IRDA_IAS_SERVICE |
* | | o IRDA_MSG_pIasSet |
* | | o IRDA_MSG_pAttribHandle (return value) |
* |-------------------------------------------------------------------------|
* | IRLMP_DELATTRIBUTE_REQ | IRDA_IAS_SERVICE |
* | | o IRDA_MSG_AttribHandle |
* |-------------------------------------------------------------------------|
* | IRLMP_LINKCONTROL_REQ | IRDA_LINKCONTROL_SERVICE |
* | | o IRDA_MSG_AcquireResources = |
* | | TRUE to acquire |
* | | FALSE to release |
* |-------------------------------------------------------------------------|
*
*
* +-----+
* | Tdi |
* +-----+
* /|\
* | TdiUp(TransportAPIContext, IRDA_MSG)
* |
* +-------+
* | IRLMP |
* +-------+
* |*************************************************************************|
* | Prim | MsgType and parameters |
* |=========================================================================|
* | IRLMP_DISCOVERY_IND | IRLAP_DISCOVERY_SERVICE |
* | | o pDevList = aged Discovery list |
* |--------------------------+----------------------------------------------|
* | IRLMP_DISCOVERY_CONF | same as IRLAP_DISCOVERY_CONF. The device list|
* | | however is the one maintained in IRLMP |
* |--------------------------+----------------------------------------------|
* | IRLMP_DISCONNECT_IND | IRDA_DISCONNECT_SERVICE |
* | | o IRDA_MSG_DiscReason = |
* | | see IRLMP_DISC_REASON below |
* | | o IRDA_MSG_pDiscData - may be NULL |
* | | o IRDA_MSG_DiscDataLen |
* |--------------------------+----------------------------------------------|
* | IRLMP_CONNECT_IND | IRDA_CONNECT_SERVICE |
* | | o IRDA_MSG_RemoteDevAddr |
* | | o IRDA_MSG_RemoteLsapSel; |
* | | o IRDA_MSG_LocalLsapSel; |
* | | o IRDA_MSG_pQos |
* | | o IRDA_MSG_pConnData |
* | | o IRDA_MSG_ConnDataLen |
* | | o IRDA_MSG_pContext |
* | | o IRDA_MSG_MaxSDUSize - Max size that this |
* | | IRLMP client can send to peer |
* | | o IRDA_MSG_MaxPDUSize |
* |--------------------------+----------------------------------------------|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -