Freigeben über


CmSetCallbackObjectContext-Funktion (wdm.h)

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:

[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

Siehe auch

CmRegisterCallbackEx-

CmUnRegisterCallback-

REG_CREATE_KEY_INFORMATION

REG_CREATE_KEY_INFORMATION_V1

RegistryCallback-