我在Windows 操作系统“DRIVER_OBJECT”的文档中看到A driver object is partially opaque
. 但是“部分不透明”是什么意思?
我猜这意味着只有 DRIVER_OBJECT 的一部分可用,但是从编程上讲,这意味着什么?也就是说,如果某些代码有一个指向 DRIVER_OBJECT 的指针,那么它可以将整个对象作为一个单元读取(并且可能写入)。
我在Windows 操作系统“DRIVER_OBJECT”的文档中看到A driver object is partially opaque
. 但是“部分不透明”是什么意思?
我猜这意味着只有 DRIVER_OBJECT 的一部分可用,但是从编程上讲,这意味着什么?也就是说,如果某些代码有一个指向 DRIVER_OBJECT 的指针,那么它可以将整个对象作为一个单元读取(并且可能写入)。
完整的报价是,
驱动程序对象是部分不透明的。驱动程序编写者必须知道驱动程序对象的某些成员才能初始化驱动程序并在驱动程序可卸载时卸载它。驱动程序对象的以下成员可供驱动程序访问。
相关部分是:驱动程序编写者必须了解某些成员。
为了编写/使用驱动程序,您需要可以访问代码的某些部分。各种界面。(没有语言形式化)。这些成员在上述引用之后的文档中进行了解释。
驱动程序对象中未记录的成员应被视为不可访问。随着时间的推移,依赖于对象成员位置或访问未记录成员的驱动程序可能无法保持可移植性和与其他驱动程序的互操作性。
这意味着虽然所需的“接口”是可见的,但驱动程序中的其他任何内容都应被视为“私有”。当然,您可以在 C 中使用它,但这是不受支持的,它可能会损坏、不可移植等。
这是部分不透明的定义,不透明的意思是'不透明'。部分不透明意味着它部分不透明,或者相反,它是部分可见的。使用部分不透明而不是部分可见,强调了驱动对象的隐藏性质,而不是可见部分。