WdfPdoRequestEject, fonction (wdfpdo.h)
[S’applique uniquement à KMDF]
La méthode WdfPdoRequestEject informe l’infrastructure qu’un appareil spécifié est sur le point d’être éjecté de sa station d’accueil.
Syntaxe
void WdfPdoRequestEject(
[in] WDFDEVICE Device
);
Paramètres
[in] Device
Handle d’un objet d’appareil framework qui représente l’objet d’appareil physique (PDO) de l’appareil.
Valeur de retour
None
Remarques
Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.
Un pilote de bus peut appeler WdfPdoRequestEject ou WdfChildListRequestChildEject pour signaler que le pilote a détecté une tentative d’éjection de l’un de ses appareils enfants énumérés à partir de la station d’accueil de l’appareil. Par exemple, le pilote peut détecter qu’un utilisateur a poussé un bouton d’éjection.
Si l’objet d’appareil framework pour le PDO de l’appareil est disponible, le pilote peut appeler WdfPdoRequestEject. Si le pilote utilise l’énumération de bus dynamique et si la description d’identification de l’appareil est disponible, le pilote peut appeler WdfChildListRequestChildEject.
Pour plus d’informations sur WdfPdoRequestEject et WdfChildListRequestChildEject, consultez Prise en charge des appareils éjectables.
Exemples
L’exemple de code suivant recherche une liste d’appareils enfants pour en trouver un qui correspond à un numéro de série spécifié. Lorsque l’exemple trouve l’enfant correct, il appelle WdfPdoRequestEject pour indiquer que l’enfant est éjecté. Cet exemple a été extrait de l’exemple de pilote de bus De grille-pain et simplifié.
WDFDEVICE hChild = NULL;
NTSTATUS status = STATUS_INVALID_PARAMETER;
PPDO_DEVICE_DATA pdoData;
WdfFdoLockStaticChildListForIteration(Device);
while ((hChild = WdfFdoRetrieveNextStaticChild(
Device,
hChild,
WdfRetrieveAddedChildren
)) != NULL) {
//
// Obtain device object context space, and check the
// stored serial number.
//
pdoData = PdoGetData(hChild);
if (SerialNo == pdoData->SerialNo) {
status = STATUS_SUCCESS;
WdfPdoRequestEject(hChild);
}
}
WdfFdoUnlockStaticChildListFromIteration(Device);
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
Version KMDF minimale | 1.0 |
En-tête | wdfpdo.h (inclure Wdf.h) |
Bibliothèque | Wdf01000.sys (consultez Gestion de version de la bibliothèque d’infrastructure.) |
IRQL | <= DISPATCH_LEVEL |
Règles de conformité DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |