次の方法で共有


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は、新しいメディア プールの作成中に拒否されます。 その他のセキュリティ エラーも考えられますが、セキュリティ サブシステム エラーを示します。

Windows XP: 新しいメディア プールを作成しようとすると、親メディア プールへの 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
関数が成功しました。

備考

Free、Unrecognized、Import メディア プールは RSM によって作成され、CreateNtmsMediaPool 関数では作成できません。

RSM メディア プールは、"" 文字で区切られた階層として編成されます。 アプリケーション、Free、Unrecognized、Import メディア プールは、階層のルートに存在します。 RSM は、Free プール、Unrecognized プール、Import プールを作成して管理します。 RSM は、使用可能なメディアの種類ごとに Free メディア プールを作成します。

アプリケーション固有のメディア プールは、アプリケーションによって作成されます。 アプリケーションは、ルート アプリケーション プールの下に独自に使用するメディア プールを作成します。 これらのメディア プールには、ファイル システムに似た名前があります。 名前のエンドポイントにのみメディアとポリシーが含まれます。 アプリケーションでは、\MyApp\Pool1 や \MyApp\Pool2 などのプールを定義できます。 これにより、階層がユーザー インターフェイスに伝達され、重複する名前が回避されます。 各プール レベルは個別に作成する必要があります。フォルダーやファイルと同様に、最初の MyApp、Pool1、Pool2。

Windows Server 2003: メディア プールを作成するには、ルート プールと親プールへのNTMS_CONTROL_ACCESSが必要です。 セキュリティ記述子が指定されていない場合、プールは親プールの ACE を継承します (親プールがルート プールでない場合)。 さらに、作成者アカウントとローカル システム アカウントは、プールへのフル アクセス権を持っています。 親プールがルート プールの場合、その ACE は継承されません。DACL 内の唯一の ACE は、作成者およびローカル システム アカウントに対するフル アクセスです。

手記

ntmsapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして CreateNtmsMediaPool を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー ntmsapi.h
ライブラリ Ntmsapi.lib
DLL Ntmsapi.dll

関連項目

AllocateNtmsMedia の

DeleteNtmsMediaPool の

GetNtmsObjectSecurity の

Media Services Functions

SetNtmsObjectSecurity の