IWDFDevice::SetPnpState 方法 (wudfddi.h)
[警告: UMDF 2 是最新版本的 UMDF,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 未向 UMDF 1 添加新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅使用 UMDF 入门。]
SetPnpState 方法打开或关闭 (或设置为设备指定即插即用 (PnP) 属性) 默认状态。
语法
void SetPnpState(
[in] WDF_PNP_STATE State,
[in] WDF_TRI_STATE Value
);
参数
[in] State
标识要设置的 PnP 属性 的WDF_PNP_STATE类型的值。
[in] Value
一个WDF_TRI_STATE类型的值,该值标识如何设置 State 指定的 PnP 属性。 下表显示了 Value 的可能值。
值 | 含义 |
---|---|
WdfUseDefault (0) | 将 PnP 属性设置为默认状态。 |
WdfFalse (1) | 关闭 PnP 属性。 |
WdfTrue (2) | 打开 PnP 属性。 |
返回值
无
备注
在 SetPnpState 设置的 PnP 属性的状态生效之前,驱动程序必须调用 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 |