Condividi tramite


Funzione MsiSourceListGetInfoA (msi.h)

La funzione msiSourceListGetInfo recupera informazioni sull'elenco di origine per un prodotto o una patch in un contesto specifico.

Sintassi

UINT MsiSourceListGetInfoA(
  [in]                LPCSTR            szProductCodeOrPatchCode,
  [in, optional]      LPCSTR            szUserSid,
  [in]                MSIINSTALLCONTEXT dwContext,
  [in]                DWORD             dwOptions,
  [in]                LPCSTR            szProperty,
  [out, optional]     LPSTR             szValue,
  [in, out, optional] LPDWORD           pcchValue
);

Parametri

[in] szProductCodeOrPatchCode

ProductCode o GUID patch del prodotto o della patch. Usare una stringa con terminazione Null. Se la stringa è più lunga di 39 caratteri, la funzione ha esito negativo e restituisce ERROR_INVALID_PARAMETER. Questo parametro non può essere NULL.

[in, optional] szUserSid

Questo parametro può essere un SID (String Security Identifier) che specifica l'account utente che contiene il prodotto o la patch. Il SID non viene convalidato o risolto. Un SID non corretto può restituire ERROR_UNKNOWN_PRODUCT o ERROR_UNKNOWN_PATCH. Quando si fa riferimento a un contesto del computer, szUserSID deve essere NULL e dwContext deve essere MSIINSTALLCONTEXT_MACHINE.

Tipo di SID Significato
NULL
NULL indica l'utente attualmente connesso. Quando si fa riferimento all'account utente corrente, szUserSID può essere NULL e dwContext può essere MSIINSTALLCONTEXT_USERMANAGED o MSIINSTALLCONTEXT_USERUNMANAGED.
SID utente
Specifica l'enumerazione per un utente specifico nel sistema. Un esempio di SID utente è "S-1-3-64-2415071341-1358098788-3127455600-2561".
 
Nota Non è possibile usare la speciale stringa SID s-1-5-18 (sistema) per enumerare prodotti o patch installati come per computer. L'impostazione del valore SID su s-1-5-18 restituisce ERROR_INVALID_PARAMETER.
 
Nota Non usare la speciale stringa SID s-1-1-0 (tutti). L'impostazione del valore SID su s-1-1-0 ha esito negativo e restituisce ERROR_INVALID_PARAM.
 

[in] dwContext

Questo parametro specifica il contesto dell'istanza del prodotto o della patch. Questo parametro può contenere uno dei valori seguenti.

Tipo di contesto Significato
MSIINSTALLCONTEXT_USERMANAGED
L'istanza del prodotto o della patch è presente nel contesto gestito per utente.
MSIINSTALLCONTEXT_USERUNMANAGED
L'istanza del prodotto o della patch esiste nel contesto per utente non gestito.
MSIINSTALLCONTEXT_MACHINE
L'istanza del prodotto o della patch è presente nel contesto per computer.

[in] dwOptions

Il valore dwOptions specifica il significato di szProductCodeOrPatchCode.

Bandiera Significato
MSICODE_PRODUCT
szProductCodeOrPatchCode è un GUID del codice prodotto.
MSICODE_PATCH
szProductCodeOrPatchCode è un GUID del codice patch.

[in] szProperty

Stringa con terminazione Null che specifica il valore della proprietà da recuperare. Il parametro szProperty può essere uno dei valori seguenti.

Nome Significato
INSTALLPROPERTY_MEDIAPACKAGEPATH
"MediaPackagePath"
Percorso relativo alla radice del supporto di installazione.
INSTALLPROPERTY_DISKPROMPT
"DiskPrompt"
Modello di richiesta utilizzato quando viene richiesto all'utente di specificare il supporto di installazione.
INSTALLPROPERTY_LASTUSEDSOURCE
"LastUsedSource"
Percorso di origine usato più di recente per il prodotto.
INSTALLPROPERTY_LASTUSEDTYPE
"LastUsedType"
"n" se l'ultima origine usata è un percorso di rete. "u" se l'ultima origine usata è un percorso URL. "m" se l'ultima origine usata è un supporto. Stringa vuota ("") se non è presente un'ultima origine usata.
INSTALLPROPERTY_PACKAGENAME
"PackageName"
Nome del pacchetto o della patch di Windows Installer nell'origine.

