GetOwnerModuleFromTcpEntry 函式 (iphlpapi.h)
GetOwnerModuleFromTcpEntry函式會擷取發行 MIB 資料表資料列中特定 IPv4 TCP 端點之內容系結的模組相關資料。
語法
IPHLPAPI_DLL_LINKAGE DWORD GetOwnerModuleFromTcpEntry(
[in] PMIB_TCPROW_OWNER_MODULE pTcpEntry,
[in] TCPIP_OWNER_MODULE_INFO_CLASS Class,
[out] PVOID pBuffer,
[in, out] PDWORD pdwSize
);
參數
[in] pTcpEntry
MIB_TCPROW_OWNER_MODULE結構的指標,其中包含用來取得擁有者模組的 IPv4 TCP 端點專案。
[in] Class
TCPIP_OWNER_MODULE_INFO_CLASS列舉值,指出要取得的擁有者模組相關資料類型。 TCPIP_OWNER_MODULE_INFO_CLASS列舉定義于Iprtrmib.h標頭檔中。
此參數必須設定為 TCPIP_OWNER_MODULE_INFO_BASIC。
[out] pBuffer
包含具有擁有者模組資料的 TCPIP_OWNER_MODULE_BASIC_INFO 結構的緩衝區指標。 這個緩衝區中傳回的資料類型是由 Class 參數的值所表示。
當Class設定為對應的值時,下列結構會用於Buffer中的資料。
類別 列舉值 | 緩衝區 資料格式 |
---|---|
TCPIP_OWNER_MODULE_BASIC_INFO | TCPIP_OWNER_MODULE_BASIC_INFO |
[in, out] pdwSize
Buffer中傳回之結構的估計大小,以位元組為單位。 如果此值設定太小, 則此 函式會傳回ERROR_INSUFFICIENT_BUFFER,而且此欄位將包含緩衝區的正確大小。 所需的大小是對應結構的大小加上額外數目的位元組數目,等於結構中所指向的資料長度 (,例如名稱與路徑字串) 。
傳回值
如果函式呼叫成功,則會傳回 值NO_ERROR 。
如果函式失敗,傳回值就是下列其中一個錯誤碼。
傳回碼 | 描述 |
---|---|
|
為數據表配置的空間不足。 資料表的大小會在 pdwSize 參數中傳回,而且必須在此函式的後續呼叫中使用,才能成功擷取資料表。 |
|
參數不正確。 如果 pTcpEntry 或 pdwSize 參數為 Null,則會傳回此值。 如果 Class 參數不等於 TCPIP_OWNER_MODULE_INFO_BASIC,也會傳回此值。 |
|
可用的記憶體不足,無法完成作業。 |
|
找不到專案。 如果pTcpEntry參數所指向之MIB_TCPROW_OWNER_MODULE結構的dwOwningPid成員為零或找不到,則會傳回這個值。 |
|
只有部分要求已完成。 |
備註
Buffer參數不僅包含具有特定資料指標的結構,例如,包含擁有者模組名稱和路徑之零終止字串的指標,還包含實際資料本身;是名稱和路徑字串。 因此,在計算緩衝區大小時,請確定您有足夠的空間可供結構以及結構成員指向的資料。
將 TCP 資料表專案解析為擁有者模組是最佳做法。 在某些情況下, TCPIP_OWNER_MODULE_BASIC_INFO 結構中傳回的擁有者模組名稱可以是進程名稱,例如 「svchost.exe」、服務名稱 (例如 「RPC」) 或元件名稱,例如 「timer.dll」。
對於在 Windows Vista 或更新版本上執行的電腦,GetOwnerModuleFromTcpEntry函式所擷取之TCPIP_OWNER_MODULE_BASIC_INFO的 pModuleName和pModulePath成員可能會指向某些 TCP 連線的空字串。 根據預設,啟動 Windows 系統資料夾 (C:\Windows\System32 中 TCP 連線的應用程式會被視為受保護) 。 如果GetOwnerModuleFromTcpEntry函式是由不是 Administrators 群組成員的使用者呼叫,則函式呼叫將會成功,但pModuleName 和 pModulePath成員會指向記憶體,其中包含受保護應用程式所啟動之 TCP 連線的空字串。
對於在 Windows Vista 或更新版本上執行的電腦,存取TCPIP_OWNER_MODULE_BASIC_INFO結構的pModuleName 和 pModulePath成員受限於使用者帳戶控制 (UAC) 。 如果呼叫此函式的應用程式是由使用者以系統管理員以外的系統管理員群組成員身分登入來執行,則此呼叫將會成功,但存取這些成員會傳回空字串,除非應用程式已在資訊清單檔中標示 為 requestedExecutionLevel 設定為 requireAdministrator。 如果 Windows Vista 或更新版本上的應用程式缺少此資訊清單檔案,則使用者登入為系統管理員以外的 Administrators 群組成員,則必須在增強殼層中執行應用程式,因為內建系統管理員 (RunAs 系統管理員) ,才能存取受保護的 pModuleName 和 pModulePath 成員。
需求
最低支援的用戶端 | Windows Vista、Windows XP 與 SP2 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008、Windows Server 2003 SP1 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | iphlpapi.h |
程式庫 | Iphlpapi.lib |
Dll | Iphlpapi.dll |