MsiEnumProductsExW-Funktion (msi.h)
Die MsiEnumProductsEx-Funktion listet eine oder alle Instanzen von Produkten auf, die derzeit in den angegebenen Kontexten angekündigt oder installiert werden. Diese Funktion ersetzt MsiEnumProducts.
Syntax
UINT MsiEnumProductsExW(
[in, optional] LPCWSTR szProductCode,
[in] LPCWSTR szUserSid,
[in] DWORD dwContext,
[in] DWORD dwIndex,
[out, optional] WCHAR [39] szInstalledProductCode,
[out, optional] MSIINSTALLCONTEXT *pdwInstalledContext,
[out, optional] LPWSTR szSid,
[in, out, optional] LPDWORD pcchSid
);
Parameter
[in, optional] szProductCode
Productcode GUID des aufzuzählenden Produkts. Es werden nur Instanzen von Produkten innerhalb des Bereichs des durch die Parameter szUserSid und dwContext angegebenen Kontexts aufgelistet. Dieser Parameter kann auf NULL festgelegt werden, um alle Produkte im angegebenen Kontext aufzulisten.
[in] szUserSid
Null-beendete Zeichenfolge, die einen Sicherheitsbezeichner (SID) angibt, der den Kontext der Enumeration einschränkt. Die spezielle SID-Zeichenfolge s-1-1-0 (Jeder) gibt die Enumeration für alle Benutzer im System an. Ein anderer SID-Wert als s-1-1-0 gilt als Benutzer-SID und beschränkt die Enumeration auf den aktuellen Benutzer oder einen beliebigen Benutzer im System. Dieser Parameter kann auf NULL festgelegt werden, um den Enumerationsbereich auf den aktuellen Benutzer zu beschränken.
[in] dwContext
Schränkt die Enumeration auf einen Kontext ein. Bei diesem Parameter kann es sich um einen beliebigen oder eine Kombination der werte in der folgenden Tabelle handeln.
[in] dwIndex
Gibt den Index des abzurufenden Produkts an. Dieser Parameter muss für den ersten Aufruf der MsiEnumProductsEx-Funktion 0 sein und für nachfolgende Aufrufe inkrementiert werden. Der Index sollte nur erhöht werden, wenn der vorherige Aufruf ERROR_SUCCESS zurückgegeben hat. Da die Produkte nicht sortiert werden, verfügen alle neuen Produkte über einen beliebigen Index. Daher kann die Funktion Produkte in beliebiger Reihenfolge zurückgeben.
[out, optional] szInstalledProductCode
Null-beendete TCHAR-Zeichenfolge, die die ProductCode-GUID des aufgezählten Produkts instance angibt. Dieser Parameter kann NULL sein.
[out, optional] pdwInstalledContext
Gibt den Kontext des aufgezählten Produkts instance zurück. Der Ausgabewert kann MSIINSTALLCONTEXT_USERMANAGED, MSIINSTALLCONTEXT_USERUNMANAGED oder MSIINSTALLCONTEXT_MACHINE sein. Dieser Parameter kann NULL sein.
[out, optional] szSid
Ein Ausgabepuffer, der die Zeichenfolgen-SID des Kontos empfängt, unter dem dieses Produkt instance vorhanden ist. Dieser Puffer gibt eine leere Zeichenfolge für eine instance zurück, die in einem computerspezifischen Kontext installiert ist.
Dieser Puffer sollte groß genug sein, um die SID zu enthalten. Wenn der Puffer zu klein ist, gibt die Funktion ERROR_MORE_DATA zurück und legt *pcchSid auf die Anzahl von TCHAR in der SID fest, ohne das beendende NULL-Zeichen.
Wenn szSid auf NULL und pcchSid auf einen gültigen Zeiger festgelegt ist, gibt die Funktion ERROR_SUCCESS zurück und legt *pcchSid auf die Anzahl von TCHAR im Wert fest, ohne den beendenden NULL-Wert. Die Funktion kann dann erneut aufgerufen werden, um den Wert abzurufen, wobei der szSid-Puffer groß genug ist, um *pcchSid + 1 Zeichen zu enthalten.
Wenn szSid und pcchSid beide auf NULL festgelegt sind, gibt die Funktion ERROR_SUCCESS zurück, wenn der Wert vorhanden ist, ohne den Wert abzurufen.
[in, out, optional] pcchSid
Beim Aufrufen der Funktion sollte dieser Parameter ein Zeiger auf eine Variable sein, die die Anzahl von TCHAR im szSid-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 beendende NULL-Zeichen.
Dieser Parameter kann nur auf NULL festgelegt werden, wenn szSid ebenfalls NULL ist, andernfalls gibt die Funktion ERROR_INVALID_PARAMETER zurück.
Rückgabewert
Die MsiEnumProductsEx-Funktion gibt einen der folgenden Werte zurück.
Rückgabecode | Beschreibung |
---|---|
|
Wenn der Bereich andere Benutzer als den aktuellen Benutzer umfasst, benötigen Sie Administratorrechte. |
|
Die Konfigurationsdaten sind beschädigt. |
|
Es wurde ein ungültiger Parameter an die Funktion übergeben. |
|
Es gibt keine weiteren Produkte, die aufgezählt werden müssen. |
|
Ein Produkt wird aufgelistet. |
|
Der parameter szSid ist zu klein, um die Benutzer-SID abzurufen. |
|
Das Produkt wird nicht im angegebenen Kontext auf dem Computer installiert. |
|
Ein unerwarteter interner Fehler. |
Hinweise
Zum Auflisten von Produkten muss eine Anwendung zunächst die MsiEnumProductsEx-Funktion aufrufen, wobei der iIndex-Parameter auf Null festgelegt ist. Die Anwendung muss dann den iProductIndex-Parameter inkrementieren und MsiEnumProductsEx aufrufen, bis sie ERROR_NO_MORE_ITEMS zurückgibt und keine weiteren Produkte mehr aufzulisten sind.
Wenn Sie mehrere Aufrufe an MsiEnumProductsEx ausführen, um alle Produkte aufzulisten, muss jeder Aufruf aus demselben Thread erfolgen.
Ein Benutzer muss über Administratorrechte verfügen, um Produkte für alle Benutzerkonten oder ein anderes Benutzerkonto als das aktuelle Benutzerkonto aufzulisten. Die Enumeration überspringt Produkte, die nur im nicht verwalteten Kontext pro Benutzer angekündigt werden (z. B. nicht installierte Produkte), wenn sie für alle Benutzer oder einen anderen Benutzer als den aktuellen Benutzer aufgelistet werden.
Verwenden Sie MsiGetProductInfoEx, um den Status oder andere Informationen zu den einzelnen Produkten abzurufen, die von MsiEnumProductsEx aufgelistet instance.
Hinweis
Der msi.h-Header definiert MsiEnumProductsEx 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 nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für