IoCheckShareAccessEx 函数 (wdm.h)

IoCheckShareAccessEx 例程由文件系统驱动程序(FSDs)或其他最高级别的驱动程序调用,以检查是否允许对文件对象的共享访问。

语法

NTSTATUS IoCheckShareAccessEx(
  [in]      ACCESS_MASK   DesiredAccess,
  [in]      ULONG         DesiredShareAccess,
  [in, out] PFILE_OBJECT  FileObject,
  [in, out] PSHARE_ACCESS ShareAccess,
  [in]      BOOLEAN       Update,
  [in]      PBOOLEAN      WritePermission
);

参数

[in] DesiredAccess

指定一个 ACCESS_MASK 值,该值指示对给定文件对象的所需访问类型。

[in] DesiredShareAccess

指定对当前打开请求的文件对象的共享访问的所需类型。 此参数的值通常与 ShareAccess 参数相同,该参数在发出打开请求时传递给文件系统或 I/O 管理器的最高级别驱动程序。 此值可以是零,也可以是以下任意组合:

FILE_SHARE_READ

FILE_SHARE_WRITE

FILE_SHARE_DELETE

[in, out] FileObject

指向要检查当前打开请求访问权限的文件对象的指针。

[in, out] ShareAccess

指向与 fileObject 关联的公共共享访问数据结构的指针。 驱动程序应将此结构视为不透明。

[in] Update

指定是否更新 FileObject的共享访问状态。 TRUE 的布尔值表示,如果允许打开的请求,此例程将更新文件对象的共享访问信息。

[in] WritePermission

指定共享访问权限是否具有写入权限。 如果共享具有写入权限,则此值为 TRUE;否则为 FALSE。 如果值为 FALSE,并且共享访问权限具有写入权限,并且调用方尝试进行独占读取访问,则会将写入权限降级为FILE_SHARE_READ。 如果未对共享访问执行写入权限检查,则此值为 NULL。

返回值

如果请求者对文件对象的访问与当前打开的方式兼容,则 IoCheckShareAccessEx 例程返回STATUS_SUCCESS。 如果由于共享冲突而拒绝请求,则返回STATUS_SHARING_VIOLATION。

要求

要求 价值
最低支持的客户端 在 Windows 7 及更高版本的 Windows 中可用。
目标平台 普遍
标头 wdm.h
Ntoskrnl.lib

另请参阅

I/O 管理器例程