Freigeben über


IoCheckLinkShareAccess-Funktion (wdm.h)

Die IoCheckLinkShareAccess-Routine wird von Dateisystemtreibern (FSDs) oder anderen Treibern der höchsten Ebene aufgerufen, um zu überprüfen, ob der freigegebene Linkzugriff auf ein Dateiobjekt zulässig ist.

Syntax

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
);

Parameter

[in] DesiredAccess

Gibt einen ACCESS_MASK Wert an, der den gewünschten Zugriffstyp auf das angegebene Dateiobjekt angibt.

[in] DesiredShareAccess

Gibt den gewünschten Typ des freigegebenen Zugriffs auf das Dateiobjekt für die aktuelle offene Anforderung an. Der Wert dieses Parameters entspricht in der Regel dem ShareAccess-Parameter , der vom E/A-Manager an das Dateisystem oder den Treiber der obersten Ebene übergeben wird, wenn die offene Anforderung gestellt wurde. Dieser Wert kann null oder eine beliebige Kombination aus folgendem Wert sein:

FILE_SHARE_READ

FILE_SHARE_WRITE

FILE_SHARE_DELETE

[in, out, optional] FileObject

Ein Zeiger auf das Dateiobjekt, für das der Zugriff auf die aktuelle offene Anforderung überprüft werden soll.

[in, out, optional] ShareAccess

Ein Zeiger auf die gemeinsame Freigabezugriffsdatenstruktur, die FileObject zugeordnet ist. Treiber sollten diese Struktur als undurchsichtig behandeln.

[in, out, optional] LinkShareAccess

Ein Zeiger auf die common link share-access data structure (LINK_SHARE_ACCESS), die FileObject zugeordnet ist. Treiber sollten diese Struktur als undurchsichtig behandeln.

[in] IoShareAccessFlags

Eine Bitmaske dieser Flags:

IO_SHARE_ACCESS_NO_WRITE_PERMISSION (0x80000000) gibt an, dass der Benutzer über keine Schreibberechtigung für die Datei verfügt. Dieses Flag wird verwendet, um das Öffnen einer Datei für exklusiven Lesezugriff zu verhindern, wenn der Benutzer nicht über die entsprechenden Berechtigungen verfügt.

IO_SHARE_ACCESS_NON_PRIMARY_STREAM (0x00000080) gibt an, dass der Datenstrom weder der primäre Datenstrom noch ein Verzeichnisdatenstrom ist.

IO_CHECK_SHARE_ACCESS_UPDATE_SHARE_ACCESS (0x00000001) gibt an, ob die SHARE_ACCESS-Struktur aktualisiert wird.

IO_CHECK_SHARE_ACCESS_DONT_UPDATE_FILE_OBJECT (0x00000002) gibt an, dass FILE_OBJECT Struktur nicht aktualisiert wird.

IO_CHECK_SHARE_ACCESS_DONT_CHECK_READ (0x00000004) gibt an, dass der Lesefreigabezugriff nicht überprüft wird.

IO_CHECK_SHARE_ACCESS_DONT_CHECK_WRITE (0x00000008) gibt an, dass der Schreibfreigabezugriff nicht überprüft wird.

IO_CHECK_SHARE_ACCESS_DONT_CHECK_DELETE (0x00000010) gibt an, dass der Löschfreigabezugriff nicht überprüft wird.

IO_CHECK_SHARE_ACCESS_FORCE_CHECK (0x00000020) angeben, dass der Freigabezugriff auch dann überprüft werden soll, wenn die Anforderung keinen Lese-/Schreib-/Löschzugriff hat.

IO_CHECK_SHARE_ACCESS_FORCE_USING_SCB (0x00000040) gibt an, die Überprüfung des Freigabezugriffs mithilfe von ShareAccess zu erzwingen, unabhängig davon, ob LinkShareAccess vorhanden ist oder nicht.

Rückgabewert

Die IoCheckLinkShareAccess-Routine gibt STATUS_SUCCESS zurück, wenn der Zugriff des Anforderers auf das Dateiobjekt mit der Art und Weise kompatibel ist, in der es derzeit geöffnet ist. Wenn die Anforderung aufgrund eines Freigabeverstoßes abgelehnt wird, wird STATUS_SHARING_VIOLATION zurückgegeben.

Hinweise

Der ShareAccess-Parameter muss für andere Zugriffe von anderen Threads gesperrt werden, während diese Routine ausgeführt wird. Andernfalls kann die Anzahl Synchronisierung sein.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 1709
Unterstützte Mindestversion (Server) Windows Server 2016
Zielplattform Universell
Header wdm.h
Bibliothek Ntoskrnl.lib

Weitere Informationen

E/A-Managerroutinen

IoRemoveLinkShareAccess

IoSetLinkShareAccess

IoUpdateLinkShareAccess