Поделиться через


Функция IoSetShareAccess (wdm.h)

Подпрограмма IoSetShareAccess задает права доступа для предоставления общего доступа к заданному объекту файла.

Синтаксис

void IoSetShareAccess(
  [in]      ACCESS_MASK   DesiredAccess,
  [in]      ULONG         DesiredShareAccess,
  [in, out] PFILE_OBJECT  FileObject,
  [out]     PSHARE_ACCESS ShareAccess
);

Параметры

[in] DesiredAccess

Задает значение ACCESS_MASK , представляющее тип доступа, запрашиваемый для Объекта FileObject. Полный список системных флагов DesiredAccess см. в разделе IoCreateFile.

[in] DesiredShareAccess

Указывает тип доступа к общей папке, который необходимо задать для объекта файла. Это значение может быть равно нулю или любому сочетанию следующих значений:

FILE_SHARE_READ

FILE_SHARE_WRITE

FILE_SHARE_DELETE

[in, out] FileObject

Указатель на объект файла, для которого устанавливается или сбрасывается доступ к общей папке.

[out] ShareAccess

Указатель на структуру SHARE_ACCESS, связанную с FileObject. Драйверы должны рассматривать эту структуру как непрозрачную.

Возвращаемое значение

None

Remarks

Только драйверы в режиме ядра самого высокого уровня должны вызывать эту подпрограмму. Вызов должен выполняться в контексте первого потока, который пытается открыть FileObject.

Эта подпрограмма задает сведения о доступе и совместном использовании при первом открытии Объекта FileObject . Он возвращает указатель на общую структуру данных с общим доступом, связанную с FileObject. Вызывающим абонентам следует сохранить этот указатель для последующего использования при обновлении доступа или закрытии файла.

Как правило, драйверы файловой системы (FSD) чаще всего вызывают эту подпрограмму. Однако другие драйверы самого высокого уровня могут вызывать IoSetShareAccess для управления типом доступа, разрешенного к созданному драйвером объекту устройства, связанному с данным FileObject.

IoSetShareAccess не является атомарной операцией. Таким образом, драйверы, вызывающие эту подпрограмму, должны защищать объект общего файла, передаваемый в IoSetShareAccess , с помощью какой-либо блокировки, например мьютекса или блокировки ресурсов, чтобы предотвратить повреждение общего числа доступа.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 2000.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Правила соответствия DDI HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm)

См. также раздел

ACCESS_MASK

IoCheckShareAccess

IoCreateFile

IoCreateFileEx

IoGetFileObjectGenericMapping

IoGetRelatedDeviceObject

IoRemoveShareAccess

IoUpdateShareAccess