[out, optional] szValue

Buffer di output che riceve le informazioni. Questo buffer deve essere sufficientemente grande da contenere le informazioni. Se il buffer è troppo piccolo, la funzione restituisce ERROR_MORE_DATA e imposta *pcchValue sul numero di TCHAR nel valore, senza includere il carattere NULL di terminazione.

Se il szValue è impostato su NULL e pcchValue è impostato su un puntatore valido, la funzione restituisce ERROR_SUCCESS e imposta *pcchValue sul numero di TCHAR nel valore, non incluso il carattere NULL di terminazione. La funzione può quindi essere chiamata di nuovo per recuperare il valore, con szValue buffer sufficientemente grande da contenere *pcchValue + 1 caratteri.

Se szValue e pcchValue sono entrambi impostati su null, la funzione restituisce ERROR_SUCCESS se il valore esiste, senza recuperare il valore.

[in, out, optional] pcchValue

Puntatore a una variabile che specifica il numero di TCHAR nel buffer szValue . Quando la funzione termina, questo parametro viene impostato sulle dimensioni del valore richiesto indipendentemente dal fatto che la funzione copia il valore nel buffer specificato. La dimensione viene restituita come numero di TCHAR nel valore richiesto, senza includere il carattere Null di terminazione.

Questo parametro può essere impostato su NULL solo se szValue è null, altrimenti la funzione restituisce ERROR_INVALID_PARAMETER.

Valore restituito

La funzione msiSourceListGetInfo restituisce i valori seguenti.

Valore Significato
ERROR_ACCESS_DENIED
L'utente non ha la possibilità di leggere l'elenco di origine specificato. Questo non indica se viene trovato un prodotto o una patch.
ERROR_BAD_CONFIGURATION
I dati di configurazione sono danneggiati.
ERROR_INVALID_PARAMETER
Alla funzione viene passato un parametro non valido.
ERROR_MORE_DATA
Il buffer fornito non è sufficiente per contenere i dati richiesti.
ERROR_SUCCESS
La proprietà viene recuperata correttamente.
ERROR_UNKNOWN_PATCH
La patch non viene trovata.
ERROR_UNKNOWN_PRODUCT
Il prodotto non viene trovato.
ERROR_UNKNOWN_PROPERTY
Impossibile trovare la proprietà di origine.
ERROR_FUNCTION_FAILED
Errore interno imprevisto.

Osservazioni

Gli amministratori possono modificare l'installazione di un prodotto o di un'istanza di patch esistente nel contesto del computer o nel proprio contesto per utente (gestito o non gestito). Possono modificare l'installazione di un prodotto o di un'istanza di patch esistente in qualsiasi contesto gestito dall'utente. Gli amministratori non possono modificare l'installazione di un altro utente di un prodotto o di un'istanza di patch presente nel contesto non gestito dell'altro utente.

Gli utenti non amministratori non possono modificare l'installazione di un prodotto o di un'istanza di patch esistente nel contesto per utente di un altro utente (gestito o non gestito). Possono modificare l'installazione di un prodotto o di un'istanza di patch esistente nel proprio contesto per utente non gestito. Possono modificare l'installazione di un prodotto o un'istanza di patch nel contesto del computer o nel proprio contesto gestito per utente solo se sono abilitati per cercare un prodotto o un'origine patch. Gli utenti possono essere abilitati per cercare le origini impostando i criteri. Per altre informazioni, vedere DisableBrowse, AllowLockdownBrowsee Criteri di AlwaysInstallElevated.

Nota

L'intestazione msi.h definisce MsiSourceListGetInfo come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows Installer 5.0 in Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 in Windows Server 2008 o Windows Vista. Windows Installer 3.0 o versione successiva in Windows Server 2003 o Windows XP. Per informazioni sul Service Pack minimo di Windows richiesto da una versione di Windows Installer, vedere Requisiti di windows Run-Time.
piattaforma di destinazione Finestre
intestazione msi.h
libreria Msi.lib
dll Msi.dll

Vedere anche

MsiSourceListSetInfo

non supportato in Windows Installer 2.0 e versioni precedenti

ProductCode