Share via


MsiSourceListEnumMediaDisksW-Funktion (msi.h)

Die MsiSourceListEnumMediaDisks-Funktion listet die Liste der Datenträger auf, die für die Medienquelle für einen Patch oder ein Produkt registriert sind.

Syntax

UINT MsiSourceListEnumMediaDisksW(
  [in]                LPCWSTR           szProductCodeOrPatchCode,
  [in, optional]      LPCWSTR           szUserSid,
  [in]                MSIINSTALLCONTEXT dwContext,
  [in]                DWORD             dwOptions,
  [in]                DWORD             dwIndex,
  [out, optional]     LPDWORD           pdwDiskId,
  [out, optional]     LPWSTR            szVolumeLabel,
  [in, out, optional] LPDWORD           pcchVolumeLabel,
  [out, optional]     LPWSTR            szDiskPrompt,
  [in, out, optional] LPDWORD           pcchDiskPrompt
);

Parameter

[in] szProductCodeOrPatchCode

Die ProductCode - oder Patch-GUID des Produkts oder Patches. Verwenden Sie eine NULL-endende Zeichenfolge. Wenn die Zeichenfolge länger als 39 Zeichen ist, schlägt die Funktion fehl und gibt ERROR_INVALID_PARAMETER zurück. Dieser Parameter darf nicht NULL sein.

[in, optional] szUserSid

Eine Zeichenfolgen-SID, die das Benutzerkonto angibt, das das Produkt oder patch enthält. Die SID wird nicht überprüft oder aufgelöst. Eine falsche SID kann ERROR_UNKNOWN_PRODUCT oder ERROR_UNKNOWN_PATCH zurückgeben. Beim Verweisen auf einen Computerkontext muss szUserSIDNULL und dwContext MSIINSTALLCONTEXT_MACHINE sein.

Typ der SID Bedeutung
NULL
Ein NULL-Wert gibt den derzeit angemeldeten Benutzer an. Beim Verweisen auf das aktuelle Benutzerkonto kann szUserSIDNULL und dwContext MSIINSTALLCONTEXT_USERMANAGED oder MSIINSTALLCONTEXT_USERUNMANAGED sein.
Benutzer-SID
Eine Enumeration für einen bestimmten Benutzer im System. Ein Beispiel für eine Benutzer-SID ist "S-1-3-64-2415071341-1358098788-3127455600-2561".
s-1-1-0
Die spezielle SID-Zeichenfolge s-1-1-0 (jeder) gibt die Enumeration für alle Benutzer im System an.
 
Hinweis Die spezielle SID-Zeichenfolge s-1-5-18 (System) kann nicht verwendet werden, um Produkte oder Patches aufzulisten, die pro Computer installiert sind. Durch Festlegen des SID-Werts auf s-1-5-18 wird ERROR_INVALID_PARAMETER zurückgegeben.
 

[in] dwContext

Dieser Parameter gibt den Kontext des Produkt- oder Patch-instance an. Dieser Parameter kann einen der folgenden Werte enthalten.

Typ des Kontexts Bedeutung
MSIINSTALLCONTEXT_USERMANAGED
Das Produkt oder der Patch instance ist im benutzerseitig verwalteten Kontext vorhanden.
MSIINSTALLCONTEXT_USERUNMANAGED
Das Produkt oder der Patch instance ist im benutzerspezifischen nicht verwalteten Kontext vorhanden.
MSIINSTALLCONTEXT_MACHINE
Das Produkt oder der Patch instance ist im Kontext pro Computer vorhanden.

[in] dwOptions

Der dwOptions-Wert , der die Bedeutung von szProductCodeOrPatchCode angibt.

Flag Bedeutung
MSICODE_PRODUCT
szProductCodeOrPatchCode ist eine Produktcode-GUID.
MSICODE_PATCH
szProductCodeOrPatchCode ist eine Patchcode-GUID.

[in] dwIndex

Der Index der abzurufenden Quelle. Dieser Parameter muss für den ersten Aufruf der MsiSourceListEnumMediaDisks-Funktion 0 (null) sein und dann für nachfolgende Aufrufe inkrementiert werden, bis die Funktion ERROR_NO_MORE_ITEMS zurückgibt.

[out, optional] pdwDiskId

Beim Eintrag zu MsiSourceListEnumMediaDisks stellt dieser Parameter einen Zeiger auf ein DWORD bereit, um die ID des Datenträgers zu empfangen, der aufgezählt wird. Dieser Parameter ist optional.

[out, optional] szVolumeLabel

Ein Ausgabepuffer, der die Volumebezeichnung des Datenträgers empfängt, der aufgezählt wird. Dieser Puffer sollte groß genug sein, um die Informationen zu enthalten. Wenn der Puffer zu klein ist, gibt die Funktion ERROR_MORE_DATA zurück und legt *pcchVolumeLabel auf die Anzahl von TCHAR im Wert fest, ohne das abschließende NULL-Zeichen.

Wenn szVolumeLabel und pcchVolumeLabel beide auf NULL festgelegt sind, gibt die Funktion ERROR_SUCCESS zurück, wenn der Wert vorhanden ist, ohne den Wert abzurufen.

[in, out, optional] pcchVolumeLabel

