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 |