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 版本

規格需求

需求
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 合規性規則 HwStorPortProhibitedDIS (storport) PowerIrpDDis (wdm)

另請參閱

ACCESS_MASK

InitializeObjectAttributes

使用 Nt 和 Zw 版本的原生系統服務例程

ZwQuerySymbolicLinkObject