Freigeben über


GetProcessReference-Funktion (shlwapi.h)

Ruft das prozessspezifische Objekt ab, das von SetProcessReference bereitgestellt wird, und erhöht die Verweisanzahl, um den Prozess am Leben zu halten.

Syntax

LWSTDAPI GetProcessReference(
  [out] IUnknown **punk
);

Parameter

[out] punk

Die Adresse eines Zeigers, der bei erfolgreicher Rückgabe dieser Funktion auf das Objekt verweist, das von SetProcessReference an den Prozess bereitgestellt wird. Ihre Anwendung ist für die Freigabe dieser Ressource verantwortlich, wenn sie nicht mehr benötigt wird.

Ein Zeiger auf einen Freithread-IUnknown. Komponenten können diese Schnittstelle (über SHGetInstanceExplorer) verwenden, um zu verhindern, dass der Hostprozess beendet wird. Dieser Wert kann NULL sein. In diesem Fall wird der Prozessverweis nicht mehr für Komponenten zur Verfügung gestellt.

Rückgabewert

Keine

Bemerkungen

Es gibt eine Reihe von Komponenten, z. B. Shell-Erweiterungshandler, die als DLLs implementiert und in einem Hostprozess wie Windows Explorer (Explorer.exe) oder Windows Internet Explorer (Iexplore.exe) ausgeführt werden. Wenn der Benutzer den Hostprozess schließt, wird die Komponente in der Regel auch sofort heruntergefahren. Eine solche abrupte Beendigung kann probleme für einige Komponenten verursachen. Wenn eine Komponente beispielsweise einen Hintergrundthread verwendet, um Daten herunterzuladen oder Benutzeroberflächenfunktionen auszuführen, benötigt sie möglicherweise zusätzliche Zeit, um sich selbst sicher herunterzufahren.

Mit GetProcessReference können Komponenten, die in einem Hostprozess ausgeführt werden, einen Verweis auf den Hostprozess enthalten. GetProcessReference erhöht die Verweisanzahl des Hosts und gibt einen Zeiger auf die IUnknown-Schnittstelle des Hosts zurück. Durch das Halten dieses Verweises kann eine Komponente verhindern, dass der Hostprozess vorzeitig geschlossen wird. Nachdem die Komponente die erforderliche Verarbeitung abgeschlossen hat, sollte sie (*punk)->Release aufrufen, um den Verweis des Hosts freizugeben und das Beenden des Prozesses zuzulassen.

Hinweis Wenn GetProcessReference erfolgreich ist, muss die Komponente den Verweis des Hosts freigeben, wenn er nicht mehr benötigt wird. Andernfalls verbleiben alle dem Prozess zugeordneten Ressourcen im Arbeitsspeicher. Die IUnknown-Schnittstelle , auf die von *punk verwiesen wird, kann nur verwendet werden, um diese Referenz freizugeben. Komponenten können keine (*punk)->QueryInterface verwenden, um andere Schnittstellenzeiger anzufordern.
 
GetProcessReference ist nur erfolgreich, wenn es von einer Anwendung aufgerufen wird, die zuvor SetProcessReference aufgerufen hatte, um einen Prozessverweis festzulegen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile shlwapi.h
Bibliothek Shlwapi.lib
DLL Api-ms-win-shcore-thread-L1-1-0.dll

Weitere Informationen

SHGetInstanceExplorer

SetProcessReference

Windows-API-Sätze