Функция WdfPdoRequestEject (wdfpdo.h)
[Применяется только к KMDF]
Метод WdfPdoRequestEject информирует платформу о том, что указанное устройство будет извлечено из док-станции.
Синтаксис
void WdfPdoRequestEject(
[in] WDFDEVICE Device
);
Параметры
[in] Device
Дескриптор объекта устройства платформы, который представляет объект физического устройства (PDO).
Возвращаемое значение
None
Remarks
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Водитель автобуса может вызвать WdfPdoRequestEject или WdfChildListRequestChildEject , чтобы сообщить, что водитель обнаружил попытку извлечь одно из перечисленных дочерних устройств из док-станции устройства. Например, драйвер может обнаружить, что пользователь нажал кнопку извлечения.
Если объект устройства платформы для PDO устройства доступен, драйвер может вызвать WdfPdoRequestEject. Если драйвер использует динамическое перечисление шины и доступно описание идентификации устройства, драйвер может вызвать WdfChildListRequestChildEject.
Дополнительные сведения о WdfPdoRequestEject и WdfChildListRequestChildEject см. в разделе Поддержка извлекаемых устройств.
Примеры
В следующем примере кода выполняется поиск в списке дочерних устройств, чтобы найти устройство, соответствующее указанному серийному номеру. Когда пример находит правильный дочерний элемент, он вызывает WdfPdoRequestEject , чтобы указать, что дочерний элемент извлекается. Этот пример был взят из примера драйвера автобуса Тостера и упрощен.
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);
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Верхняя часть | wdfpdo.h (включая Wdf.h) |
Библиотека | Wdf01000.sys (см. раздел Управление версиями библиотеки платформы). |
IRQL | <= DISPATCH_LEVEL |
Правила соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |