Поделиться через


Метод 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

См. также раздел

IWDFDevice

IWDFDevice::CommitPnpState

IWDFDevice::GetPnpState

WDF_PNP_STATE