Partager via


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 vérifier 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 requête ouverte actuelle. La valeur de ce paramètre est généralement identique au paramètre ShareAccess passé au système de fichiers ou au pilote de niveau supérieur par le gestionnaire d’E/S lorsque la requête 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 de fichier pour lequel vérifier l’accès à la requête 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 d’accès au partage de liens commun (LINK_SHARE_ACCESS) 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 aucune 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 n’a pas les 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 de SHARE_ACCESS est mise à jour.

IO_CHECK_SHARE_ACCESS_DONT_UPDATE_FILE_OBJECT (0x00000002) indique de ne pas mettre à jour la structure FILE_OBJECT.

IO_CHECK_SHARE_ACCESS_DONT_CHECK_READ (0x00000004) indique de ne pas vérifier l’accès au partage de lecture.

IO_CHECK_SHARE_ACCESS_DONT_CHECK_WRITE (0x00000008) indique de ne pas vérifier l’accès au partage d’écriture.

IO_CHECK_SHARE_ACCESS_DONT_CHECK_DELETE (0x00000010) indique de ne pas vérifier la suppression de l’accès au partage.

IO_CHECK_SHARE_ACCESS_FORCE_CHECK (0x00000020) indiquent de forcer la vérification de l’accès au partage, même si la demande n’est pas en lecture/écriture/suppression d’accès.

IO_CHECK_SHARE_ACCESS_FORCE_USING_SCB (0x00000040) indique de forcer la vérification de la suppression de l’accès au partage à l’aide de ShareAccess, que LinkShareAccess soit présent ou non.

Valeur de retour

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ée.

Remarques

Le paramètre ShareAccess doit être verrouillé sur d’autres accès à partir d’autres threads pendant l’exécution de cette routine. Sinon, le nombre peut être synchronisé.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10, version 1709
serveur minimum pris en charge Windows Server 2016
plateforme cible Universel
d’en-tête wdm.h
bibliothèque Ntoskrnl.lib

Voir aussi

routines d’E/S

IoRemoveLinkShareAccess

IoSetLinkShareAccess

IoUpdateLinkShareAccess