EnumerateNtmsObject 函数 (ntmsapi.h)
[从 Windows 7 和 Windows Server 2008 R2 起,可移动存储管理器 不再可用。]
EnumerateNtmsObject 函数枚举 lpContainerId 参数中包含的 RSM 对象。
语法
DWORD EnumerateNtmsObject(
[in] HANDLE hSession,
[in] const LPNTMS_GUID lpContainerId,
[out] LPNTMS_GUID lpList,
[in, out] LPDWORD lpdwListSize,
[in] DWORD dwType,
[in] DWORD dwOptions
);
参数
[in] hSession
OpenNtmsSession 函数返回的会话的句柄。
[in] lpContainerId
要枚举其对象的 RSM 对象容器的唯一标识符。 此参数可以是库、媒体池、分区 ID、物理媒体或逻辑媒体的 GUID。 若要枚举 dwType 参数指定的类型的所有对象(无论容器如何),请将此参数设置为 NULL。 有关对象-容器关系的详细信息,请参阅 NtmsObjectsTypes。
[out] lpList
库、驱动器、媒体或其他 RSM 对象 ID 数组的缓冲区。
[in, out] lpdwListSize
指向变量的指针,该变量指定函数可以通过 lpList 参数返回的最大 ID 数。 返回时, lpList 中的 ID 数在 lpdwListSize 中返回。
[in] dwType
lpContainerId 容器中要枚举的对象的类型。 如果 lpContainerId 为 NULL,则枚举 RSM 支持的所有此类型对象。 此参数可以是 NtmsObjectsTypes 枚举类型的以下值之一。
[in] dwOptions
枚举选项。 这仅适用于NTMS_MEDIA_POOL dwType 时。
值 | 含义 |
---|---|
|
这枚举根池以及所有其他顶级媒体池;它始终作为列表中的第一个 GUID 返回。 仅需要枚举根池来获取或设置对象上的安全属性。 dwType 必须为 NTMS_MEDIA_POOL,lpContainerId 必须为 NULL。 |
|
枚举媒体池时不包括根池的枚举。 |
Windowsxp: 此参数是保留的,必须设置为零。
返回值
此函数返回以下值之一。
值 | 含义 |
---|---|
|
缺少 lpdwListSize 指针,或者 lpContainerId 不是 dwType 指定的对象类型的有效容器。 |
|
对于找到的所有对象而言 ,lpdwListSize 指定的缓冲区大小太小。 函数截断列表并返回 lpdwListSize 中的实际大小。 |
|
会话句柄缺失或无效。 |
|
处理期间发生分配失败。 |
|
lpContainerId 指定的 GUID 不是数据库中任何容器对象的 GUID。 |
|
函数成功。 如果 lpContainerId 不包含 dwType 指定的类型的对象,则函数将返回ERROR_SUCCESS和 lpdwListSize 为零。 |
注解
安全功能还可用于获取和设置对 RSM 对象的特定访问权限。
如果 lpdwListSize 参数中指定的可用 ID 数大于当前缓冲区大小, lpdwListSize 将返回所需的 ID 数。 然后,应用程序应分配更大的缓冲区,然后重试。
由于 ID 可能由另一个进程添加,因此具有调整大小列表的后续函数可能会收到指示列表太小的错误。
如果 lpContainerId 参数设置为 NULL,RSM 将枚举顶级对象 (,例如库) 。
如果列出了多个对象,可以从多个容器枚举该对象。 NULL 容器是最高级别的容器,并枚举系统中的所有对象。 例如,可以枚举特定库中的媒体或系统中的所有媒体。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | ntmsapi.h |
Library | Ntmsapi.lib |
DLL | Ntmsapi.dll |