Condividi tramite


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:

[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

Vedere anche

CmRegisterCallbackEx

CmUnRegisterCallback

REG_CREATE_KEY_INFORMATION

REG_CREATE_KEY_INFORMATION_V1

RegistryCallback