次の方法で共有


IWDFDevice3::CreateInterrupt メソッド (wudfddi.h)

[警告: UMDF 2 は UMDF の最新バージョンであり、UMDF 1 よりも優先されます。 すべての新しい UMDF ドライバーは、UMDF 2 を使用して記述する必要があります。 UMDF 1 には新機能が追加されておらず、Windows 10 の新しいバージョンでは UMDF 1 のサポートが制限されています。 ユニバーサル Windows ドライバーでは、UMDF 2 を使用する必要があります。 詳細については、「UMDFの概要」を参照してください。

CreateInterrupt メソッドは、フレームワーク割り込みオブジェクトを作成します。

構文

HRESULT CreateInterrupt(
  [in]  PWUDF_INTERRUPT_CONFIG Configuration,
  [out] IWDFInterrupt          **ppInterrupt
);

パラメーター

[in] Configuration

WUDF_INTERRUPT_CONFIG_INIT マクロの呼び出しによって初期化された WUDF_INTERRUPT_CONFIG 構造体へのポインター。

[out] ppInterrupt

新しい割り込みオブジェクトの IWDFInterrupt インターフェイスへのポインターを受け取るバッファーへのポインター。

戻り値

このメソッドは、操作が成功した場合にS_OKを返します。 それ以外の場合、このメソッドは Winerror.h で定義されているエラー コードの 1 つを返します。

備考

ドライバーは、デバイス 必要な割り込みベクトルごとに 1 回 CreateInterrupt を呼び出す必要があります。 デバイスがメッセージ通知割り込み (MSI) をサポートしている場合、ドライバーは、デバイスがサポートできるメッセージごとに割り込みオブジェクトを作成する必要があります。

ドライバーは通常、OnDeviceAdd コールバック関数から CreateInterrupt メソッドを呼び出しますが、IPnpCallbackHardware2::OnPrepareHardware からこのメソッド呼び出すこともできます。

プラグ アンド プレイ (PnP) マネージャーがシステム リソースをデバイスに割り当てた後、フレームワークは、ドライバーが作成した割り込みオブジェクトに、デバイスの割り当てられた割り込みリソースに関する情報を格納します。 (プラグ アンド プレイをサポートしていないドライバーは、割り込みオブジェクトを使用できません。

システムは、デバイスがサポートできる割り込みリソースをすべて割り当てない場合があります。 たとえば、ドライバーは、8 つの MSI メッセージをサポートできるデバイスの 8 つの割り込みオブジェクトを作成します。 ただし、システムによってデバイスに割り当てられるメッセージは 1 つだけです。 その場合、割り込みオブジェクトのうち 7 個は使用されません。

通常、ドライバーは割り込みオブジェクトのコンテキスト空間に、デバイス割り込みレジスタのコピーされた内容などの割り込み固有の情報を格納する必要があります。 ドライバーは、IWDFObject::AssignContext を呼び出してコンテキストを登録し、オブジェクトが無効になったときに通知を要求します。

UMDF では、Windows 8 以降でレベルによってトリガーされる割り込みがサポートされます。 Windows 8 より前のオペレーティング システムで実行されているドライバーが、OnDeviceAddでレベルによってトリガーされる割り込みを作成した場合、CreateInterrupt は、オペレーティング システムにリソースがまだ割り当てられていないために成功します。 ただし、フレームワークが後で割り込みを接続しようとすると、デバイスの起動に失敗します。

UMDF ドライバーでの割り込みの処理の詳細については、「ハードウェアへのアクセスと割り込みの処理を参照してください。

HRESULT  hr;
IWDFInterrupt* pInterrupt;
WUDF_INTERRUPT_CONFIG  interruptConfig;

WUDF_INTERRUPT_CONFIG_INIT(&interruptConfig,
                           MyInterruptIsr,
                           MyInterruptWorkItem);

hr = pDevice->Create(&interruptConfig, 
                     &pInterrupt);

必要条件

要件 価値
サポート終了 UMDF 2.0 以降では使用できません。
ターゲット プラットフォーム デスクトップ
UMDF の最小バージョン する 1.11
ヘッダー wudfddi.h
DLL WUDFx.dll

関連項目

IWDFDevice3

WUDF_INTERRUPT_CONFIG

WUDF_INTERRUPT_CONFIG_INIT