Funzione MsiEnumPatchesExW (msi.h)

La funzione MsiEnumPatchesEx enumera tutte le patch in un contesto specifico o in tutti i contesti. Le patch già applicate ai prodotti vengono enumerate. Le patch registrate ma non ancora applicate ai prodotti vengono enumerate.

Sintassi

UINT MsiEnumPatchesExW(
  [in, optional]      LPCWSTR           szProductCode,
  [in, optional]      LPCWSTR           szUserSid,
  [in]                DWORD             dwContext,
  [in]                DWORD             dwFilter,
  [in]                DWORD             dwIndex,
  [out, optional]     WCHAR [39]        szPatchCode,
  [out, optional]     WCHAR [39]        szTargetProductCode,
  [out, optional]     MSIINSTALLCONTEXT *pdwTargetProductContext,
  [out, optional]     LPWSTR            szTargetUserSid,
  [in, out, optional] LPDWORD           pcchTargetUserSid
);

Parametri

[in, optional] szProductCode

Stringa con terminazione null che specifica il GUID ProductCode del prodotto le cui patch vengono enumerate. Se non NULL, l'enumerazione patch è limitata alle istanze di questo prodotto sotto l'utente e il contesto specificati da szUserSid e dwContext. Se NULL, vengono enumerate le patch per tutti i prodotti nel contesto specificato.

[in, optional] szUserSid

Stringa con terminazione null che specifica un identificatore di sicurezza (SID) che limita il contesto dell'enumerazione. La stringa SID speciale "S-1-1-0" (Tutti) specifica l'enumerazione in tutti gli utenti del sistema. Un valore SID diverso da "S-1-1-0" viene considerato un SID utente e limita l'enumerazione a tale utente. Quando si enumera per un utente diverso dall'utente corrente, le patch applicate in un contesto non gestito per utente usando una versione minore di Windows Installer versione 3.0, non vengono enumerate. Questo parametro può essere impostato su NULL per specificare l'utente corrente.

Tipo SID Significato
NULL
Specifica l'utente attualmente connesso.
SID utente
Enumerazione per un utente specifico nel sistema. Un esempio di SID utente è "S-1-3-64-2415071341-1358098788-3127455600-2561".
s-1-1-0
Enumerazione in tutti gli utenti del sistema.
 
Nota Impossibile usare la stringa SID speciale "S-1-5-18" (System) per enumerare i prodotti o le patch installate come per computer. L'impostazione del valore SID su "S-1-5-18" restituisce ERROR_INVALID_PARAMETER. Quando dwContext è impostato solo su MSIINSTALLCONTEXT_MACHINE , szUserSid deve essere NULL.
 

[in] dwContext

Limita l'enumerazione a una o a una combinazione di contesti. Questo parametro può essere uno o una combinazione dei valori seguenti.

Contesto Significato
MSIINSTALLCONTEXT_USERMANAGED
Enumerazione estesa a tutte le installazioni gestite dall'utente per gli utenti che specifica szUserSid . Un SID non valido non restituisce elementi.
MSIINSTALLCONTEXT_USERUNMANAGED
In questo contesto vengono enumerate solo le patch installate con Windows Installer versione 3.0 per gli utenti che non sono l'utente corrente. Per l'utente corrente, la funzione enumera tutte le patch installate e nuove. Un SID non valido per szUserSid non restituisce alcun elemento.
MSIINSTALLCONTEXT_MACHINE
Enumerazione estesa a tutte le installazioni per computer. Quando dwContext è impostato solo su MSIINSTALLCONTEXT_MACHINE , il parametro szUserSid deve essere NULL.

[in] dwFilter

Filtro per l'enumerazione. Questo parametro può essere una o una combinazione dei parametri seguenti.

