Partager via


SetNtmsObjectAttributeW, fonction (ntmsapi.h)

[Gestionnaire de stockage amovible n’est plus disponible depuis Windows 7 et Windows Server 2008 R2.]

La fonction SetNtmsObjectAttribute crée un attribut étendu (nommé données privées) dans l’objet RSM spécifié.

Syntaxe

DWORD SetNtmsObjectAttributeW(
  [in] HANDLE      hSession,
  [in] LPNTMS_GUID lpObjectId,
  [in] DWORD       dwType,
  [in] LPCWSTR     lpAttributeName,
  [in] LPVOID      lpAttributeData,
       DWORD       AttributeSize
);

Paramètres

[in] hSession

Gérez la session retournée par la fonction OpenNtmsSession.

[in] lpObjectId

GUID de l’objet RSM pour lequel l’attribut étendu doit être créé.

[in] dwType

Type d’objet RSM. Pour obtenir la liste des types d’objets, consultez NtmsObjectsTypes.

[in] lpAttributeName

Nom de l’attribut étendu à créer.

[in] lpAttributeData

Données définies par l’utilisateur.

AttributeSize

Taille de la mémoire tampon lpAttributeData, en octets. D

Valeur de retour

Cette fonction retourne l’une des valeurs suivantes.

Valeur Signification
ERROR_ACCESS_DENIED
NTMS_MODIFY_ACCESS est refusé à l’objet ou aucune modification n’est autorisée pour le type d’objet spécifié (voir Remarques). D’autres erreurs de sécurité sont également possibles, mais elles indiquent une erreur de sous-système de sécurité.

Windows XP : Aucun droit d’accès n’est requis.

ERROR_DATABASE_FAILURE
Échec de la mise à jour de la base de données.
ERROR_INVALID_HANDLE
La valeur spécifiée dans le paramètre hSession est NULL ou n’est pas valide.
ERROR_INVALID_NAME
Le nom ou l’attribut n’est pas valide. La valeur NTMS_MAXATTR_NAMELEN définit la longueur maximale du nom d’attribut. La longueur inclut une NULL.
ERROR_INVALID_PARAMETER
Le pointeur est NULL ou n’est pas valide.
ERROR_NO_DATA
L’attribut spécifié est supérieur ou égal à NTMS_MAXATTR_LENGTH.
ERROR_NOT_CONNECTED
Impossible de se connecter au service RSM.
ERROR_OBJECT_NOT_FOUND
Le GUID n’est pas valide.
ERROR_SUCCESS
La fonction a réussi.

Remarques

La fonction SetNtmsObjectAttribute doit être exécutée sur le serveur RSM spécifié. Étant donné que la mémoire tampon d’octets n’est pas délimitée entre les systèmes de différentes architectures, l’exécution à distance de cette fonction peut entraîner des résultats imprévisibles.

Pour supprimer un attribut, effectuez un ensemble de l’attribut avec une longueur de zéro.

Voici la liste des objets qui nécessitent des droits d’accès spéciaux.

Objet Accès
NTMS_CHANGER Nécessite NTMS_MODIFY_ACCESS à la bibliothèque.
NTMS_CHANGER_TYPE Nécessite NTMS_MODIFY_ACCESS à l’ordinateur.
NTMS_COMPUTER Nécessite NTMS_MODIFY_ACCESS à l’ordinateur.
NTMS_DRIVE Nécessite NTMS_MODIFY_ACCESS à la bibliothèque.
NTMS_DRIVE_TYPE Nécessite NTMS_MODIFY_ACCESS à l’ordinateur.
NTMS_IEDOOR Nécessite NTMS_MODIFY_ACCESS à la bibliothèque.
NTMS_IEPORT Nécessite NTMS_MODIFY_ACCESS à la bibliothèque.
NTMS_LIBRARY Nécessite NTMS_MODIFY_ACCESS à la bibliothèque.
NTMS_LIBREQUEST Nécessite NTMS_MODIFY_ACCESS à la bibliothèque.
NTMS_LOGICAL_MEDIA Nécessite NTMS_MODIFY_ACCESS au pool de supports du média logique.
NTMS_MEDIA_POOL Nécessite NTMS_MODIFY_ACCESS au pool de supports.
NTMS_MEDIA_TYPE Nécessite NTMS_MODIFY_ACCESS à l’ordinateur.
NTMS_OPREQUEST Nécessite NTMS_MODIFY_ACCESS à l’ordinateur.
NTMS_PARTITION Nécessite NTMS_MODIFY_ACCESS au pool multimédia du côté.
NTMS_PHYSICAL_MEDIA Nécessite NTMS_MODIFY_ACCESS au pool de supports.
NTMS_STORAGESLOT Nécessite NTMS_MODIFY_ACCESS à la bibliothèque.
 

Note

L’en-tête ntmsapi.h définit SetNtmsObjectAttribute en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2003 [applications de bureau uniquement]
plateforme cible Windows
d’en-tête ntmsapi.h
bibliothèque Ntmsapi.lib
DLL Ntmsapi.dll

Voir aussi

EnumerateNtmsObject

GetNtmsObjectAttribute

fonctions de gestion des objets