MsiEnumPatchesExA-Funktion (msi.h)
Die MsiEnumPatchesEx--Funktion listet alle Patches in einem bestimmten Kontext oder in allen Kontexten auf. Bereits auf Produkte angewendete Patches werden aufgezählt. Patches, die registriert, aber noch nicht auf Produkte angewendet wurden, werden ebenfalls aufgezählt.
Syntax
UINT MsiEnumPatchesExA(
[in, optional] LPCSTR szProductCode,
[in, optional] LPCSTR szUserSid,
[in] DWORD dwContext,
[in] DWORD dwFilter,
[in] DWORD dwIndex,
[out, optional] CHAR [39] szPatchCode,
[out, optional] CHAR [39] szTargetProductCode,
[out, optional] MSIINSTALLCONTEXT *pdwTargetProductContext,
[out, optional] LPSTR szTargetUserSid,
[in, out, optional] LPDWORD pcchTargetUserSid
);
Parameter
[in, optional] szProductCode
Eine mit Null beendete Zeichenfolge, die die ProductCode- GUID des Produkts angibt, dessen Patches aufgezählt werden. Wenn nicht-NULL-, ist die Patchenumeration auf Instanzen dieses Produkts unter dem Benutzer und kontext beschränkt, der durch szUserSid und dwContext-angegeben wird. Wenn NULL-, werden die Patches für alle Produkte unter dem angegebenen Kontext aufgezählt.
[in, optional] szUserSid
Eine mit Null beendete Zeichenfolge, die einen Sicherheitsbezeichner (SECURITY Identifier, 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 schränkt die Enumeration auf diesen Benutzer ein. Beim Aufzählen eines anderen Benutzers als dem aktuellen Benutzer werden alle Patches, die in einem nicht verwalteten Kontext pro Benutzer angewendet wurden, mit einer Version, die kleiner als Windows Installer Version 3.0 ist, nicht aufgezählt. Dieser Parameter kann auf NULL- festgelegt werden, um den aktuellen Benutzer anzugeben.
[in] dwContext
Beschränkt die Aufzählung auf eine oder eine Kombination aus Kontexten. Dieser Parameter kann eine beliebige oder eine Kombination der folgenden Werte sein.
[in] dwFilter
Der Filter für Enumeration. Dieser Parameter kann eine oder eine Kombination der folgenden Parameter sein.
Filter | Bedeutung |
---|---|
|
Die Enumeration enthält Patches, die angewendet wurden. Enumeration enthält keine übergeordneten oder veralteten Patches. |
|
Die Enumeration enthält Patches, die als abgelöst gekennzeichnet sind. |
|
Die Aufzählung enthält Patches, die als veraltet gekennzeichnet sind. |
|
Die Enumeration enthält Patches, die registriert, aber noch nicht angewendet wurden. Die MsiSourceListAddSourceEx--Funktion kann neue Patches registrieren.
Hinweis Patches, die für andere Benutzer als den aktuellen Benutzer registriert sind und im nicht verwalteten Kontext angewendet werden, werden nicht aufgezählt.
|
|
Die Enumeration enthält alle angewendeten, veralteten, abgelösten und registrierten Patches. |
[in] dwIndex
Der Index des abzurufenden Patches. Dieser Parameter muss für den ersten Aufruf der MsiEnumPatchesEx-Funktion null sein und dann für nachfolgende Aufrufe erhöht werden. Der dwIndex Parameter sollte nur erhöht werden, wenn der vorherige Aufruf ERROR_SUCCESS zurückgegeben wurde.
[out, optional] szPatchCode
Ein Ausgabepuffer, der die GUID des patch enthält, der aufgezählt wird. Der Puffer sollte groß genug sein, um die GUID aufzunehmen. Dieser Parameter kann NULL-sein.
[out, optional] szTargetProductCode
Ein Ausgabepuffer, der die ProductCode- GUID des Produkts enthält, das diesen Patch empfängt. Der Puffer sollte groß genug sein, um die GUID aufzunehmen. Dieser Parameter kann NULL-sein.
[out, optional] pdwTargetProductContext
Gibt den Kontext des Patches zurück, der aufgezählt wird. Der Ausgabewert kann MSIINSTALLCONTEXT_USERMANAGED, MSIINSTALLCONTEXT_USERUNMANAGEDoder MSIINSTALLCONTEXT_MACHINEsein. Dieser Parameter kann NULL-sein.
[out, optional] szTargetUserSid
Ein Ausgabepuffer, der die Zeichenfolgen-SID des Kontos empfängt, unter dem diese Patchinstanz vorhanden ist. Dieser Puffer gibt eine leere Zeichenfolge für einen Computerkontext zurück.
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 *pcchTargetUserSid auf die Anzahl der TCHAR- im Wert, nicht einschließlich des endenden NULL-Zeichens.
Wenn die szTargetUserSid- auf NULL- und pcchTargetUserSid- auf einen gültigen Zeiger festgelegt ist, gibt die Funktion ERROR_SUCCESS zurück und legt *pcchTargetUserSid auf die Anzahl der TCHAR- im Wert zurück, nicht einschließlich des endenden NULL- zeichens. Die Funktion kann dann erneut aufgerufen werden, um den Wert abzurufen, wobei szTargetUserSid Puffer groß genug ist, um *pcchTargetUserSid + 1 Zeichen zu enthalten.
Wenn szTargetUserSid und pcchTargetUserSid beide auf NULL-festgelegt sind, gibt die Funktion ERROR_SUCCESS zurück, wenn der Wert vorhanden ist, ohne den Wert abzurufen.
[in, out, optional] pcchTargetUserSid
Ein Zeiger auf eine Variable, die die Anzahl der TCHAR- im szTargetUserSid- Puffer angibt. Wenn die Funktion zurückgegeben wird, wird dieser Parameter auf die Größe des angeforderten Werts festgelegt, unabhängig davon, ob die Funktion den Wert in den angegebenen Puffer kopiert. Die Größe wird als Die Anzahl der TCHAR- im angeforderten Wert zurückgegeben, nicht einschließlich des endenden Nullzeichens.
Dieser Parameter kann nur dann auf NULL- festgelegt werden, wenn szTargetUserSid auch NULL-ist, andernfalls gibt die Funktion ERROR_INVALID_PARAMETER zurück.
Rückgabewert
Die MsiEnumPatchesEx--Funktion gibt einen der folgenden Werte zurück.
Rückgabecode | Beschreibung |
---|---|
|
Die Funktion versucht nicht, auf eine Ressource mit unzureichenden Berechtigungen zuzugreifen. |
|
Die Konfigurationsdaten sind beschädigt. |
|
An die Funktion wird ein ungültiger Parameter übergeben. |
|
Es gibt keine weiteren Patches zum Aufzählen. |
|
Der Patch wird erfolgreich aufgezählt. |
|
Das Produkt, das szProduct- angibt, ist nicht auf dem Computer in den angegebenen Kontexten installiert. |
|
Dies wird zurückgegeben, wenn pcchTargetUserSid auf eine Puffergröße verweist, die kleiner als erforderlich ist, um die SID zu kopieren. In diesem Fall kann der Benutzer den Puffer korrigieren und MsiEnumPatchesEx- erneut für denselben Indexwert aufrufen. |
Bemerkungen
Nicht-Administratoren können Patches nur innerhalb ihrer Sichtbarkeit aufzählen. Administratoren können Patches für andere Benutzerkontexte aufzählen.
Anmerkung
Der msi.h-Header definiert MsiEnumPatchesEx 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 |
---|---|
mindestens unterstützte 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. Informationen zum mindestens von einer Windows Installer-Version erforderlichen Windows-Service Pack finden Sie unter den Windows Installer-Run-Time Anforderungen. |
Zielplattform- | Fenster |
Header- | msi.h |
Library | Msi.lib |
DLL- | Msi.dll |
Siehe auch
in Windows Installer 2.0 und früheren nicht unterstützt