Condividi tramite


Funzione MsiSourceListEnumMediaDisksA (msi.h)

La funzione MsiSourceListEnumMediaDisks enumera l'elenco dei dischi registrati per l'origine multimediale per una patch o un prodotto.

Sintassi

UINT MsiSourceListEnumMediaDisksA(
  [in]                LPCSTR            szProductCodeOrPatchCode,
  [in, optional]      LPCSTR            szUserSid,
  [in]                MSIINSTALLCONTEXT dwContext,
  [in]                DWORD             dwOptions,
  [in]                DWORD             dwIndex,
  [out, optional]     LPDWORD           pdwDiskId,
  [out, optional]     LPSTR             szVolumeLabel,
  [in, out, optional] LPDWORD           pcchVolumeLabel,
  [out, optional]     LPSTR             szDiskPrompt,
  [in, out, optional] LPDWORD           pcchDiskPrompt
);

Parametri

[in] szProductCodeOrPatchCode

GUID ProductCode o patch del prodotto o della patch. Usare una stringa con terminazione null. Se la stringa è più lunga di 39 caratteri, la funzione ha esito negativo e restituisce ERROR_INVALID_PARAMETER. Questo parametro non può essere NULL.

[in, optional] szUserSid

SID stringa che specifica l'account utente che contiene il prodotto o la patch. Il SID non viene convalidato o risolto. Un SID non corretto può restituire ERROR_UNKNOWN_PRODUCT o ERROR_UNKNOWN_PATCH. Quando si fa riferimento a un contesto di computer, szUserSID deve essere NULL e dwContext deve essere MSIINSTALLCONTEXT_MACHINE.

Tipo di SID Significato
NULL
Un valore NULL indica l'utente attualmente connesso. Quando si fa riferimento all'account utente corrente, szUserSID può essere NULL e dwContext può essere MSIINSTALLCONTEXT_USERMANAGED o MSIINSTALLCONTEXT_USERUNMANAGED.
SID utente
Enumerazione per un utente specifico nel sistema. Un esempio di SID utente è "S-1-3-64-2415071341-1358098788-312745600-2561".
s-1-1-0
La stringa SID speciale s-1-1-0 (tutti) specifica l'enumerazione in tutti gli utenti del sistema.
 
Nota Impossibile usare la stringa SID speciale s-1-5-18 (sistema) 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.
 

[in] dwContext

Questo parametro specifica il contesto dell'istanza di prodotto o patch. Questo parametro può contenere uno dei valori seguenti.

Tipo di contesto Significato
MSIINSTALLCONTEXT_USERMANAGED
L'istanza del prodotto o della patch esiste nel contesto gestito dall'utente.
MSIINSTALLCONTEXT_USERUNMANAGED
L'istanza di prodotto o patch esiste nel contesto per utente non gestito.
MSIINSTALLCONTEXT_MACHINE
L'istanza di prodotto o patch esiste nel contesto per computer.

[in] dwOptions

Valore dwOptions che specifica il significato di szProductCodeOrPatchCode.

Contrassegno Significato
MSICODE_PRODUCT
szProductCodeOrPatchCode è un GUID del codice prodotto.
MSICODE_PATCH
szProductCodeOrPatchCode è un GUID del codice patch.

[in] dwIndex

Indice dell'origine da recuperare. Questo parametro deve essere 0 (zero) per la prima chiamata alla funzione MsiSourceListEnumMediaDisks e quindi incrementato per le chiamate successive fino a quando la funzione restituisce ERROR_NO_MORE_ITEMS.

[out, optional] pdwDiskId

Nella voce MsiSourceListEnumMediaDisks questo parametro fornisce un puntatore a un DWORD per ricevere l'ID del disco che viene enumerato. Questo parametro è facoltativo e,

[out, optional] szVolumeLabel

Buffer di output che riceve l'etichetta del volume del disco in corso di enumerazione. Questo buffer deve essere abbastanza grande per contenere le informazioni. Se il buffer è troppo piccolo, la funzione restituisce ERROR_MORE_DATA e imposta *pcchVolumeLabel sul numero di TCHAR nel valore, non incluso il carattere NULL terminante.

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

[in, out, optional] pcchVolumeLabel

Puntatore a una variabile che specifica il numero di TCHAR nel buffer szVolumeLabel . Quando la funzione restituisce, questo parametro è il numero di TCHAR nel valore ricevuto, non incluso il carattere Null terminante.

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

[out, optional] szDiskPrompt

Buffer di output che riceve la richiesta del disco del disco in corso di enumerazione. Questo buffer deve essere abbastanza grande per contenere le informazioni. Se il buffer è troppo piccolo, la funzione restituisce ERROR_MORE_DATA e imposta *pcchDiskPrompt sul numero di TCHAR nel valore, non incluso il carattere NULL terminante.

Se szDiskPrompt è impostato su NULL e pcchDiskPrompt è impostato su un puntatore valido, la funzione restituisce ERROR_SUCCESS e imposta *pcchDiskPrompt 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 szDiskPrompt abbastanza grande per contenere *pcchDiskPrompt + 1 caratteri.

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

[in, out, optional] pcchDiskPrompt

Puntatore a una variabile che specifica il numero di TCHAR nel buffer szDiskPrompt . 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 szDiskPrompt è null, altrimenti la funzione restituisce ERROR_INVALID_PARAMETER.

Valore restituito

La funzione MsiSourceListEnumMediaDisks restituisce i valori seguenti.

Valore Significato
ERROR_ACCESS_DENIED
L'utente non ha la possibilità di leggere l'origine multimediale specificata o il prodotto o la patch specificati. Questo non indica se viene trovata un'origine multimediale, un prodotto o una patch.
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 presenti più dischi registrati per questo prodotto o patch.
ERROR_SUCCESS
Il valore viene enumerato correttamente.
ERROR_UNKNOWN_PATCH
La patch non viene trovata.
ERROR_UNKNOWN_PRODUCT
Il prodotto non viene trovato.
ERROR_MORE_DATA
Il buffer fornito è troppo piccolo per contenere le informazioni richieste.
ERROR_FUNCTION_FAILED
Errore interno imprevisto.

Commenti

Quando si effettuano più chiamate a MsiSourceListEnumMediaDisks per enumerare tutte le origini per un'unica istanza del prodotto, ogni chiamata deve essere eseguita dallo stesso thread.

Un amministratore può enumerare installazioni non gestite e gestite per utente per se stessi, installazioni per ogni computer e installazioni gestite per utente per qualsiasi utente. Un amministratore non può enumerare installazioni non gestite per utente per altri utenti. Gli amministratori non possono enumerare solo le installazioni e le installazioni gestite per utente non gestite e per ogni computer.

Nota

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

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 i requisiti di Windows Installer Run-Time.
Piattaforma di destinazione Windows
Intestazione msi.h
Libreria Msi.lib
DLL Msi.dll

Vedi anche

Contesto di installazione

Non supportato in Windows Installer 2.0 e versioni precedenti

ProductCode