Condividi tramite


Funzione MsiDetermineApplicablePatchesA (msi.h)

La funzione MsiDetermineApplicablePatches accetta un set di file patch, file XML e BLOB XML e determina quali patch si applicano a un pacchetto di Windows Installer specificato e in quale sequenza. La funzione può tenere conto delle patch sostituite o obsolete. Questa funzione non tiene conto di prodotti o patch installati nel sistema non specificati nel set.

Sintassi

UINT MsiDetermineApplicablePatchesA(
  [in] LPCSTR                 szProductPackagePath,
  [in] DWORD                  cPatchInfo,
  [in] PMSIPATCHSEQUENCEINFOA pPatchInfo
);

Parametri

[in] szProductPackagePath

Percorso completo di un file di .msi. La funzione determina le patch applicabili a questo pacchetto e in quale sequenza.

[in] cPatchInfo

Numero di patch nella matrice. Deve essere maggiore di zero.

[in] pPatchInfo

Puntatore a una matrice di strutture MSIPATCHSEQUENCEINFO .

Valore restituito

La funzione MsiDetermineApplicablePatches restituisce i valori seguenti.

Valore Significato
ERROR_FUNCTION_FAILED
La funzione non è riuscita in modo non coperto negli altri codici di errore.
ERROR_INVALID_PARAMETER
Un argomento non è valido.
ERROR_PATCH_NO_SEQUENCE
Non è possibile trovare alcuna sequenza valida per il set di patch.
ERROR_SUCCESS
Le patch sono state ordinate correttamente.
ERROR_FILE_NOT_FOUND
Impossibile trovare il file .msi.
ERROR_PATH_NOT_FOUND
Impossibile trovare il percorso del file .msi.
ERROR_INVALID_PATCH_XML
I dati di patch XML non sono validi.
ERROR_INSTALL_PACKAGE_OPEN_FAILED
Non è possibile aprire un pacchetto di installazione a cui fa riferimento il percorso.
ERROR_CALL_NOT_IMPLEMENTED
Questo errore può essere restituito se la funzione è stata chiamata da un'azione personalizzata o se MSXML 3.0 non è installato.

Osservazioni

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 MsiDetermineApplicablePatches imposta il uStatus e dwOrder membri di ogni MSIPATCHSEQUENCEINFO a cui punta pPatchInfo. Ogni struttura contiene informazioni su una determinata patch.

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 utilizzabile per il prodotto.

Se la funzione ha esito negativo, la struttura MSIPATCHSEQUENCEINFO per ogni patch restituisce un dwOrder uguale a -1. In questo caso, i campi uStatus possono contenere errori con altre informazioni sulle singole patch. Ad esempio, ERROR_PATCH_NO_SEQUENCE viene restituito per le patch con informazioni di sequenziazione circolare.

Nota

L'intestazione msi.h definisce MsiDetermineApplicablePatches 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

MsiDeterminePatchSequence

non supportato in Windows Installer 2.0 e versioni precedenti

ProductCode