Funzione WdfPdoRequestEject (wdfpdo.h)
[Si applica solo a KMDF]
Il metodo WdfPdoRequestEject informa il framework che un dispositivo specificato sta per essere espulso dalla sua stazione di ancoraggio.
Sintassi
void WdfPdoRequestEject(
[in] WDFDEVICE Device
);
Parametri
[in] Device
Handle per un oggetto dispositivo framework che rappresenta l'oggetto dispositivo fisico (PDO) del dispositivo.
Valore restituito
nessuno
Osservazioni
Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.
Un autista del bus può chiamare WdfPdoRequestEject o WdfChildListRequestChildEject per segnalare che il driver ha rilevato un tentativo di espellere uno dei dispositivi figlio enumerati dalla stazione di ancoraggio del dispositivo. Ad esempio, il driver potrebbe rilevare che un utente ha premuto un pulsante di espulsione.
Se l'oggetto dispositivo framework per il PDO del dispositivo è disponibile, il driver può chiamare WdfPdoRequestEject. Se il driver usa l'enumerazione dinamica del bus e se la descrizione di identificazione del dispositivo è disponibile, il driver può chiamare WdfChildListRequestChildEject.
Per altre informazioni su WdfPdoRequestEject e WdfChildListRequestChildEject, vedere Supporto di dispositivi eiettabili.
Esempio
Nell'esempio di codice seguente viene eseguita una ricerca in un elenco di dispositivi figlio in modo che corrisponda a un numero di serie specificato. Quando l'esempio trova l'elemento figlio corretto, chiama WdfPdoRequestEject per indicare che l'elemento figlio viene espulso. Questo esempio è stato tratto dal driver dell'autobus di esempio Tostapane e semplificato.
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);
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Intestazione | wdfpdo.h (include Wdf.h) |
Libreria | Wdf01000.sys (vedere Controllo delle versioni della libreria framework). |
IRQL | <= DISPATCH_LEVEL |
Regole di conformità DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |