上面我们谈到函数调用约定,其目的是传递数据,不过它传递的数据量都比较小。传递数据还有另外的方式,比如全局变量、注册表、页面共享、I/O请求包等,有些可以传递更多的数据,我们称之为扩展约定。扩展约定是根据模块需求而设计的,可简单、可复杂,没有统一的标准。扩展约定一次可以传递的数据从1B到几MB,所以这种方式在设计上比较灵活。在后面的章节中我们会提到的Section对象利用原型PTE实现页面共享,设备驱动程序使用IRP传递数据,其原理都相同,目的都是传递数据。 4N8MMdkMdf/w5xtAGk8qxnEt2MlufoLGoiXSx8/6JaHWgm7/YHs6Is89dMFHtQfu