GetOwnerModuleFromTcp6Entry-Funktion (iphlpapi.h)
Die GetOwnerModuleFromTcp6Entry-Funktion ruft Daten zu dem Modul ab, das die Kontextbindung für einen bestimmten IPv6-TCP-Endpunkt in einer MIB-Tabellenzeile ausgegeben hat.
Syntax
IPHLPAPI_DLL_LINKAGE DWORD GetOwnerModuleFromTcp6Entry(
[in] PMIB_TCP6ROW_OWNER_MODULE pTcpEntry,
[in] TCPIP_OWNER_MODULE_INFO_CLASS Class,
[out] PVOID pBuffer,
[in, out] PDWORD pdwSize
);
Parameter
[in] pTcpEntry
Ein Zeiger auf eine MIB_TCP6ROW_OWNER_MODULE-Struktur , die den IPv6-TCP-Endpunkteintrag enthält, der zum Abrufen des Besitzermoduls verwendet wird.
[in] Class
Ein TCPIP_OWNER_MODULE_INFO_CLASS Enumerationswert, der den Typ der Daten angibt, die für das Besitzermodul abgerufen werden sollen. Die TCPIP_OWNER_MODULE_INFO_CLASS-Enumeration ist in der Headerdatei Iprtrmib.h definiert.
Dieser Parameter muss auf TCPIP_OWNER_MODULE_INFO_BASIC festgelegt werden.
[out] pBuffer
Ein Zeiger auf einen Puffer, der eine TCPIP_OWNER_MODULE_BASIC_INFO Struktur mit den Daten des Besitzermoduls enthält. Der Typ der in diesem Puffer zurückgegebenen Daten wird durch den Wert des Class-Parameters angegeben.
Die folgenden Strukturen werden für die Daten in Buffer verwendet, wenn Class auf den entsprechenden Wert festgelegt ist.
Klassenaufzählungswert | Pufferdatenformat |
---|---|
TCPIP_OWNER_MODULE_BASIC_INFO | TCPIP_OWNER_MODULE_BASIC_INFO |
[in, out] pdwSize
Die geschätzte Größe der im Puffer zurückgegebenen Struktur in Bytes. Wenn dieser Wert zu klein festgelegt ist, wird ERROR_INSUFFICIENT_BUFFER von dieser Funktion zurückgegeben, und dieses Feld enthält die richtige Strukturgröße.
Rückgabewert
Wenn der Funktionsaufruf erfolgreich ist, wird der Wert NO_ERROR zurückgegeben.
Wenn die Funktion fehlschlägt, ist der Rückgabewert einer der folgenden Fehlercodes.
Rückgabecode | Beschreibung |
---|---|
|
Für die Tabelle wurde nicht genügend Speicherplatz zugewiesen. Die Größe der Tabelle wird im pdwSize-Parameter zurückgegeben und muss in einem nachfolgenden Aufruf dieser Funktion verwendet werden, um die Tabelle erfolgreich abzurufen. |
|
Ein Parameter ist falsch. Dieser Wert wird zurückgegeben, wenn einer der pTcpEntry - oder pdwSize-ParameterNULL ist. Dieser Wert wird auch zurückgegeben, wenn der Class-Parameter nicht gleich TCPIP_OWNER_MODULE_INFO_BASIC ist. |
|
Es ist nicht genügend Arbeitsspeicher verfügbar, um den Vorgang abzuschließen. |
|
Das Element wurde nicht gefunden. Dieser Wert wird zurückgegeben, wenn das dwOwningPid-Element des MIB_TCP6ROW_OWNER_MODULE , auf das der pTcpEntry-Parameter verweist, null war oder nicht gefunden werden konnte. |
|
Nur ein Teil einer Anforderung wurde abgeschlossen. |
Hinweise
Der Buffer-Parameter enthält nicht nur eine Struktur mit Zeigern auf bestimmte Daten, z. B. Zeiger auf die Zeichenfolgen, die den Namen und pfad des Besitzermoduls enthalten, sondern auch die tatsächlichen Daten selbst. dies ist der Name und die Pfadzeichenfolgen. Stellen Sie daher beim Berechnen der Größe des Puffers sicher, dass genügend Speicherplatz für die Struktur und die Daten vorhanden ist, auf die die Elemente der Struktur verweisen.
Die Auflösung von TCP-Tabelleneinträgen in Besitzermodule ist eine bewährte Methode. In einigen Fällen kann der in der TCPIP_OWNER_MODULE_BASIC_INFO-Struktur zurückgegebene Besitzermodulname ein Prozessname (z. B. "svchost.exe"), ein Dienstname (z. B. "RPC") oder ein Komponentenname (z. B. "timer.dll") sein.
Bei Computern, die unter Windows Vista oder höher ausgeführt werden, können die pModuleName - und pModulePath-Member der TCPIP_OWNER_MODULE_BASIC_INFO , die von der GetOwnerModuleFromTcpEntry-Funktion abgerufen werden, auf eine leere Zeichenfolge für einige TCP-Verbindungen verweisen. Anwendungen, die TCP-Verbindungen im Windows-Systemordner (standardmäßig C:\Windows\System32) starten, gelten als geschützt. Wenn die GetOwnerModuleFromTcpEntry-Funktion von einem Benutzer aufgerufen wird, der kein Mitglied der Gruppe Administratoren ist, wird der Funktionsaufruf erfolgreich ausgeführt, aber die Mitglieder pModuleName und pModulePath verweisen auf den Arbeitsspeicher, der eine leere Zeichenfolge für die von geschützten Anwendungen gestarteten TCP-Verbindungen enthält.
Bei Computern, die unter Windows Vista oder höher ausgeführt werden, ist der Zugriff auf die pModuleName - und pModulePath-Member der TCPIP_OWNER_MODULE_BASIC_INFO-Struktur durch die Benutzerkontensteuerung (UAC) eingeschränkt. Wenn eine Anwendung, die diese Funktion aufruft, von einem Benutzer ausgeführt wird, der als Mitglied der Administratorgruppe außer dem integrierten Administrator angemeldet ist, wird dieser Aufruf erfolgreich ausgeführt, aber der Zugriff auf diese Member gibt eine leere Zeichenfolge zurück, es sei denn, die Anwendung wurde in der Manifestdatei mit einem requestedExecutionLevel-Wert gekennzeichnet, der auf requireAdministrator festgelegt ist. Wenn in der Anwendung unter Windows Vista oder höher diese Manifestdatei nicht vorhanden ist, muss ein Benutzer, der sich nicht als der integrierte Administrator als Mitglied der Gruppe Administratoren angemeldet hat, die Anwendung in einer erweiterten Shell als integrierter Administrator (RunAs-Administrator) ausführen, damit der Zugriff auf die geschützten pModuleName - und pModulePath-Member zulässig ist.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista, Windows XP mit SP2 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008, Windows Server 2003 mit SP1 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | iphlpapi.h |
Bibliothek | Iphlpapi.lib |
DLL | Iphlpapi.dll |