网络监视器 BLOB

网络监视器二进制大型对象 (BLOB) 是一种通用数据结构,其中包含网络接口卡的配置和位置信息 (NIC) 。 使用 BLOB 来表示 NIC,并筛选 NIC 列表中的条目。 BLOBS 还可以包含特定于应用程序的数据,而不会影响它们保存的其他数据。 BLOB 实现对于必须使用 BLOB API 访问 BLOB 的所有级别都不透明。

BLOB 结构

BLOB 可以被视为用于指定字符串的分层树。 此树有三个层:所有者、类别和标记。 所有者是一个字符串,通常指示读取条目。 类别也是一个字符串,它指定所有者下标记的常规功能分组。 标记是条目的实际名称。

BLOB 的结构特征包括:

  • 一个进程中的 BLOB 帮助程序由内置在每个 BLOB 中的互斥体相互保护。
  • 每个 BLOB 都有一个内部版本号,以便帮助程序可以处理当前和将来的 BLOB 表单。 如果通过远程过程调用将 BLOB 发送到另一台计算机,则可能会出现版本冲突。
  • BLOB 本身是指向 void 的指针。 请注意,应用程序应使用 const 修饰符分配 BLOB,以避免更改内容。
  • 每个指定符及其值都是字符串。 请注意, GetString 函数返回的字符串实际上是 BLOB 中的指针,不应更改。 因此,必须将这些字符串指定为 const char**pX* ,以防止应用程序意外更改它们。

通常,具有 const 设计器的所有参数都鼓励调用方避免更改值,而不是禁止帮助程序函数更改它们。 事实上,帮助程序函数通常会更改这些值。