Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[ предупреждение: 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. |
Возвращаемое значение
Никакой
Замечания
Прежде чем вступить в силу состояние свойства 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 (include Wudfddi.h) |
DLL | WUDFx.dll |