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:
REG_OPEN_KEY_INFORMATION
REG_OPEN_KEY_INFORMATION_V1
[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 |