Partager via


WdfObjectDelete, fonction (wdfobject.h)

[S’applique à KMDF et UMDF]

La méthode WdfObjectDelete supprime un objet framework et ses objets enfants.

Syntaxe

void WdfObjectDelete(
  [in] WDFOBJECT Object
);

Paramètres

[in] Object

Handle à l’objet framework.

Valeur de retour

None

Remarques

Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.

Notes

Les fonctions de rappel appelées à PASSIVE_LEVEL ne peuvent pas supprimer les objets du minuteur. Pour plus d’informations, consultez EVT_WDF_TIMER fonction de rappel.

Une fois qu’un pilote appelle WdfObjectDelete, l’objet spécifié est supprimé une fois que son nombre de références devient égal à zéro.

Les pilotes ne peuvent pas appeler WdfObjectDelete pour supprimer les objets d’infrastructure suivants, car l’infrastructure gère toujours la suppression de ces objets :

  • Objets de liste enfant framework (WDFCHILDLIST)
  • Objets de périphérique framework (WDFDEVICE), sauf si le pilote a appelé WdfControlDeviceInitAllocate et créé un objet de périphérique de contrôle, que le pilote doit parfois supprimer
  • Objets de pilote framework (WDFDRIVER)
  • Objets de fichier framework (WDFFILEOBJECT)
  • Objets d’interruption de framework (WDFINTERRUPT)
  • Objets de file d’attente framework (WDFQUEUE), si un objet représente une file d’attente d’E/S par défaut ou si le pilote a appelé WdfDeviceConfigureRequestDispatching pour configurer la file d’attente afin de recevoir toutes les demandes d’E/S d’un type particulier
  • Objets de canal USB framework (WDFUSBPIPE)
  • Objets d’interface USB framework (WDFUSBINTERFACE)
  • Objets de fournisseur WMI framework (WDFWMIPROVIDER)
  • Objet de liste de plages de ressources (WDFIORESLIST)
  • Objet de liste de ressources (WDFCMRESLIST)
  • Objet de liste des besoins en ressources (WDFIORESREQLIST)
Pour obtenir la liste complète des objets d’infrastructure, consultez Résumé des objets framework.

La méthode WdfObjectDelete peut retourner avant que l’infrastructure n’ait supprimé l’objet et ses objets enfants. L’ordre dans lequel l’infrastructure supprime les objets enfants n’est pas prévisible.

Pour plus d’informations sur WdfObjectDelete et les règles de nettoyage d’une hiérarchie d’objets framework, consultez Cycle de vie des objets framework.

La méthode WdfObjectDelete doit être appelée à l’adresse IRQL <= DISPATCH_LEVEL. Si votre pilote supprime un objet d’appareil de contrôle, WdfObjectDelete doit être appelé à l’adresse IRQL = PASSIVE_LEVEL. De même, si votre pilote supprime une mémoire tampon commune, WdfObjectDelete doit être appelé à l’adresse IRQL = PASSIVE_LEVEL.

Exemples

L’exemple de code suivant supprime un objet framework et ses objets enfants.

WdfObjectDelete(Object);

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
Version UMDF minimale 2.0
En-tête wdfobject.h (inclure Wdf.h)
Bibliothèque Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF)
IRQL Consultez la section Notes.
Règles de conformité DDI AddPdoToStaticChildList(kmdf),ControlDeviceDeleted(kmdf), CtlDeviceFinishInitDeviceAdd(kmdf), CtlDeviceFinishInitDrEntry(kmdf), DriverCreate(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), MemAfterReqCompletedIntIodf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf), ReqDelete(kmdf), ReqSendFail(kmdf)

Voir aussi

WdfControlDeviceInitAllocate

WdfObjectCreate