Fonction SetNtmsObjectAttributeW (ntmsapi.h)

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

La fonction SetNtmsObjectAttribute crée un attribut étendu (données privées nommé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 retournée

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
La mise à jour de la base de données a échoué.
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 valeur NULL.
ERROR_INVALID_PARAMETER
Le pointeur a la valeur 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 des 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 d’une longueur égale à zéro.

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

Object Access
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 multimédia du média logique.
NTMS_MEDIA_POOL Nécessite NTMS_MODIFY_ACCESS au pool de médias.
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 médias.
NTMS_STORAGESLOT Nécessite NTMS_MODIFY_ACCESS à la bibliothèque.
 

Notes

L’en-tête ntmsapi.h définit SetNtmsObjectAttribute comme un 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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête ntmsapi.h
Bibliothèque Ntmsapi.lib
DLL Ntmsapi.dll

Voir aussi

EnumerateNtmsObject

GetNtmsObjectAttribute

Fonctions de gestion des objets