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.
[in] dwContext
Limita l'enumerazione a una o a una combinazione di contesti. Questo parametro può essere uno o una combinazione dei valori seguenti.
[in] dwFilter
Filtro per l'enumerazione. Questo parametro può essere una o una combinazione dei parametri seguenti.
Filtra | Significato |
---|---|
|
L'enumerazione include patch applicate. L'enumerazione non include patch sostituite o obsolete. |
|
L'enumerazione include patch contrassegnate come sostituite. |
|
L'enumerazione include patch contrassegnate come obsolete. |
|
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.
|
|
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 |
---|---|
|
La funzione non riesce a tentare di accedere a una risorsa con privilegi insufficienti. |
|
I dati di configurazione sono danneggiati. |
|
Un parametro non valido viene passato alla funzione. |
|
Non sono disponibili altre patch da enumerare. |
|
La patch viene enumerata correttamente. |
|
Il prodotto specificato da szProduct non è installato nel computer nei contesti specificati. |
|
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
Non supportato in Windows Installer 2.0 e versioni precedenti