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. Nessuna nuova funzionalità viene aggiunta 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, vedere Introduzione con 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 è valida. 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.

Commenti

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 nel parametro pCleanupCallback per registrare IObjectCleanup. Si noti che il framework contiene internamente un riferimento all'interfaccia IObjectCleanup fornita mentre l'oggetto è valido. Quando l'oggetto diventa non valido, il framework chiama il metodo IObjectCleanup::OnCleanup per notificare al driver. Il framework rilascia automaticamente il riferimento all'oggetto IObjectCleanup fornito dopo aver chiamato IObjectCleanup::OnCleanup.

In qualsiasi momento, è possibile che esista un solo contesto associato a ogni istanza dell'oggetto. I tentativi di registrare 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 che si trova nel processo di eliminazione ha esito negativo.

Poiché il contesto non è un'interfaccia COM (Component Object Model), il driver non deve considerare 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.

Esempio

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

Requisiti

   
Fine del supporto Non disponibile in UMDF 2.0 e versioni successive.
Piattaforma di destinazione Desktop
Versione UMDF minima 1.5
Intestazione wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

Vedi anche

IObjectCleanup

IObjectCleanup::OnCleanup

IWDFObject

IWDFObject::RetrieveContext