PFN_WSK_GET_NAME_INFO回呼函式 (wsk.h)
WskGetNameInfo 函式提供與通訊協定無關的轉譯,從傳輸位址到主機名。
語法
PFN_WSK_GET_NAME_INFO PfnWskGetNameInfo;
NTSTATUS PfnWskGetNameInfo(
[in] PWSK_CLIENT Client,
[in] PSOCKADDR SockAddr,
[in] ULONG SockAddrLength,
[out, optional] PUNICODE_STRING NodeName,
[out, optional] PUNICODE_STRING ServiceName,
[in] ULONG Flags,
[in, optional] PEPROCESS OwningProcess,
[in, optional] PETHREAD OwningThread,
[in, out] PIRP Irp
)
{...}
參數
[in] Client
[in]透過 WskProviderN pi 參數傳回之 WSK_CLIENT 結構的指標 WskCaptureProviderNPI 函式。
[in] SockAddr
[in]SOCKADDR 結構的指標,其中包含套接字的 IP 位址和埠號碼。
[in] SockAddrLength
[in]指定 SockAddr 參數所指向之緩衝區的長度,以位元組為單位。 SockAddrLength 的值不應超過 SOCKADDR_STORAGE 結構的大小。
[out, optional] NodeName
[out]UNICODE_STRING 結構的選擇性指標,其中包含代表主機 (node) 名稱的 Unicode 字串。 成功時,Unicode 主機名預設會寫入為完整域名 (FQDN)。 呼叫端必須提供足夠大的UNICODE_STRING緩衝區來保存 Unicode 主機名,其中包含終止的 NULL 字元。 如果 NodeBuffer 參數 NULL,則呼叫端不會想要接收主機名字符串。 NodeBuffer 和 ServiceBuffer 不得同時 NULL。
[out, optional] ServiceName
[out]UNICODE_STRING 結構的選擇性指標,其中包含 Unicode 字串串,表示與埠號碼相關聯的服務名稱。 呼叫端必須提供足夠大的UNICODE_STRING緩衝區來保存 Unicode 服務名稱,其中包含終止的 NULL 字元。 如果 NodeBuffer 參數 NULL,則呼叫端不會想要接收服務名稱字串。 NodeBuffer 和 ServiceBuffer 不得同時 NULL。
[in] Flags
[in]ULONG 值,用來自定義此函式的處理。
下列旗標可供使用:
NI_DGRAM
表示服務是數據報服務。 這個旗標對於為 UDP 和 TCP 服務提供不同埠號碼的少數服務而言是必要的。
NI_NAMEREQD
指出 DNS 無法解析的主機名會導致錯誤。
NI_NOFQDN
導致本機主機在 NodeName 參數中只傳回其相對辨別名稱 (RDN)。
NI_NUMERICHOST
表示函式會傳回主機名的數值形式,而不是其名稱,反向 DNS 查閱。 如果 DNS 無法解析主機名,也會傳回主機名的數值形式。
NI_NUMERICSERV
表示函式會傳回服務的埠號碼,而不是其名稱。 此外,如果找不到IP位址的主機名(例如127.0.0.2),主機名會以IP位址的形式傳回。
[in, optional] OwningProcess
[in]函式從中擷取安全性內容之進程的選擇性指標。 此安全性內容表示函式處理名稱解析要求的用戶帳戶內容。
如果此參數 NULL,函式會在具有最低許可權的預先定義本機帳戶內容中處理名稱解析要求。
如果此參數未 NULL 且呼叫線程的模擬令牌生效,則此函式會失敗並傳回STATUS_INVALID_PARAMETER。
[in, optional] OwningThread
[in]函式從中擷取安全性內容的線程選擇性指標。 只有當 OwningProcess 非NULL時,這個參數才可以是非NULL。 否則,此函式會失敗並傳回STATUS_INVALID_PARAMETER。
如果此參數未 NULL 且呼叫線程的模擬令牌生效,則此函式會失敗並傳回STATUS_INVALID_PARAMETER。
[in, out] Irp
[in/out]用來以異步方式完成要求的 I/O 要求封包的指標。 要求完成後,Irp ->Iostatus.Information 會保留傳回的狀態代碼。
傳回值
WskGetNameInfo 會傳回下列其中一個 NTSTATUS 程式代碼:
傳回碼 | 描述 |
---|---|
|
指定了無效的參數。 |
|
無法解析主機名。 |
|
函式已順利完成。 如果 WSK 應用程式在 中指定 IRP 的指標 Irp 參數,IRP 將會以成功狀態完成。 |
|
WSK 子系統無法立即完成函式。 WSK 子系統會在完成控制作業之後完成 IRP。 控制作業的狀態將會在 IRP 的 [IoStatus.Status] 字段中傳回。 |
|
發生錯誤。 IRP 將會以失敗狀態完成。 |
言論
OwningProcess 參數點的進程,或 OwningThread 進程點所指向的線程,表示此函式的安全性內容。 安全性內容所指示的用戶帳戶表示函式名稱解析要求的內容。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 適用於 Windows 7 和更新版本的 Windows作系統。 |
目標平臺 | 普遍 |
標頭 | wsk.h (包括 Wsk.h) |
IRQL | PASSIVE_LEVEL |