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 wird. Eine vollständige Liste der systemdefinierten 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 aus folgendem Wert sein:
FILE_SHARE_READ
FILE_SHARE_WRITE
FILE_SHARE_DELETE
[in, out] FileObject
Zeiger 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
Keine
Bemerkungen
Nur Kernelmodustreiber der obersten Ebene sollten diese Routine aufrufen. Der Aufruf muss im Kontext des ersten Threads erfolgen, der versucht, das FileObject zu öffnen.
Diese Routine legt die Zugriffs- und Freigabezugriffsinformationen fest, wenn das FileObject zum ersten Mal geöffnet wird. Es gibt einen Zeiger auf die gemeinsame Freigabezugriffsdatenstruktur zurück, die FileObject zugeordnet ist. Aufrufer sollten diesen Zeiger zur späteren Verwendung speichern, wenn sie den Zugriff aktualisieren oder die Datei schließen.
Im Allgemeinen wird diese Routine von Dateisystemtreibern (FSDs) am wahrscheinlichsten aufgerufen. Andere Treiber der obersten Ebene können Jedoch IoSetShareAccess aufrufen, um die Art des Zugriffs zu steuern, der auf ein vom Treiber erstelltes Geräteobjekt zulässig ist, das dem angegebenen FileObject zugeordnet ist.
IoSetShareAccess ist kein atomischer Vorgang. Daher müssen Treiber, die diese Routine aufrufen, das freigegebene Dateiobjekt schützen, das an IoSetShareAccess übergeben wird, durch eine Art von Sperre, z. B. ein Mutex oder eine Ressourcensperre, um eine Beschädigung der Anzahl der freigegebenen Zugriffe zu verhindern.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows 2000. |
Zielplattform | Universell |
Header | wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm) |