Freigeben über


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)

Siehe auch

ACCESS_MASK

IoCheckShareAccess-

IoCreateFile-

IoCreateFileEx-

IoGetFileObjectGenericMapping

IoGetRelatedDeviceObject

IoRemoveShareAccess-

IoUpdateShareAccess-