Fonction IoSetShareAccess (wdm.h)
La routine IoSetShareAccess définit les droits d’accès pour le partage de l’objet de fichier donné.
Syntaxe
void IoSetShareAccess(
[in] ACCESS_MASK DesiredAccess,
[in] ULONG DesiredShareAccess,
[in, out] PFILE_OBJECT FileObject,
[out] PSHARE_ACCESS ShareAccess
);
Paramètres
[in] DesiredAccess
Spécifie une valeur ACCESS_MASK qui représente le type d’accès demandé pour l’objet FileObject. Consultez IoCreateFile pour obtenir la liste complète des indicateurs DesiredAccess définis par le système.
[in] DesiredShareAccess
Spécifie le type d’accès au partage à définir pour l’objet fichier. Cette valeur peut être égale à zéro ou à n’importe quelle combinaison des éléments suivants :
FILE_SHARE_READ
FILE_SHARE_WRITE
FILE_SHARE_DELETE
[in, out] FileObject
Pointeur vers l’objet fichier dont l’accès au partage est défini ou réinitialisé.
[out] ShareAccess
Pointeur vers la structure SHARE_ACCESS associée à FileObject. Les pilotes doivent traiter cette structure comme opaque.
Valeur de retour
None
Remarques
Seuls les pilotes en mode noyau de niveau supérieur doivent appeler cette routine. L’appel doit se produire dans le contexte du premier thread qui tente d’ouvrir l’objet FileObject.
Cette routine définit les informations d’accès et de partage lors de la première ouverture de FileObject . Elle retourne un pointeur vers la structure de données d’accès partagé commune associée à FileObject. Les appelants doivent enregistrer ce pointeur pour une utilisation ultérieure lors de la mise à jour de l’accès ou de la fermeture du fichier.
En règle générale, les pilotes de système de fichiers (FSD) sont les plus susceptibles d’appeler cette routine. Toutefois, d’autres pilotes de niveau supérieur peuvent appeler IoSetShareAccess pour contrôler le type d’accès autorisé à un objet d’appareil créé par le pilote associé à l’objet FileObject donné.
IoSetShareAccess n’est pas une opération atomique. Par conséquent, les pilotes appelant cette routine doivent protéger l’objet de fichier partagé passé à IoSetShareAccess au moyen d’un type de verrou, tel qu’un mutex ou un verrou de ressource, afin d’empêcher l’altération du nombre d’accès partagé.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 2000. |
Plateforme cible | Universal |
En-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Règles de conformité DDI | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm) |