Filtra Significato
MSIPATCHSTATE_APPLIED
1
L'enumerazione include patch applicate. L'enumerazione non include patch sostituite o obsolete.
MSIPATCHSTATE_SUPERSEDED
2
L'enumerazione include patch contrassegnate come sostituite.
MSIPATCHSTATE_OBSOLETED
4
L'enumerazione include patch contrassegnate come obsolete.
MSIPATCHSTATE_REGISTERED
8
L'enumerazione include patch registrate ma non ancora applicate. La funzione MsiSourceListAddSourceEx può registrare nuove patch.
Nota Le patch registrate per gli utenti diversi dall'utente corrente e applicate nel contesto per utente non gestito non vengono enumerate.
 
MSIPATCHSTATE_ALL
15
L'enumerazione include tutte le patch applicate, obsolete, sostituite e registrate.

[in] dwIndex

Indice della patch da recuperare. Questo parametro deve essere zero per la prima chiamata alla funzione MsiEnumPatchesEx e quindi incrementata per le chiamate successive. Il parametro dwIndex deve essere incrementato solo se la chiamata precedente ha restituito ERROR_SUCCESS.

[out, optional] szPatchCode

Buffer di output per contenere il GUID della patch da enumerare. Il buffer deve essere abbastanza grande per contenere il GUID. Questo parametro può essere NULL.

[out, optional] szTargetProductCode

Buffer di output per contenere il GUID ProductCode del prodotto che riceve questa patch. Il buffer deve essere abbastanza grande per contenere il GUID. Questo parametro può essere NULL.

[out, optional] pdwTargetProductContext

Restituisce il contesto della patch da enumerare. Il valore di output può essere MSIINSTALLCONTEXT_USERMANAGED, MSIINSTALLCONTEXT_USERUNMANAGED o MSIINSTALLCONTEXT_MACHINE. Questo parametro può essere NULL.

[out, optional] szTargetUserSid

Buffer di output che riceve il SID stringa dell'account in cui esiste questa istanza di patch. Questo buffer restituisce una stringa vuota per un contesto per ogni computer.

Questo buffer deve essere abbastanza grande per contenere il SID. Se il buffer è troppo piccolo, la funzione restituisce ERROR_MORE_DATA e imposta *pcchTargetUserSid sul numero di TCHAR nel valore, non incluso il carattere NULL di terminazione.

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

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

[in, out, optional] pcchTargetUserSid

Puntatore a una variabile che specifica il numero di TCHAR nel buffer szTargetUserSid . Quando la funzione restituisce, questo parametro viene impostato sulla dimensione del valore richiesto se la funzione copia il valore nel buffer specificato. La dimensione viene restituita come numero di TCHAR nel valore richiesto, non incluso il carattere Null terminante.

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

Valore restituito

La funzione MsiEnumPatchesEx restituisce uno dei valori seguenti.

Codice restituito Descrizione
ERROR_ACCESS_DENIED
La funzione non riesce a tentare di accedere a una risorsa con privilegi insufficienti.
ERROR_BAD_CONFIGURATION
I dati di configurazione sono danneggiati.
ERROR_INVALID_PARAMETER
Un parametro non valido viene passato alla funzione.
ERROR_NO_MORE_ITEMS
Non sono disponibili altre patch da enumerare.
ERROR_SUCCESS
La patch viene enumerata correttamente.
ERROR_UNKNOWN_PRODUCT
Il prodotto specificato da szProduct non è installato nel computer nei contesti specificati.
ERROR_MORE_DATA
Viene restituito quando pcchTargetUserSid punta a una dimensione del buffer inferiore a quella necessaria per copiare il SID. In questo caso, l'utente può correggere il buffer e chiamare nuovamente MsiEnumPatchesEx per lo stesso valore di indice.

Commenti

Gli utenti non amministratori possono enumerare le patch solo all'interno della visibilità. Gli amministratori possono enumerare le patch per altri contesti utente.

Nota

L'intestazione msi.h definisce MsiEnumPatchesEx 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 che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

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 Windows Installer Run-Time Requirements .See the Windows Installer requirements for information about the minimum Windows Service Pack that is required by a Windows Installer version.
Piattaforma di destinazione Windows
Intestazione msi.h
Libreria Msi.lib
DLL Msi.dll

Vedi anche

Contesto di installazione

MsiSourceListAddSourceEx

Non supportato in Windows Installer 2.0 e versioni precedenti

ProductCode