UrsSetHardwareEventSupport 関数 (ursdevice.h)

新しいハードウェア イベントの報告に対するクライアント ドライバーのサポートを示します。

構文

void UrsSetHardwareEventSupport(
  [in] WDFDEVICE Device,
  [in] BOOLEAN   HardwareEventReportingSupported
);

パラメーター

[in] Device

WdfDeviceCreate の前回の呼び出しでクライアント ドライバーが取得したフレームワーク デバイス オブジェクトへのハンドル。

[in] HardwareEventReportingSupported

ハードウェア イベントのレポートのサポートを示すブール値。

TRUE は、クライアント ドライバーが UrsReportHardwareEvent を呼び出してハードウェア イベントを報告することを示します。

FALSE は、ハードウェア イベントレポートがクライアント ドライバーによって処理されないことを示します。

戻り値

なし

解説

クライアント ドライバーがハードウェア イベントを報告する前に、デュアル ロール コントローラーのクライアント ドライバーは、このメソッドを呼び出すことによってドライバーがハードウェア イベントをサポートしていることをクラス拡張機能に示す必要があります。 通常、ドライバーはドライバーの EvtDevicePrepareHardware コールバック関数で UrsSetHardwareEventSupport を呼び出します。 EvtDevicePrepareHardware が返された後、ドライバーはこのメソッドを呼び出してはなりません。 それ以外の場合、メソッドは失敗し、 ドライバー検証ツール が有効になっている場合は中断が発行されます。

特定のコントローラーの場合、クライアント ドライバーはロールの切り替え操作を実行する前にロールの検出をサポートしていない可能性があります。 その場合、クライアント ドライバーは HardwareEventReportingSupported を FALSE に設定する必要があります。 オペレーティング システムは、コントローラーの役割を管理します。

それ以外の場合、ドライバーがロール検出をサポートしている場合は、 HardwareEventReportingSupported を TRUE に設定する必要があります。 これは、クライアント ドライバーが ID ピン割り込みなどのハードウェア イベントを処理し、ロールを変更する必要があることをクラス拡張機能に報告することをクラス拡張機能に示します。 ドライバーは UrsReportHardwareEvent を呼び出すことでイベントを報告できます。


EVT_WDF_DEVICE_PREPARE_HARDWARE EvtDevicePrepareHardware;


NTSTATUS
EvtDevicePrepareHardware (
    _In_ WDFDEVICE Device,
    _In_ WDFCMRESLIST ResourcesRaw,
    _In_ WDFCMRESLIST ResourcesTranslated
    )
{
    ULONG resourceCount;
    BOOLEAN hasHardwareEventSupport;

    UNREFERENCED_PARAMETER(ResourcesRaw);


    TRY {


        resourceCount = WdfCmResourceListGetCount(ResourcesTranslated);

        ...

        // DetermineHardwareEventSupport determines support by inspecting resources.
        // Implementation not shown.
        hasHardwareEventSupport = DetermineHardwareEventSupport(ResourcesRaw);


        UrsSetHardwareEventSupport(Device, hasHardwareEventSupport);

        if (hasHardwareEventSupport) {
            UrsReportHardwareEvent(Device, UrsHardwareEventIdGround);
        }

        ... 

    } FINALLY {
    }


    return STATUS_SUCCESS;
}

要件

要件
サポートされている最小のクライアント Windows 10
サポートされている最小のサーバー Windows Server 2016
対象プラットフォーム Windows
最小 KMDF バージョン 1.15
Header ursdevice.h (Urscx.h を含む)
Library Urscxstub.lib
IRQL PASSIVE_LEVEL

こちらもご覧ください

UrsReportHardwareEvent