createNtmsMediaPoolW 函数 (ntmsapi.h)

[从 Windows 7 和 Windows Server 2008 R2 起,可移动存储管理器 不再可用。]

CreateNtmsMediaPool 函数创建新的应用程序媒体池。

语法

DWORD CreateNtmsMediaPoolW(
  [in]  HANDLE                hSession,
  [in]  LPCWSTR               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

要执行的操作。 此参数须为下列值之一。

含义
NTMS_OPEN_EXISTING
按名称打开现有媒体池。 如果池不存在,则返回ERROR_OBJECT_NOT_FOUND。
NTMS_OPEN_ALWAYS
打开现有的媒体池或创建池(如果不存在)。
NTMS_CREATE_NEW
创建新的媒体池。 如果池存在,则返回ERROR_ALREADY_EXISTS。

[in] lpSecurityAttributes

用于限制对池的访问的可选安全描述符。

[out] lpPoolId

指向变量的指针,该变量在成功创建或打开媒体池后接收媒体池的唯一标识符。

返回值

此函数返回以下值之一。

含义
ERROR_ACCESS_DENIED
尝试创建新的媒体池时,将拒绝对根池或父媒体池NTMS_CONTROL_ACCESS。 其他安全错误也可能存在,但它们表示存在安全子系统错误。

Windowsxp: 尝试创建新的媒体池时,无法NTMS_MODIFY_ACCESS父媒体池。 其他安全错误也可能存在,但它们表示存在安全子系统错误。

ERROR_ALREADY_EXISTS
无法创建新的媒体池,因为已存在具有此名称的媒体池。
ERROR_DATABASE_FAILURE
数据库不可访问或已损坏。
ERROR_DATABASE_FULL
数据库已满。 其他安全错误也可能存在,但它们表示存在安全子系统错误。
ERROR_INVALID_HANDLE
会话句柄缺失或无效。
ERROR_INVALID_MEDIA
所选媒体类型无效。
ERROR_INVALID_NAME
池名称语法无效。 (名称太长。)
ERROR_INVALID_PARAMETER
缺少媒体池名称或媒体池 ID 指针。
ERROR_OBJECT_NOT_FOUND
无法打开现有媒体池。
ERROR_SUCCESS
函数成功。

注解

免费、无法识别和导入的媒体池由 RSM 创建,不能使用 CreateNtmsMediaPool 函数创建。

RSM 媒体池组织为层次结构,由“”字符分隔。 应用程序、可用、无法识别和导入媒体池位于层次结构的根目录中。 RSM 创建和管理“免费”、“无法识别”和“导入”池。 RSM 为可用的每种媒体类型创建一个免费媒体池。

特定于应用程序的媒体池由应用程序创建。 应用程序在根应用程序池下创建供自己使用的媒体池。 这些媒体池具有类似于文件系统的名称。 只有名称的终结点包含媒体和策略。 应用程序可以定义 \MyApp\Pool1 和 \MyApp\Pool2 等池。 这会将层次结构传达给用户界面,并避免重复的名称。 每个池级别必须单独创建;先是 MyApp,然后是 Pool1 和 Pool2,就像文件夹和文件一样。

Windows Server 2003: 若要创建媒体池,必须NTMS_CONTROL_ACCESS根池和父池。 如果未提供安全描述符,则池将继承其父池的 ACE (如果父池不是根池) 。 此外,创建者和本地系统帐户对池具有完全访问权限。 如果父池是根池,则不会继承其 ACE;DACL 中唯一的 ACE 是创建者和本地系统帐户的完全访问权限。

注意

ntmsapi.h 标头将 CreateNtmsMediaPool 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 ntmsapi.h
Library Ntmsapi.lib
DLL Ntmsapi.dll

另请参阅

AllocateNtmsMedia

DeleteNtmsMediaPool

GetNtmsObjectSecurity

媒体服务函数

SetNtmsObjectSecurity