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 |