Condividi tramite


Metodo IWDFObject::AssignContext (wudfddi.h)

[Avviso: UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Non vengono aggiunte nuove funzionalità a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2. Per altre informazioni, vedi Introduzione a UMDF.]

Il metodo AssignContext registra un contesto e una funzione di callback di pulizia fornita dal driver per l'oggetto.

Sintassi

HRESULT AssignContext(
  [in, optional] __drv_aliasesMem IObjectCleanup *pCleanupCallback,
  [in, optional] __drv_aliasesMem void           *pContext
);

Parametri

[in, optional] pCleanupCallback

Puntatore all'interfaccia IObjectCleanup che contiene la funzione di callback di pulizia, che esegue operazioni di pulizia per l'oggetto se non è valido. Questo parametro è facoltativo. Il driver può passare NULL se il driver non richiede la notifica quando l'oggetto viene pulito.

[in, optional] pContext

Puntatore al contesto da registrare. NULL è un contesto valido.

Valore restituito

AssignContext restituisce S_OK se l'operazione ha esito positivo. In caso contrario, questo metodo restituisce uno dei codici di errore definiti in Winerror.h.

Osservazioni

Un driver chiama AssignContext per registrare un contesto e richiedere la notifica quando l'oggetto diventa non valido. In una chiamata AssignContext, il driver passa un puntatore all'interfaccia IObjectCleanup nell'interfaccia pCleanupCallback per registrare IObjectCleanup. Si noti che il framework contiene internamente un riferimento all'interfaccia IObjectCleanup fornito mentre l'oggetto è valido. Quando l'oggetto non è valido, il framework chiama il metodo IObjectCleanup::OnCleanup per notificare al driver. Il framework rilascia automaticamente il riferimento al IObjectCleanup fornito dopo aver chiamato IObjectCleanup::OnCleanup.

In qualsiasi momento, può esistere un solo contesto associato a ogni istanza dell'oggetto. I tentativi di registrazione di contesti aggiuntivi hanno esito negativo.

Un contesto può essere associato solo a un oggetto in uno stato valido. Ad esempio, un tentativo di associare un contesto a un oggetto in fase di eliminazione non riesce.

Poiché il contesto non è un'interfaccia COM (Component Object Model), il driver non deve trattare il contesto come tale. Ad esempio, il driver non può chiamare il metodo AddRef nel contesto.

Il metodo IWDFObject::RetrieveContext può essere usato per recuperare il contesto registrato in precedenza tramite AssignContext.

Esempi

Per un esempio di codice su come usare il metodo AssignContext, vedere IWDFIoTarget::FormatRequestForWrite.

Fabbisogno

Requisito Valore
Fine del supporto Non disponibile in UMDF 2.0 e versioni successive.
piattaforma di destinazione Desktop
versione minima di UMDF 1.5
intestazione wudfddi.h (include Wudfddi.h)
dll WUDFx.dll

Vedere anche

IObjectCleanup

IObjectCleanup::OnCleanup

IWDFObject

IWDFObject::RetrieveContext