CWbemProviderGlue::GetAllDerivedInstancesAsynch-Methode (wbemglue.h)
[Die CWbemProviderGlue-Klasse ist Teil des WMI-Provider-Frameworks, das nun als endgültig betrachtet wird, und werden keine weiteren Entwicklungen, Verbesserungen oder Updates für nicht sicherheitsrelevante Probleme verfügbar sein, die diese Bibliotheken betreffen. Die MI-APIs sollten für alle Neuentwicklungen verwendet werden.]
Die GetAllDerivedInstancesAsynch-Methode ruft eine Liste von Instanzen ab, die von einem bestimmten Anbieter unterstützt und von einer bestimmten Basisklasse abgeleitet werden. Diese Methode ermöglicht es dem Anbieter, asynchron zu reagieren, indem er jeweils eine instance zurückgibt.
Syntax
HRESULT GetAllDerivedInstancesAsynch(
LPCWSTR pszBaseClassName,
Provider *pRequester,
LPProviderInstanceCallback pCallback,
LPCWSTR pszNamespace,
MethodContext *pMethodContext,
void *pUserData
);
Parameter
pszBaseClassName
Name der Basisklasse, für die die Liste zurückgegeben werden soll.
pRequester
Zeiger für die Rückruffunktion, auf die von pCallback verwiesen wird.
pCallback
Zeiger auf eine statische Funktion mit diesem Prototyp.
static HRESULT WINAPI Classname::FunctionName(
Provider *pProvider,
CInstance *pInstance,
MethodContext *pMethodContext,
void *pUserData );
wobei Classname der Name einer Klasse ist, die von der Klasse Provider abgeleitet ist. Es ist ein instance dieser Klasse, bei dem es sich um den von pRequester definierten "this"-Zeiger handelt. Diese Funktion wird aufgerufen, um alle instance zurückzugeben, die von dem von pszClassName angegebenen Anbieter unterstützt werden.
pszNamespace
Namespace des durch pszClassName angegebenen Klassennamens. Wenn dieser Parameter NULL ist, wird der Standardnamespace root\cimv2 verwendet.
pMethodContext
Zeiger auf den aktuellen Kontext. Es muss ein Kontext bereitgestellt werden, um Deadlocks zu verhindern. Verwenden Sie entweder den Kontext, der von Provider::EnumerateInstances oder Provider::ExecQuery an den Anbieter übergeben wird, oder rufen Sie ihn mithilfe von CInstance::GetMethodContext von der instance ab. Dieser Parameter darf nicht NULL sein.
pUserData
Zeiger auf benutzerdefinierte Daten, die an die Funktion übergeben werden, auf die pCallback verweist.
Rückgabewert
Die Methode gibt WBEM_S_NO_ERROR zurück, wenn der Vorgang erfolgreich war, WBEM_E_OUT_OF_MEMORY , wenn der Vorgang aufgrund von Arbeitsspeichermangel oder einem anderen HRESULT-Fehlercode fehlgeschlagen ist.
Hinweise
Die GetAllDerivedInstancesAsynch-Methode führt fast die gleiche Funktion wie GetAllDerivedInstances aus. Anstatt jedoch ein beliebig großes Array von Instanzen zurückzugeben, übergibt der Anbieter jedes Mal, wenn die instance von einem Anbieter abgerufen wird, eine instance an die von pCallBack angegebene Funktion. Dadurch kann der Anbieter weniger Arbeitsspeicher verwenden und früher mit der Rückgabe von Instanzen an den Client beginnen.
Diese Methode entspricht semantisch der Abfrage SELECT * FROM pszBaseClassName.
Da der Rückruf an die Senke möglicherweise nicht auf der gleichen Authentifizierungsebene zurückgegeben wird, wie es für den Client erforderlich ist, wird empfohlen, die semisynchrone Kommunikation anstelle der asynchronen Kommunikation zu verwenden. Wenn Sie jedoch eine asynchrone Kommunikation benötigen, finden Sie weitere Informationen unter Aufrufen einer Methode.
Weitere Informationen zur semisynchronen Verwendung von Methoden finden Sie unter CWbemProviderGlue::GetAllDerivedInstances und Aufrufen einer Methode.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | wbemglue.h (einschließlich FwCommon.h) |
Bibliothek | FrameDyn.lib |
DLL | FrameDynOS.dll; FrameDyn.dll |