IoSetShareAccess-Funktion (wdm.h)
Die IoSetShareAccess Routine legt die Zugriffsrechte für die Freigabe des angegebenen Dateiobjekts fest.
Syntax
void IoSetShareAccess(
[in] ACCESS_MASK DesiredAccess,
[in] ULONG DesiredShareAccess,
[in, out] PFILE_OBJECT FileObject,
[out] PSHARE_ACCESS ShareAccess
);
Parameter
[in] DesiredAccess
Gibt einen ACCESS_MASK Wert an, der den Typ des Zugriffs darstellt, der für das FileObject-angefordert wurde. Eine vollständige Liste systemdefinierter DesiredAccess Flags finden Sie unter IoCreateFile-.
[in] DesiredShareAccess
Gibt den Typ des Freigabezugriffs an, der für das Dateiobjekt festgelegt werden soll. Dieser Wert kann null oder eine beliebige Kombination der folgenden Werte sein:
FILE_SHARE_READ
FILE_SHARE_WRITE
FILE_SHARE_DELETE
[in, out] FileObject
Zeigen Sie auf das Dateiobjekt, dessen Freigabezugriff festgelegt oder zurückgesetzt wird.
[out] ShareAccess
Zeiger auf die SHARE_ACCESS Struktur, die FileObject-zugeordnet ist. Treiber sollten diese Struktur als undurchsichtig behandeln.
Rückgabewert
Nichts
Bemerkungen
Nur Kernelmodustreiber auf höchster Ebene sollten diese Routine aufrufen. Der Aufruf muss im Kontext des ersten Threads auftreten, der versucht, das FileObject-zu öffnen.
Diese Routine legt den Zugriff und die Freigabe von Zugriffsinformationen fest, wenn das FileObject- zum ersten Mal geöffnet wird. Es gibt einen Zeiger auf die gemeinsame Share-Access-Datenstruktur zurück, die FileObject-zugeordnet ist. Aufrufer sollten diesen Zeiger zur späteren Verwendung speichern, wenn der Zugriff aktualisiert oder die Datei geschlossen wird.
Im Allgemeinen werden Dateisystemtreiber (File System Drivers, FSDs) am ehesten diese Routine aufrufen. Andere Treiber der höchsten Ebene können jedoch IoSetShareAccess- aufrufen, um die Art des Zugriffs zu steuern, die einem treiberbasierten Geräteobjekt zugeordnet ist, das dem angegebenen FileObject-zugeordnet ist.
IoSetShareAccess- kein atomer Vorgang ist. Daher müssen Treiber, die diese Routine aufrufen, das freigegebene Dateiobjekt schützen, das an IoSetShareAccess durch eine Art von Sperre, z. B. einen Mutex oder eine Ressourcensperre, übergeben wird, um beschädigungen der Anzahl der freigegebenen Zugriffe zu verhindern.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Ab Windows 2000 verfügbar. |
Zielplattform- | Universal |
Header- | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm) |