ioCheckShareAccessEx 函数 (wdm.h)

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

语法

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

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

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
Library Ntoskrnl.lib

另请参阅

I/O 管理器例程