CreateNtmsMediaPool 函数 (ntmsapi.h)
[从 Windows 7 和 Windows Server 2008 R2 起,可移动存储管理器 不再可用。]
CreateNtmsMediaPool 函数创建新的应用程序媒体池。
语法
DWORD CreateNtmsMediaPool(
[in] HANDLE hSession,
[in] LPCTSTR lpPoolName,
[in] LPNTMS_GUID lpMediaType,
[in] DWORD dwAction,
[in] LPSECURITY_ATTRIBUTES lpSecurityAttributes,
[out] LPNTMS_GUID lpPoolId
);
参数
[in] hSession
OpenNtmsSession 函数返回的会话的句柄。
[in] lpPoolName
新媒体池的名称。 媒体池名称在单个 RSM 数据库的范围内必须是唯一的。
[in] lpMediaType
此媒体池中媒体类型的标识符。 使用 EnumerateNtmsObject 函数获取可用媒体类型及其属性的列表。 应用程序可以传递 NULL 指针来创建仅包含其他媒体池的媒体池。
[in] dwAction
要执行的操作。 此参数须为下列值之一。
值 | 含义 |
---|---|
|
按名称打开现有媒体池。 如果池不存在,则返回ERROR_OBJECT_NOT_FOUND。 |
|
打开现有的媒体池或创建池(如果不存在)。 |
|
创建新的媒体池。 如果池存在,则返回ERROR_ALREADY_EXISTS。 |
[in] lpSecurityAttributes
用于限制对池的访问的可选安全描述符。
[out] lpPoolId
指向变量的指针,该变量在成功创建或打开媒体池后接收媒体池的唯一标识符。
返回值
此函数返回以下值之一。
值 | 含义 |
---|---|
|
尝试创建新的媒体池时,将拒绝对根池或父媒体池NTMS_CONTROL_ACCESS。 其他安全错误也可能存在,但它们表示存在安全子系统错误。
Windowsxp: 尝试创建新的媒体池时,无法NTMS_MODIFY_ACCESS父媒体池。 其他安全错误也可能存在,但它们表示存在安全子系统错误。 |
|
无法创建新的媒体池,因为已存在具有此名称的媒体池。 |
|
数据库不可访问或已损坏。 |
|
数据库已满。 其他安全错误也可能存在,但它们表示存在安全子系统错误。 |
|
会话句柄缺失或无效。 |
|
所选媒体类型无效。 |
|
池名称语法无效。 (名称太长。) |
|
缺少媒体池名称或媒体池 ID 指针。 |
|
无法打开现有媒体池。 |
|
函数成功。 |
注解
免费、无法识别和导入的媒体池由 RSM 创建,不能使用 CreateNtmsMediaPool 函数创建。
RSM 媒体池组织为层次结构,由“”字符分隔。 应用程序、可用、无法识别和导入媒体池位于层次结构的根目录中。 RSM 创建和管理“免费”、“无法识别”和“导入”池。 RSM 为可用的每种媒体类型创建一个免费媒体池。
特定于应用程序的媒体池由应用程序创建。 应用程序在根应用程序池下创建供自己使用的媒体池。 这些媒体池具有类似于文件系统的名称。 只有名称的终结点包含媒体和策略。 应用程序可以定义 \MyApp\Pool1 和 \MyApp\Pool2 等池。 这会将层次结构传达给用户界面,并避免重复的名称。 每个池级别必须单独创建;先是 MyApp,然后是 Pool1 和 Pool2,就像文件夹和文件一样。
Windows Server 2003: 若要创建媒体池,必须NTMS_CONTROL_ACCESS根池和父池。 如果未提供安全描述符,则池将继承其父池的 ACE (如果父池不是根池) 。 此外,创建者和本地系统帐户对池具有完全访问权限。 如果父池是根池,则不会继承其 ACE;DACL 中唯一的 ACE 是创建者和本地系统帐户的完全访问权限。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | ntmsapi.h |
Library | Ntmsapi.lib |
DLL | Ntmsapi.dll |