Condividi tramite


Funzione WdfObjectDelete (wdfobject.h)

[Si applica a KMDF e UMDF]

Il metodo WdfObjectDelete elimina un oggetto framework e i relativi oggetti figlio.

Sintassi

void WdfObjectDelete(
  [in] WDFOBJECT Object
);

Parametri

[in] Object

Handle per l'oggetto framework.

Valore restituito

Nessuno

Osservazioni:

Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.

Nota

Le funzioni di callback chiamate in PASSIVE_LEVEL non possono eliminare oggetti timer. Per altre informazioni, vedere EVT_WDF_TIMER funzione di callback.

Dopo che un driver chiama WdfObjectDelete, l'oggetto specificato viene eliminato dopo che il conteggio dei riferimenti diventa zero.

I driver non possono chiamare WdfObjectDelete per eliminare gli oggetti framework seguenti, perché il framework gestisce sempre l'eliminazione di questi oggetti:

  • Framework child-list objects (WDFCHILDLIST)
  • Oggetti dispositivo Framework (WDFDEVICE), a meno che il driver non abbia chiamato WdfControlDeviceInitAllocate e creato un oggetto dispositivo di controllo , che a volte il driver deve eliminare
  • Oggetti driver framework (WDFDRIVER)
  • Oggetti file framework (WDFFILEOBJECT)
  • Oggetti interrupt framework (WDFINTERRUPT)
  • Oggetti coda framework (WDFQUEUE), se un oggetto rappresenta un coda di I/O predefinita o se il driver ha chiamato WdfDeviceConfigureRequestDispatching per configurare la coda per ricevere tutte le richieste di I/O di un particolare tipo
  • Oggetti pipe USB framework (WDFUSBPIPE)
  • Oggetti interfaccia USB framework (WDFUSBINTERFACE)
  • Oggetti provider WMI framework (WDFWMIPROVIDER)
  • Oggetto elenco intervallo di risorse (WDFIORESLIST)
  • Oggetto elenco di risorse (WDFCMRESLIST)
  • Oggetto elenco requisiti delle risorse (WDFIORESREQLIST)
Per un elenco completo degli oggetti framework, vedere Riepilogo degli oggetti framework.

Il metodo WdfObjectDelete può restituire prima che il framework abbia eliminato l'oggetto e i relativi oggetti figlio. L'ordine in cui il framework elimina gli oggetti figlio non è prevedibile.

Per altre informazioni su WdfObjectDelete e sulle regole di pulizia per una gerarchia di oggetti framework, vedere Ciclo di vita dell'oggetto Framework.

Il metodo WdfObjectDelete deve essere chiamato in IRQL <= DISPATCH_LEVEL. Se il driver elimina un oggetto dispositivo di controllo, WdfObjectDelete deve essere chiamato in IRQL = PASSIVE_LEVEL. Analogamente, se il driver sta eliminando un buffer comune, WdfObjectDelete deve essere chiamato in IRQL = PASSIVE_LEVEL.

Esempi

Nell'esempio di codice seguente viene eliminato un oggetto framework e i relativi oggetti figlio.

WdfObjectDelete(Object);

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
versione minima di KMDF 1.0
versione minima di UMDF 2.0
intestazione wdfobject.h (include Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL Vedere la sezione Osservazioni.
regole di conformità DDI AddPdoToStaticChildList(kmdf), ControlDeviceDeleted(kmdf), CtlDeviceFinishInitDeviceAdd(kmdf), CtlDeviceFinishInitDrEntry(kmdf), DriverCreate(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf), ReqDelete(kmdf), ReqSendFail(kmdf)

Vedere anche

WdfControlDeviceInitAllocate

WdfObjectCreare