Funzione MsiDeterminePatchSequenceA (msi.h)
La funzione msiDeterminePatchSequence
Sintassi
UINT MsiDeterminePatchSequenceA(
[in] LPCSTR szProductCode,
[in, optional] LPCSTR szUserSid,
[in] MSIINSTALLCONTEXT dwContext,
[in] DWORD cPatchInfo,
[in] PMSIPATCHSEQUENCEINFOA pPatchInfo
);
Parametri
[in] szProductCode
Prodotto di destinazione per il set di patch. Il valore deve essere il ProductCode GUID per il prodotto.
[in, optional] szUserSid
Stringa con terminazione Null che specifica un ID di sicurezza (SID) di un utente. Questo parametro limita il contesto dell'enumerazione per questo account utente. Questo parametro non può essere rappresentato dalle stringhe SID speciali "S-1-1-0" (tutti) o "S-1-5-18" (sistema locale). Per il contesto del computer dwContext è impostato su MSIINSTALLCONTEXT_MACHINE e szUserSid deve essere NULL. Per il contesto utente corrente szUserSid può essere Null e dwContext può essere impostato su MSIINSTALLCONTEXT_USERMANAGED o MSIINSTALLCONTEXT_USERUNMANAGED.
[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.
[in] cPatchInfo
Numero di patch nella matrice.
[in] pPatchInfo
Puntatore a una matrice di strutture MSIPATCHSEQUENCEINFO
Valore restituito
La funzione MsiDeterminePatchSequence restituisce i valori seguenti.
Valore | Significato |
---|---|
|
La funzione non è riuscita in modo non coperto negli altri codici di errore. |
|
Un argomento non è valido. |
|
Non è possibile trovare alcuna sequenza valida per il set di patch. |
|
Non è possibile aprire un pacchetto di installazione a cui fa riferimento il percorso. |
|
Le patch sono state ordinate correttamente. |
|
Impossibile trovare il file .msi. |
|
Impossibile trovare il percorso del file .msi. |
|
I dati di patch XML non sono validi. |
|
Il pacchetto di installazione non è valido. |
|
Un utente che non è un amministratore ha tentato di chiamare la funzione con un contesto di un utente diverso. |
|
I dati di configurazione per una patch o un prodotto registrato non sono validi. |
|
Il GUID ProductCode specificato non è registrato. |
|
Windows Installer versione 3.0 è necessario per determinare la sequenza di patch migliore. La funzione è stata chiamata con szProductCode non ancora installata con Windows Installer versione 3.0. |
|
Questo errore può essere restituito se la funzione è stata chiamata da un'azione personalizzata o se MSXML 3.0 non è installato. |
|
La patch specificata è sconosciuta. |
Osservazioni
Gli utenti che non dispongono di privilegi di amministratore possono chiamare questa funzione solo nel proprio contesto o computer. Gli utenti amministratori possono chiamarlo per altri utenti.
Se questa funzione viene chiamata da un'azione personalizzata, ha esito negativo e restituisce ERROR_CALL_NOT_IMPLEMENTED. La funzione richiede che MSXML versione 3.0 elabori XML e restituisca ERROR_CALL_NOT_IMPLEMENTED se MSXML 3.0 non è installato.
La funzione
Se la funzione ha esito positivo, il MSIPATCHSEQUENCEINFO struttura di ogni patch che può essere applicata al prodotto restituisce con un uStatus di ERROR_SUCCESS e un dwOrder maggiore o uguale a zero. I valori di dwOrder maggiore o uguale a zero indicano la sequenza di applicazione migliore per le patch che iniziano con zero.
Se la funzione ha esito positivo, le patch escluse dalla sequenza di patch migliore restituiscono una struttura MSIPATCHSEQUENCEINFO con un dwOrder uguale a -1. In questi casi, un campo uStatus di ERROR_SUCCESS indica una patch obsoleta o sostituita per il prodotto. Un campo uStatus di ERROR_PATCH_TARGET_NOT_FOUND indica una patch non applicata al prodotto.
Se la funzione ha esito negativo, la struttura
Nota
L'intestazione msi.h definisce MsiDeterminePatchSequence 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. 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
non supportato in Windows Installer 2.0 e versioni precedenti