AcsLan功能用于使用数据链接控制(DLC)协议与其他计算机或网络外围设备(如打印机)进行通信。呼叫者通过填写命令控制块(CCB),然后调用AcsLan来提交请求。
通过AcsLan提交的命令可以同步或异步完成。DLC驱动程序,而不是调用者,确定命令如何完成。这与Netbios的 功能不同,例如,它具有按照调用者的请求同步或异步完成的命令。
NT DLC和CCB2接口之间有一些区别。最显着的区别是缓冲池必须在开放适配器实例的基础上进行指定,而不是按SAP规定(服务访问点)。使用DIR.OPEN.ADAPTER命令打开适配器后,必须使用BUFFER.CREATE向DLC驱动程序提供缓冲池。
ACSLAN_STATUS AcsLan(
PLLC_CCB 【PCCB】, | //指向控制块的指针 |
PLLC_CCB *【ppBadCcb】 | //指向无效CCB的指针 |
); |
参数
【PCCB】
指向LLC_CCB结构的指针,描述正在执行的功能。有关此结构的信息,请参阅IBM LAN的文档。
【ppBadCcb】
指向LLC_CCB结构的指针。当提交LLC_CCB结构链时使用此参数。如果参数在输入时不为NULL,则该指针将包含指向链中发现的第一个无效LLC_CCB结构的指针。
返回值
该函数返回一个ACSLAN_STATUS值。ACSLAN_STATUS是枚举类型。定义了以下值:
值 | 含义 |
ACSLAN_STATUS_COMMAND_ACCEPTED | 该请求已被处理并传递给DLC驱动程序。该命令可能已经或可能尚未完成,具体取决于它是同步还是异步命令,并且取决于其他时序考虑。该值并不意味着该命令成功完成。来电者必须检查LLC_CCB结构中的uchDlcStatus成员,以确定请求是成功还是失败。 |
ACSLAN_STATUS_INVALID_CCB_POINTER | LLC_CCB结构中的指针或参数表无效。 |
ACSLAN_STATUS_CCB_IN_ERROR | 使用LLC_CCB结构检测到问题。调用者应该检查结构中的值并重新提交。 |
ACSLAN_STATUS_CHAINED_CCB_IN_ERROR | LLC_CCB结构链中的LLC_CCB结构检测到问题。 |
ACSLAN_STATUS_SYSTEM_ERROR | 该值不被使用。 |
ACSLAN_STATUS_SYSTEM_STATUS | 该值不被使用。 |
ACSLAN_STATUS_INVALID_COMMAND | uchDlcCommand LLC_CCB结构中的命令无法识别。 |
也可以看看