Функция 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. Драйверы должны рассматривать эту структуру как непрозрачную.
Возвращаемое значение
Никакой
Замечания
Только драйверы в режиме ядра высокого уровня должны вызывать эту подпрограмму. Вызов должен выполняться в контексте первого потока, который пытается открыть FileObject.
Эта подпрограмма задает сведения о доступе и совместном доступе при первом открытии FileObj ect. Он возвращает указатель на общую структуру данных общего доступа, связанную с FileObject. Вызывающие серверы должны сохранить этот указатель для последующего использования при обновлении доступа или закрытии файла.
Как правило, драйверы файловой системы (FSD) чаще всего вызывают эту подпрограмму. Однако другие драйверы высокого уровня могут вызывать IoSetShareAccess для управления типом доступа, разрешенным для объекта устройства, созданного драйвером, связанного с заданным FileObject.
IoSetShareAccess не является атомарной операцией. Таким образом, драйверы, вызывающие эту подпрограмму, должны защитить общий файловый объект, переданный в IoSetShareAccess с помощью какой-то блокировки, например мьютекса или блокировки ресурсов, чтобы предотвратить повреждение счетчиков общего доступа.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 2000. |
целевая платформа | Всеобщий |
заголовка | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
правил соответствия DDI | HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm) |