我在the documentation for a windows OS "DRIVER_OBJECT"中看到A driver object is partially opaque
。但“部分不透明”是什么意思?
我猜这意味着只有DRIVER_OBJECT的一部分是可用的,但那么,从程序上来说,这意味着什么呢?也就是说,如果某些代码具有指向DRIVER_OBJECT的指针,那么它可以将整个对象读取(并可能写入)作为一个单元。
答案 0 :(得分:2)
完整的引用是,
驱动程序对象部分不透明。司机作家必须了解 驱动程序的某些成员对象初始化驱动程序并且 如果驱动程序无法卸载,请将其卸载。以下成员 驱动程序可以访问驱动程序对象。
相关部分是:驱动程序编写者必须了解某些成员。
为了编写/使用驱动程序,您需要访问代码的某些部分。各种各样的界面。 (没有语言形式化)。在上面引用之后的文件中解释了这些成员。
应考虑驱动程序对象中的未记录成员 无法访问。依赖于对象成员位置或的驱动程序 访问未记录的成员可能无法保持便携性 随着时间的推移可以与其他驱动程序互操作。
这意味着当所需的“界面”可见时,驱动程序中的任何其他内容都应被视为“私有”。当然你可以在C中达到它,但这是不受支持的,它可能会破坏,不可移动等等。
这是部分不透明的定义,不透明的意思是“not transparent”。 部分不透明表示部分不透明,或相反,部分可见。使用部分不透明而不是部分可见,强调驱动对象的隐藏性质,而不是可见部分。