SetNtmsObjectAttributeA 関数 (ntmsapi.h)

[リムーバブル 記憶域マネージャー は、Windows 7 および Windows Server 2008 R2 以降では使用できません。

SetNtmsObjectAttribute 関数は、指定された RSM オブジェクトに拡張属性 (プライベート データという名前) を作成します。

構文

DWORD SetNtmsObjectAttributeA(
  [in] HANDLE      hSession,
  [in] LPNTMS_GUID lpObjectId,
  [in] DWORD       dwType,
  [in] LPCSTR      lpAttributeName,
  [in] LPVOID      lpAttributeData,
  [in] DWORD       dwAttributeSize
);

パラメーター

[in] hSession

OpenNtmsSession 関数によって返されるセッションを処理します。

[in] lpObjectId

拡張属性を作成する RSM オブジェクトの GUID。

[in] dwType

RSM オブジェクトの種類。 オブジェクトの種類の一覧については、「 NtmsObjectsTypes」を参照してください。

[in] lpAttributeName

作成する拡張属性の名前。

[in] lpAttributeData

ユーザー定義データ。

[in] dwAttributeSize

lpAttributeData バッファーのサイズ (バイト単位)。

戻り値

この関数は、次のいずれかの値を返します。

意味
ERROR_ACCESS_DENIED
NTMS_MODIFY_ACCESSがオブジェクトに対して拒否されるか、指定したオブジェクトの種類に対して変更が許可されません (「解説」を参照)。 その他のセキュリティ エラーも考えられますが、セキュリティ サブシステム エラーを示します。

Windows XP: アクセス権は必要ありません。

ERROR_DATABASE_FAILURE
データベースの更新に失敗しました。
ERROR_INVALID_HANDLE
hSession パラメーターで指定された値が NULL であるか、無効です。
ERROR_INVALID_NAME
名前または属性が無効です。 NTMS_MAXATTR_NAMELEN値は、属性名の最大長を定義します。 長さは NULL を含みます。
ERROR_INVALID_PARAMETER
ポインターが NULL であるか、無効です。
ERROR_NO_DATA
指定された属性がNTMS_MAXATTR_LENGTH以上です。
ERROR_NOT_CONNECTED
RSM サービスに接続できません。
ERROR_OBJECT_NOT_FOUND
GUID が無効です。
ERROR_SUCCESS
関数は成功しました。

注釈

SetNtmsObjectAttribute 関数は、指定した RSM サーバーで実行する必要があります。 バイトのバッファーは異なるアーキテクチャのシステム間でマーシャリングされないため、この関数をリモートで実行すると、予期しない結果が発生する可能性があります。

属性を削除するには、長さが 0 の属性のセットを実行します。

特別なアクセス権を必要とするオブジェクトの一覧を次に示します。

Object Access
NTMS_CHANGER ライブラリへのNTMS_MODIFY_ACCESSが必要です。
NTMS_CHANGER_TYPE コンピューターへのNTMS_MODIFY_ACCESSが必要です。
NTMS_COMPUTER コンピューターへのNTMS_MODIFY_ACCESSが必要です。
NTMS_DRIVE ライブラリへのNTMS_MODIFY_ACCESSが必要です。
NTMS_DRIVE_TYPE コンピューターへのNTMS_MODIFY_ACCESSが必要です。
NTMS_IEDOOR ライブラリへのNTMS_MODIFY_ACCESSが必要です。
NTMS_IEPORT ライブラリへのNTMS_MODIFY_ACCESSが必要です。
NTMS_LIBRARY ライブラリへのNTMS_MODIFY_ACCESSが必要です。
NTMS_LIBREQUEST ライブラリへのNTMS_MODIFY_ACCESSが必要です。
NTMS_LOGICAL_MEDIA 論理メディアのメディア プールへのNTMS_MODIFY_ACCESSが必要です。
NTMS_MEDIA_POOL メディア プールへのNTMS_MODIFY_ACCESSが必要です。
NTMS_MEDIA_TYPE コンピューターへのNTMS_MODIFY_ACCESSが必要です。
NTMS_OPREQUEST コンピューターへのNTMS_MODIFY_ACCESSが必要です。
NTMS_PARTITION 側のメディア プールへのNTMS_MODIFY_ACCESSが必要です。
NTMS_PHYSICAL_MEDIA メディア プールへのNTMS_MODIFY_ACCESSが必要です。
NTMS_STORAGESLOT ライブラリへのNTMS_MODIFY_ACCESSが必要です。
 

注意

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

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー ntmsapi.h
Library Ntmsapi.lib
[DLL] Ntmsapi.dll

こちらもご覧ください

EnumerateNtmsObject

GetNtmsObjectAttribute

オブジェクト管理機能