Funzione CmSetCallbackObjectContext (wdm.h)
La routine CmSetCallbackObjectContext associa nuove informazioni di contesto a un oggetto del Registro di sistema e a una routine di callback specificati.
Sintassi
NTSTATUS CmSetCallbackObjectContext(
[in, out] PVOID Object,
[in] PLARGE_INTEGER Cookie,
[in] PVOID NewContext,
[out, optional] PVOID *OldContext
);
Parametri
[in, out] Object
Puntatore all'oggetto chiave del Registro di sistema per cui il driver fornisce informazioni di contesto. Il driver ottiene questo puntatore dal membro ResultObject di una delle strutture seguenti:
REG_OPEN_KEY_INFORMATION
REG_OPEN_KEY_INFORMATION_V1
[in] Cookie
Puntatore a un valore LARGE_INTEGER che identifica la routine di callback a cui associare il contesto. La routine CmRegisterCallbackEx ha fornito questo valore quando è stata registrata la routine di callback.
[in] NewContext
Puntatore alle informazioni sul contesto definite dal driver.
[out, optional] OldContext
Puntatore a una posizione che riceve un puntatore alle informazioni di contesto che il driver precedentemente associato all'oggetto e al cookie specificati. Questo parametro è facoltativo e può essere NULL.
Valore restituito
CmSetCallbackObjectContext restituisce STATUS_SUCCESS o un altro NTSTATUSvalore tipizzato appropriato.
Osservazioni
La routine CmSetCallbackObjectContext è disponibile a partire da Windows Vista.
La routine RegistryCallback di un driver può chiamare CmSetCallbackObjectContext per qualsiasi oggetto chiave del Registro di sistema dopo la creazione o l'apertura dell'oggetto, ovvero durante una post-notifica per un'operazione di creazione, un'operazione aperta o qualsiasi notifica successiva fino alla notifica preliminare della chiusura dell'handle.
Se un driver chiama CmSetCallbackObjectContext, la routine RegistryCallback del driver riceverà una notifica RegNtCallbackObjectContextCleanup dopo che l'handle dell'oggetto chiave è stato chiuso o dopo che il driver chiama CmUnRegisterCallback per annullare la registrazione della routine RegistryCallback. Quando la routine RegistryCallback riceve questa notifica, la routine deve rilasciare tutte le risorse allocate per il contesto dell'oggetto.
Se viene chiamato CmSetCallbackObjectContext prima di notifica RegNtCallbackObjectContextCleanup, è comunque possibile OldContext RegistryCallback che riceve un'altra notifica. OldContext non deve essere rilasciato prima di notifica RegNtCallbackObjectContextCleanup.
Per altre informazioni sulle operazioni CmSetCallbackObjectContext e filtro del Registro di sistema, vedere Filtrare le chiamate del Registro di sistema.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Disponibile a partire da Windows Vista. |
piattaforma di destinazione | Universale |
intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
libreria | NtosKrnl.lib |
dll | NtosKrnl.exe |
IRQL | <= APC_LEVEL |