网络监视器 BLOB

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

BLOB 结构

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

BLOB 的结构特征包括:

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

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