Ein Zeiger auf eine Variable, die die Anzahl von TCHAR im szVolumeLabel-Puffer angibt. Wenn die Funktion zurückgibt, ist dieser Parameter die Anzahl von TCHAR im empfangenen Wert, ohne das abschließende NULL-Zeichen.

Dieser Parameter kann nur auf NULL festgelegt werden, wenn szVolumeLabel ebenfalls NULL ist. Andernfalls gibt die Funktion ERROR_INVALID_PARAMETER zurück.

[out, optional] szDiskPrompt

Ein Ausgabepuffer, der die Datenträgereingabeaufforderung des Datenträgers empfängt, der aufgezählt wird. Dieser Puffer sollte groß genug sein, um die Informationen zu enthalten. Wenn der Puffer zu klein ist, gibt die Funktion ERROR_MORE_DATA zurück und legt *pcchDiskPrompt auf die Anzahl von TCHAR im Wert fest, ohne das abschließende NULL-Zeichen.

Wenn szDiskPrompt auf NULL und pcchDiskPrompt auf einen gültigen Zeiger festgelegt ist, gibt die Funktion ERROR_SUCCESS zurück und legt *pcchDiskPrompt auf die Anzahl von TCHAR im Wert fest, ohne das abschließende NULL-Zeichen. Die Funktion kann dann erneut aufgerufen werden, um den Wert abzurufen, wobei der Puffer szDiskPrompt groß genug ist, um *pcchDiskPrompt + 1 Zeichen zu enthalten.

Wenn szDiskPrompt und pcchDiskPrompt beide auf NULL festgelegt sind, gibt die Funktion ERROR_SUCCESS zurück, wenn der Wert vorhanden ist, ohne den Wert abzurufen.

[in, out, optional] pcchDiskPrompt

Ein Zeiger auf eine Variable, die die Anzahl von TCHAR im szDiskPrompt-Puffer angibt. Wenn die Funktion zurückgibt, wird dieser Parameter auf die Größe des angeforderten Werts festgelegt, unabhängig davon, ob die Funktion den Wert in den angegebenen Puffer kopiert oder nicht. Die Größe wird als Anzahl von TCHAR im angeforderten Wert zurückgegeben, ohne das abschließende NULL-Zeichen.

Dieser Parameter kann nur auf NULL festgelegt werden, wenn szDiskPrompt ebenfalls NULL ist. Andernfalls gibt die Funktion ERROR_INVALID_PARAMETER zurück.

Rückgabewert

Die MsiSourceListEnumMediaDisks-Funktion gibt die folgenden Werte zurück.

Wert Bedeutung
ERROR_ACCESS_DENIED
Der Benutzer hat nicht die Möglichkeit, die angegebene Medienquelle oder das angegebene Produkt oder Patch zu lesen. Dies gibt nicht an, ob eine Medienquelle, ein Produkt oder ein Patch gefunden wird.
ERROR_BAD_CONFIGURATION
Die Konfigurationsdaten sind beschädigt.
ERROR_INVALID_PARAMETER
Ein ungültiger Parameter wird an die Funktion übergeben.
ERROR_NO_MORE_ITEMS
Für dieses Produkt oder Patch sind keine Datenträger mehr registriert.
ERROR_SUCCESS
Der Wert wurde erfolgreich aufgezählt.
ERROR_UNKNOWN_PATCH
Der Patch wurde nicht gefunden.
ERROR_UNKNOWN_PRODUCT
Das Produkt wurde nicht gefunden.
ERROR_MORE_DATA
Der bereitgestellte Puffer ist zu klein, um die angeforderten Informationen zu enthalten.
ERROR_FUNCTION_FAILED
Unerwarteter interner Fehler.

Hinweise

Wenn Sie mehrere Aufrufe von MsiSourceListEnumMediaDisks ausführen, um alle Quellen für ein einzelnes Produkt instance aufzulisten, muss jeder Aufruf aus demselben Thread erfolgen.

Ein Administrator kann nicht verwaltete und verwaltete Installationen pro Benutzer für sich selbst, Computerinstallationen und benutzerspezifische verwaltete Installationen für jeden Benutzer aufzählen. Ein Administrator kann nicht verwaltete Installationen pro Benutzer für andere Benutzer nicht aufzählen. Nicht-Administratoren können nur ihre eigenen nicht verwalteten und verwalteten Installationen pro Benutzer auflisten und Installationen pro Computer.

Hinweis

Der msi.h-Header definiert MsiSourceListEnumMediaDisks als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Installer 5.0 unter Windows Server 2012, Windows 8, Windows Server 2008 R2 oder Windows 7. Windows Installer 4.0 oder Windows Installer 4.5 unter Windows Server 2008 oder Windows Vista. Windows Installer 3.0 oder höher unter Windows Server 2003 oder Windows XP. Informationen zum mindestens erforderlichen Windows Service Pack für eine Windows Installer-Version finden Sie unter Windows Installer – Laufzeitanforderungen.
Zielplattform Windows
Kopfzeile msi.h
Bibliothek Msi.lib
DLL Msi.dll

Weitere Informationen

Installationskontext

In Windows Installer 2.0 und früher nicht unterstützt

ProductCode