Метод IWDFDevice::SetPnpState (wudfddi.h)
[Предупреждение: UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. В UMDF 1 новые функции не добавляются, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе начало работы с UMDF.]
Метод SetPnpState включает или отключает (или задает состояние по умолчанию) указанное свойство Plug and Play (PnP) устройства.
Синтаксис
void SetPnpState(
[in] WDF_PNP_STATE State,
[in] WDF_TRI_STATE Value
);
Параметры
[in] State
WDF_PNP_STATE типизированное значение, определяющее свойство PnP для задания.
[in] Value
WDF_TRI_STATE типизированное значение, определяющее способ задания свойства PnP, указанного в state . В следующей таблице показаны возможные значения значения Значения.
Значение | Значение |
---|---|
WdfUseDefault (0) | Задайте для свойства PnP состояние по умолчанию. |
WdfFalse (1) | Отключите свойство PnP. |
WdfTrue (2) | Включите свойство PnP. |
Возвращаемое значение
None
Remarks
Прежде чем свойство PnP, заданное SetPnpState , может вступить в силу, драйвер должен вызвать метод IWDFDevice::CommitPnpState .
Примеры
В следующем примере кода показано, как указать, что в результате запроса произошел сбой устройства.
VOID
CUmdfHidDevice::OnCompletion(
__in IWDFIoRequest* WdfRequest,
__in IWDFIoTarget* /* WdfTarget */,
__in IWDFRequestCompletionParams* WdfCompletionParams,
__in PVOID /* Context */
)
{
ULONG_PTR bytesRead;
if (!SUCCEEDED(WdfCompletionParams->GetCompletionStatus()))
{
m_WdfDevice->SetPnpState(WdfPnpStateFailed, WdfTrue);
m_WdfDevice->CommitPnpState();
return;
}
// Lock the device to prevent files from closing.
m_WdfDevice->AcquireLock();
// Retrieve the number of bytes that were read.
bytesRead = WdfCompletionParams->GetInformation();
// Process the reports.
ProcessInputReports((PBYTE) m_ReadMemory->GetDataBuffer(NULL), bytesRead);
m_WdfDevice->ReleaseLock();
// Release the request.
m_InterruptReadRequest = NULL;
WdfRequest->DeleteWdfObject();
// Send a new request.
SendInterruptPipeRead();
}
Требования
Требование | Значение |
---|---|
Дата окончания поддержки | Недоступно в UMDF 2.0 и более поздних версиях. |
Целевая платформа | Персональный компьютер |
Минимальная версия UMDF | 1.5 |
Верхняя часть | wudfddi.h (включая Wudfddi.h) |
DLL | WUDFx.dll |