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 set 的 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 |