Funzione MsiGetPatchInfoExW (msi.h)

La funzione MsiGetPatchInfoEx esegue una query per informazioni sull'applicazione di una patch a un'istanza specificata di un prodotto.

Sintassi

UINT MsiGetPatchInfoExW(
  [in]            LPCWSTR           szPatchCode,
  [in]            LPCWSTR           szProductCode,
  [in]            LPCWSTR           szUserSid,
  [in]            MSIINSTALLCONTEXT dwContext,
  [in]            LPCWSTR           szProperty,
  [out, optional] LPWSTR            lpValue,
  [in, out]       LPDWORD           pcchValue
);

Parametri

[in] szPatchCode

Stringa con terminazione Null contenente il GUID della patch. Questo parametro non può essere NULL.

[in] szProductCode

Stringa con terminazione Null contenente il GUID ProductCode dell'istanza del prodotto. Questo parametro non può essere NULL.

[in] szUserSid

Stringa con terminazione Null che specifica l'identificatore di sicurezza (SID) in cui esiste l'istanza della patch sottoposta a query. L'utilizzo di un valore NULL specifica l'utente corrente.

SID Significato
NULL
Specifica l'utente connesso.
SID utente
Specifica l'enumerazione per un ID utente specifico nel sistema. L'esempio seguente identifica un POSSIBILE SID utente: "S-1-3-64-2415071341-1358098788-312745600-2561".
 
Nota Non è possibile usare la speciale stringa SID "S-1-5-18" (sistema) per enumerare i prodotti installati come per computer. Se dwContext è MSIINSTALLCONTEXT_MACHINE, szUserSid deve essere NULL.
 

[in] dwContext

Limita l'enumerazione a un contesto per utente non gestito, per utente gestito o per computer. Questo parametro può essere uno dei valori seguenti.

Contesto Significato
MSIINSTALLCONTEXT_USERMANAGED
1
Query estesa a tutte le installazioni gestite dall'utente per gli utenti specificati da szUserSid .
MSIINSTALLCONTEXT_USERUNMANAGED
2
Query estesa a tutte le installazioni non gestite per utente per gli utenti specificati da szUserSid .
MSIINSTALLCONTEXT_MACHINE
4
Query estesa a tutte le installazioni per computer.

[in] szProperty

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

Nome Significato
INSTALLPROPERTY_LOCALPACKAGE
"LocalPackage"
Ottiene il file di patch memorizzato nella cache utilizzato dal prodotto.
INSTALLPROPERTY_TRANSFORMS
"Trasformazioni"
Ottiene il set di trasformazioni patch applicate all'ultimo installazione della patch al prodotto. Questo valore potrebbe non essere disponibile per le applicazioni non gestite per utente se l'utente non è connesso.
INSTALLPROPERTY_INSTALLDATE
"InstallDate"
Ottiene l'ultima volta che il prodotto ha ricevuto il servizio. Il valore di questa proprietà viene sostituito ogni volta che viene applicata o rimossa una patch dal prodotto o l'opzione della riga di comando /v viene usata per ripristinare il prodotto. Se il prodotto non ha ricevuto riparazioni o patch, questa proprietà contiene l'ora in cui il prodotto è stato installato nel computer.
INSTALLPROPERTY_UNINSTALLABLE
"Disinstallabile"
Restituisce "1" se la patch è contrassegnata come possibile per disinstallare dal prodotto. In questo caso, il programma di installazione può comunque bloccare la disinstallazione se questa patch è richiesta da un'altra patch che non può essere disinstallata.
INSTALLPROPERTY_PATCHSTATE
"Stato"
Restituisce "1" se questa patch è attualmente applicata al prodotto. Restituisce "2" se questa patch viene sostituita da un'altra patch. Restituisce "4" se questa patch è obsoleta. Questi valori corrispondono alle costanti usate dal parametro dwFilter di MsiEnumPatchesEx .
INSTALLPROPERTY_DISPLAYNAME
"DisplayName"
Ottenere il nome visualizzato registrato per la patch. Per le patch che non includono la proprietà DisplayName nella tabella MsiPatchMetadata , il nome visualizzato restituito è una stringa vuota ("").
INSTALLPROPERTY_MOREINFOURL
"MoreInfoURL"
Ottenere l'URL delle informazioni di supporto registrato per la patch. Per le patch che non includono la proprietà MoreInfoURL nella tabella MsiPatchMetadata , l'URL delle informazioni di supporto restituito è una stringa vuota ("").

[out, optional] lpValue

Questo parametro è un puntatore a un buffer che riceve il valore della proprietà. 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 della proprietà, senza includere il carattere NULL di terminazione.

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

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

[in, out] pcchValue

Quando si chiama la funzione, questo parametro deve essere un puntatore a una variabile che specifica il numero di TCHAR nel buffer lpValue . Quando la funzione viene restituita, 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 lpValue è null. In caso contrario, la funzione restituisce ERROR_INVALID_PARAMETER.

Valore restituito

La funzione MsiGetPatchInfoEx restituisce i valori seguenti.

Codice restituito Descrizione
ERROR_ACCESS_DENIED
La funzione non riesce ad accedere a una risorsa con privilegi insufficienti.
ERROR_BAD_CONFIGURATION
I dati di configurazione sono danneggiati.
ERROR_FUNCTION_FAILED
La funzione ha esito negativo e l'errore non viene identificato in altri codici di errore.
ERROR_INVALID_PARAMETER
Alla funzione viene passato un parametro non valido.
ERROR_MORE_DATA
Il valore non rientra nel buffer fornito.
ERROR_SUCCESS
La patch viene enumerata correttamente.
ERROR_UNKNOWN_PRODUCT
Il prodotto specificato da szProduct non è installato nel computer.
ERROR_UNKNOWN_PROPERTY
La proprietà non è riconosciuta.
ERROR_UNKNOWN_PATCH
La patch non è riconosciuta.

Commenti

Windows Installer 2.0: Non supportato. Questa funzione è disponibile a partire da Windows Installer versione 3.0.

Un utente può eseguire query sui dati delle patch per qualsiasi istanza del prodotto visibile. Il gruppo amministratore può eseguire query sui dati delle patch per qualsiasi istanza del prodotto e qualsiasi utente nel computer. Non tutti i valori sono garantiti per le applicazioni non gestite per utente, se l'utente non è connesso.

Nota

L'intestazione msi.h definisce MsiGetPatchInfoEx come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

   
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. Per informazioni sul Service Pack minimo di Windows Richiesto da una versione di Windows Installer, vedere i requisiti di Windows Installer Run-Time.
Piattaforma di destinazione Windows
Intestazione msi.h
Libreria Msi.lib
DLL Msi.dll

Vedi anche

ProductCode

Rimozione di patch