Freigeben über


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.

SID-Typ Bedeutung
NULL-
Gibt den aktuell angemeldeten Benutzer an.
Benutzer-SID-
Eine Aufzählung für einen bestimmten Benutzer im System. Ein Beispiel für die Benutzer-SID ist "S-1-3-64-2415071341-1358098788-3127455600-2561".
s-1-1-0-
Eine Aufzählung für alle Benutzer im System.
 
Hinweis Die spezielle SID-Zeichenfolge "S-1-5-18" (System) kann nicht zum Aufzählen von Produkten oder Patches verwendet werden, die pro Computer installiert sind. Durch Festlegen des SID-Werts auf "S-1-5-18" wird ERROR_INVALID_PARAMETERzurückgegeben. Wenn dwContext- nur auf MSIINSTALLCONTEXT_MACHINE festgelegt ist, muss szUserSid NULL-sein.
 

[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.

Zusammenhang Bedeutung
MSIINSTALLCONTEXT_USERMANAGED
Die Aufzählung, die auf alle benutzerverwalteten Installationen für die Benutzer erweitert wird, die szUserSid angibt. Eine ungültige SID gibt keine Elemente zurück.
MSIINSTALLCONTEXT_USERUNMANAGED
In diesem Zusammenhang werden nur Patches, die mit Windows Installer Version 3.0 installiert sind, für Benutzer aufgelistet, die nicht der aktuelle Benutzer sind. Für den aktuellen Benutzer listet die Funktion alle installierten und neuen Patches auf. Eine ungültige SID für szUserSid gibt keine Elemente zurück.
MSIINSTALLCONTEXT_MACHINE
Eine Aufzählung, die auf alle Installationen pro Computer erweitert wird. Wenn dwContext- nur auf MSIINSTALLCONTEXT_MACHINE festgelegt ist, muss der szUserSid Parameter NULLsein.

[in] dwFilter

Der Filter für Enumeration. Dieser Parameter kann eine oder eine Kombination der folgenden Parameter sein.

Filter Bedeutung
MSIPATCHSTATE_APPLIED
1
Die Enumeration enthält Patches, die angewendet wurden. Enumeration enthält keine übergeordneten oder veralteten Patches.
MSIPATCHSTATE_SUPERSEDED
2
Die Enumeration enthält Patches, die als abgelöst gekennzeichnet sind.
MSIPATCHSTATE_OBSOLETED
4
Die Aufzählung enthält Patches, die als veraltet gekennzeichnet sind.
MSIPATCHSTATE_REGISTERED
8
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.
 
MSIPATCHSTATE_ALL
15
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
ERROR_ACCESS_DENIED
Die Funktion versucht nicht, auf eine Ressource mit unzureichenden Berechtigungen zuzugreifen.
ERROR_BAD_CONFIGURATION
Die Konfigurationsdaten sind beschädigt.
ERROR_INVALID_PARAMETER
An die Funktion wird ein ungültiger Parameter übergeben.
ERROR_NO_MORE_ITEMS
Es gibt keine weiteren Patches zum Aufzählen.
ERROR_SUCCESS
Der Patch wird erfolgreich aufgezählt.
ERROR_UNKNOWN_PRODUCT
Das Produkt, das szProduct- angibt, ist nicht auf dem Computer in den angegebenen Kontexten installiert.
ERROR_MORE_DATA
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

Installationskontext-

MsiSourceListAddSourceEx-

in Windows Installer 2.0 und früheren nicht unterstützt

ProductCode-