Fonction IoCheckLinkShareAccess (wdm.h)
La routine IoCheckLinkShareAccess est appelée par les pilotes de système de fichiers (FSD) ou d’autres pilotes de niveau supérieur pour case activée si l’accès partagé lié à un objet de fichier est autorisé.
Syntaxe
NTSTATUS IoCheckLinkShareAccess(
[in] ACCESS_MASK DesiredAccess,
[in] ULONG DesiredShareAccess,
[in, out, optional] PFILE_OBJECT FileObject,
[in, out, optional] PSHARE_ACCESS ShareAccess,
[in, out, optional] PLINK_SHARE_ACCESS LinkShareAccess,
[in] ULONG IoShareAccessFlags
);
Paramètres
[in] DesiredAccess
Spécifie une valeur ACCESS_MASK qui indique le type d’accès souhaité à l’objet de fichier donné.
[in] DesiredShareAccess
Spécifie le type souhaité d’accès partagé à l’objet de fichier pour la demande ouverte actuelle. La valeur de ce paramètre est généralement identique au paramètre ShareAccess qui est passé au système de fichiers ou au pilote de niveau supérieur par le gestionnaire d’E/S lorsque la demande ouverte a été effectuée. Cette valeur peut être zéro ou n’importe quelle combinaison des éléments suivants :
FILE_SHARE_READ
FILE_SHARE_WRITE
FILE_SHARE_DELETE
[in, out, optional] FileObject
Pointeur vers l’objet fichier pour lequel case activée accès pour la demande ouverte actuelle.
[in, out, optional] ShareAccess
Pointeur vers la structure de données d’accès au partage commune associée à FileObject. Les pilotes doivent traiter cette structure comme opaque.
[in, out, optional] LinkShareAccess
Pointeur vers la structure de données de partage d’accès (LINK_SHARE_ACCESS) de liaison commune associée à FileObject. Les pilotes doivent traiter cette structure comme opaque.
[in] IoShareAccessFlags
Masque de bits de ces indicateurs :
IO_SHARE_ACCESS_NO_WRITE_PERMISSION (0x80000000) spécifie que l’utilisateur n’a pas d’autorisation d’écriture pour le fichier. Cet indicateur est utilisé pour empêcher l’ouverture d’un fichier pour un accès en lecture exclusif lorsque l’utilisateur ne dispose pas des autorisations appropriées.
IO_SHARE_ACCESS_NON_PRIMARY_STREAM (0x00000080) spécifie que le flux n’est ni le flux de données principal ni un flux de répertoires.
IO_CHECK_SHARE_ACCESS_UPDATE_SHARE_ACCESS (0x00000001) indique si la structure SHARE_ACCESS est mise à jour.
IO_CHECK_SHARE_ACCESS_DONT_UPDATE_FILE_OBJECT (0x00000002) indique de ne pas mettre à jour FILE_OBJECT structure.
IO_CHECK_SHARE_ACCESS_DONT_CHECK_READ (0x00000004) indique de ne pas case activée l’accès au partage de lecture.
IO_CHECK_SHARE_ACCESS_DONT_CHECK_WRITE (0x00000008) indique de ne pas case activée l’accès au partage d’écriture.
IO_CHECK_SHARE_ACCESS_DONT_CHECK_DELETE (0x00000010) indique de ne pas case activée supprimer l’accès au partage.
IO_CHECK_SHARE_ACCESS_FORCE_CHECK (0x00000020) indiquent de forcer case activée l’accès au partage même si la demande n’est pas un accès en lecture/écriture/suppression.
IO_CHECK_SHARE_ACCESS_FORCE_USING_SCB (0x00000040) indique de forcer case activée supprimer l’accès au partage à l’aide de ShareAccess, que LinkShareAccess soit présent ou non.
Valeur retournée
La routine IoCheckLinkShareAccess retourne STATUS_SUCCESS si l’accès du demandeur à l’objet de fichier est compatible avec la façon dont il est actuellement ouvert. Si la demande est refusée en raison d’une violation de partage, STATUS_SHARING_VIOLATION est retourné.
Remarques
Le paramètre ShareAccess doit être verrouillé sur d’autres accès provenant d’autres threads pendant l’exécution de cette routine. Sinon, les comptages peuvent être synchronisés.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10, version 1709 |
Serveur minimal pris en charge | Windows Server 2016 |
Plateforme cible | Universal |
En-tête | wdm.h |
Bibliothèque | Ntoskrnl.lib |