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

Weitere Informationen

ACCESS_MASK

IoCheckShareAccess

IoCreateFile

IoCreateFileEx

IoGetFileObjectGenericMapping

IoGetRelatedDeviceObject

IoRemoveShareAccess

IoUpdateShareAccess