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, mit der der Kontext zugeordnet werden soll. Die CmRegisterCallbackEx-Routine hat diesen Wert bereitgestellt, als Sie die Rückrufroutine registriert haben.

[in] NewContext

Ein Zeiger auf vom Treiber definierte Kontextinformationen.

[out, optional] OldContext

Ein Zeiger auf einen Speicherort, der einen Zeiger auf Kontextinformationen empfängt, die der Treiber zuvor dem angegebenen Objekt und Cookie zugeordnet hat. Dieser Parameter ist optional und kann NULL sein.

Rückgabewert

CmSetCallbackObjectContext gibt STATUS_SUCCESS oder einen anderen geeigneten NTSTATUS-typisierten Wert zurück.

Hinweise

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 Benachrichtigung nach einem Erstellungsvorgang, einem geöffneten Vorgang oder einer nachfolgenden Benachrichtigung bis zur Vorbenachrichtigung über das Schließen des Handles).

Wenn ein Treiber CmSetCallbackObjectContext aufruft, erhält die RegistryCallback-Routine des Treibers eine RegNtCallbackObjectContextCleanup-Benachrichtigung , nachdem das Handle des Schlüsselobjekts geschlossen wurde oder nachdem der Treiber CmUnRegisterCallback aufgerufen hat, um 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 hat.

Wenn CmSetCallbackObjectContext vor der RegNtCallbackObjectContextCleanup-Benachrichtigung aufgerufen wird, kann OldContext weiterhin von RegistryCallback verwiesen werden, das eine weitere Benachrichtigung empfängt. OldContext sollte nicht vor der RegNtCallbackObjectContextCleanup-Benachrichtigung freigegeben werden.

Weitere Informationen zu CmSetCallbackObjectContext und zum Filtern von Registrierungsvorgängen finden Sie unter Filtern von Registrierungsaufrufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows Vista.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Weitere Informationen

CmRegisterCallbackEx

CmUnRegisterCallback

REG_CREATE_KEY_INFORMATION

REG_CREATE_KEY_INFORMATION_V1

RegistryCallback