次の方法で共有


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

State が指定する PnP プロパティを設定する方法を識別する、WDF_TRI_STATE型指定された値。 次の表に、 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
Header wudfddi.h (Wudfddi.h を含む)
[DLL] WUDFx.dll

こちらもご覧ください

IWDFDevice

IWDFDevice::CommitPnpState

IWDFDevice::GetPnpState

WDF_PNP_STATE