Condividi tramite


Funzione GetOwnerModuleFromTcpEntry (iphlpapi.h)

La funzione GetOwnerModuleFromTcpEntry recupera i dati relativi al modulo che ha emesso l'associazione di contesto per un endpoint TCP IPv4 specifico in una riga di tabella MIB.

Sintassi

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
);

Parametri

[in] pTcpEntry

Puntatore a una struttura MIB_TCPROW_OWNER_MODULE che contiene la voce dell'endpoint TCP IPv4 usata per ottenere il modulo proprietario.

[in] Class

Valore di enumerazione TCPIP_OWNER_MODULE_INFO_CLASS che indica il tipo di dati da ottenere per quanto riguarda il modulo proprietario. L'enumerazione TCPIP_OWNER_MODULE_INFO_CLASS è definita nel file di intestazione Iprtrmib.h.

Questo parametro deve essere impostato su TCPIP_OWNER_MODULE_INFO_BASIC.

[out] pBuffer

Puntatore a un buffer che contiene una struttura TCPIP_OWNER_MODULE_BASIC_INFO con i dati del modulo proprietario. Il tipo di dati restituiti in questo buffer è indicato dal valore del parametro Class .

Le strutture seguenti vengono usate per i dati in Buffer quando Class è impostato sul valore corrispondente.

Valore di enumerazione classe Formato dati buffer
TCPIP_OWNER_MODULE_BASIC_INFO TCPIP_OWNER_MODULE_BASIC_INFO

[in, out] pdwSize

Dimensioni stimate, in byte, della struttura restituita in Buffer. Se questo valore è impostato su un valore troppo piccolo, ERROR_INSUFFICIENT_BUFFER viene restituito da questa funzione e questo campo conterrà le dimensioni corrette del buffer. La dimensione richiesta è la dimensione della struttura corrispondente e un numero aggiuntivo di byte uguale alla lunghezza dei dati a cui puntano nella struttura , ad esempio le stringhe di nome e percorso.

Valore restituito

Se la chiamata di funzione ha esito positivo, viene restituito il valore NO_ERROR .

Se la funzione ha esito negativo, il valore restituito è uno dei codici di errore seguenti.

Codice restituito Descrizione
ERROR_INSUFFICIENT_BUFFER
Spazio insufficiente allocato per la tabella. Le dimensioni della tabella vengono restituite nel parametro pdwSize e devono essere utilizzate in una chiamata successiva a questa funzione per recuperare correttamente la tabella.
ERROR_INVALID_PARAMETER
Un parametro non è corretto. Questo valore viene restituito se uno dei parametri pTcpEntry o pdwSize è NULL. Questo valore viene restituito anche se il parametro Class non è uguale a TCPIP_OWNER_MODULE_INFO_BASIC.
ERROR_NOT_ENOUGH_MEMORY
Memoria insufficiente per completare l’operazione.
ERROR_NOT_FOUND
Non è stato trovato alcun elemento. Questo valore viene restituito se il membro dwOwningPid della struttura MIB_TCPROW_OWNER_MODULE a cui punta il parametro pTcpEntry è zero o non è stato possibile trovare.
ERROR_PARTIAL_COPY
È stata completata solo una parte di una richiesta.

Commenti

Il parametro Buffer contiene non solo una struttura con puntatori a dati specifici, ad esempio puntatori alle stringhe con terminazione zero che contengono il nome e il percorso del modulo proprietario, ma i dati effettivi stessi; ovvero il nome e le stringhe di percorso. Pertanto, quando si calcolano le dimensioni del buffer, assicurarsi di disporre di spazio sufficiente sia per la struttura che per i dati a cui puntano i membri della struttura.

La risoluzione delle voci di tabella TCP ai moduli proprietari è una procedura consigliata. In alcuni casi, il nome del modulo proprietario restituito nella struttura TCPIP_OWNER_MODULE_BASIC_INFO può essere un nome di processo, ad esempio "svchost.exe", un nome del servizio (ad esempio "RPC") o un nome del componente, ad esempio "timer.dll".

Per i computer in esecuzione in Windows Vista o versioni successive, i membri pModuleName e pModulePath del TCPIP_OWNER_MODULE_BASIC_INFO recuperati dalla funzione GetOwnerModuleFromTcpEntry possono puntare a una stringa vuota per alcune connessioni TCP. Le applicazioni che avviano connessioni TCP che si trovano nella cartella di sistema di Windows (C:\Windows\System32, per impostazione predefinita) vengono considerate protette. Se la funzione GetOwnerModuleFromTcpEntry viene chiamata da un utente che non è membro del gruppo Administrators, la chiamata di funzione avrà esito positivo, ma i membri pModuleName e pModulePath punteranno alla memoria che contiene una stringa vuota per le connessioni TCP avviate da applicazioni protette .

Per i computer in esecuzione in Windows Vista o versioni successive, l'accesso ai membri pModuleName e pModulePath della struttura TCPIP_OWNER_MODULE_BASIC_INFO è limitato dal controllo dell'account utente. Se un'applicazione che chiama questa funzione viene eseguita da un utente connesso come membro del gruppo Administrators diverso dall'amministratore predefinito, questa chiamata avrà esito positivo, ma l'accesso a questi membri restituisce una stringa vuota a meno che l'applicazione non sia stata contrassegnata nel file manifesto con un set requestedExecutionLevel impostato su requireAdministrator. Se l'applicazione in Windows Vista o versioni successive non dispone di questo file manifesto, un utente ha eseguito l'accesso come membro del gruppo Administrators diverso dall'amministratore predefinito deve quindi eseguire l'applicazione in una shell avanzata come amministratore predefinito (amministratore RunAs) per l'accesso ai membri pModuleName e pModulePath protetti da consentire.

Requisiti

   
Client minimo supportato Windows Vista, Windows XP con SP2 [solo app desktop]
Server minimo supportato Windows Server 2008, Windows Server 2003 con SP1 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione iphlpapi.h
Libreria Iphlpapi.lib
DLL Iphlpapi.dll

Vedi anche

MIB_TCPROW_OWNER_MODULE

TCPIP_OWNER_MODULE_BASIC_INFO