Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die CmSetCallbackObjectContext Routine ordnet neue Kontextinformationen einem angegebenen Registrierungsobjekt und einer Rückrufroutine zu.
Syntax
NTSTATUS CmSetCallbackObjectContext(
[in, out] PVOID Object,
[in] PLARGE_INTEGER Cookie,
[in] PVOID NewContext,
[out, optional] PVOID *OldContext
);
Parameter
[in, out] Object
Ein Zeiger auf das Registrierungsschlüsselobjekt, für das der Treiber Kontextinformationen bereitstellt. Der Treiber ruft diesen Zeiger aus dem ResultObject Member einer der folgenden Strukturen ab:
REG_OPEN_KEY_INFORMATION
REG_OPEN_KEY_INFORMATION_V1
[in] Cookie
Ein Zeiger auf einen LARGE_INTEGER Wert, der die Rückrufroutine identifiziert, der den Kontext zugeordnet werden soll. Die CmRegisterCallbackEx Routine hat diesen Wert beim Registrieren der Rückrufroutine bereitgestellt.
[in] NewContext
Ein Zeiger auf treiberdefinierte Kontextinformationen.
[out, optional] OldContext
Ein Zeiger auf eine Position, die einen Zeiger auf Kontextinformationen empfängt, die der Treiber zuvor dem angegebenen Objekt und Cookie zugeordnet hat. Dieser Parameter ist optional und kann NULL-werden.
Rückgabewert
CmSetCallbackObjectContext gibt STATUS_SUCCESS oder einen anderen geeigneten NTSTATUS-typed-Wert zurück.
Bemerkungen
Die CmSetCallbackObjectContext Routine ist ab Windows Vista verfügbar.
Die RegistryCallback-Routine eines Treibers kann CmSetCallbackObjectContext- für jedes Registrierungsschlüsselobjekt aufrufen, nachdem das Objekt erstellt oder geöffnet wurde (d. a. während einer Nachbenachrichtigung für einen Erstellungsvorgang, eines geöffneten Vorgangs oder einer nachfolgenden Benachrichtigung bis zur Vorbenachrichtigung über das Schließen von Handle).
Wenn ein Treiber CmSetCallbackObjectContextaufruft, erhält die RegistryCallback-Routine des Treibers eine RegNtCallbackObjectContextObjectContextCleanup- Benachrichtigung, nachdem das Handle des Schlüsselobjekts geschlossen wurde oder nachdem der Treiber CmUnRegisterCallback aufgerufen hat, die Registrierung der RegistryCallback Routine aufzuheben. Wenn die RegistryCallback Routine diese Benachrichtigung empfängt, sollte die Routine alle Ressourcen freigeben, die sie für den Kontext des Objekts zugeordnet haben.
Wenn CmSetCallbackObjectContext- aufgerufen wird, bevor RegNtCallbackObjectContextCleanup Benachrichtigung aufgerufen wird, kann OldContext- weiterhin von RegistryCallback- verwiesen werden, die eine weitere Benachrichtigung empfängt. OldContext- sollte nicht vor RegNtCallbackObjectContextCleanup Benachrichtigung veröffentlicht werden.
Weitere Informationen zu CmSetCallbackObjectContext-- und Filterregistrierungsvorgängen finden Sie unter Filtern von Registrierungsaufrufen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar ab Windows Vista. |
Zielplattform- | Universal |
Header- | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <= APC_LEVEL |