ZwOpenSymbolicLinkObject 函数 (wdm.h)

ZwOpenSymbolicLinkObject 例程会打开现有的符号链接。

语法

NTSYSAPI NTSTATUS ZwOpenSymbolicLinkObject(
  [out] PHANDLE            LinkHandle,
  [in]  ACCESS_MASK        DesiredAccess,
  [in]  POBJECT_ATTRIBUTES ObjectAttributes
);

参数

[out] LinkHandle

指向 HANDLE 变量的指针,该变量接收符号链接对象的句柄。

[in] DesiredAccess

指定一个 ACCESS_MASK 值,该值确定对 对象的请求访问权限。 调用方通常GENERIC_READ指定,以便句柄可以传递到 ZwQuerySymbolicLinkObject

[in] ObjectAttributes

指向 OBJECT_ATTRIBUTES 结构的指针,该结构指定对象名称和其他属性。 使用 InitializeObjectAttributes 初始化此结构。 如果调用方未在系统线程上下文中运行,则必须在调用 InitializeObjectAttributes 时设置 OBJ_KERNEL_HANDLE 属性。

返回值

ZwOpenSymbolicLinkObject 在成功时返回STATUS_SUCCESS或相应的错误状态。

注解

不再使用 LinkHandle 指向的句柄后,驱动程序必须调用 ZwClose 将其关闭。

如果调用方未在系统线程上下文中运行,它必须确保它创建的任何句柄都是专用句柄。 否则,运行驱动程序的上下文的进程可以访问句柄。 有关详细信息,请参阅 对象句柄

如果在用户模式下调用 ZwOpenSymbolicLinkObject 函数,则应使用名称“NtOpenSymbolicLinkObject”而不是“ZwOpenSymbolicLinkObject”。

NtOpenSymbolicLinkObjectZwOpenSymbolicLinkObject 是同一 Windows 本机系统服务例程的两个版本。 内核模式驱动程序无法直接访问 Windows 内核中的 NtOpenSymbolicLinkObject 例程。 但是,内核模式驱动程序可以通过调用 ZwOpenSymbolicLinkObject 例程间接访问此例程。

对于来自内核模式驱动程序的调用,Windows 本机系统服务例程的 NtXxxZwXxx 版本在处理和解释输入参数的方式上的行为可能有所不同。 有关例程的 NtXxxZwXxx 版本之间的关系的详细信息,请参阅 使用本机系统服务例程的 Nt 和 Zw 版本

要求

要求
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDI (storport) PowerIrpDDis (wdm)

另请参阅

ACCESS_MASK

InitializeObjectAttributes

使用本机系统服务例程的 Nt 和 Zw 版本

ZwQuerySymbolicLinkObject