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
指向与 FileObject 关联的SHARE_ACCESS结构的指针。 驱动程序应将此结构视为不透明。
没有
只有最高级别内核模式驱动程序应调用此例程。 调用必须发生在尝试打开 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) |