Функция 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) |