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 で定義されているエラー コードのいずれかを返します。

注釈

ドライバーは、デバイスに必要な割り込みベクトルごとに CreateInterrupt を 1 回呼び出す必要があります。 デバイスがメッセージシグナル割り込み (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
Header wudfddi.h
[DLL] WUDFx.dll

こちらもご覧ください

IWDFDevice3

WUDF_INTERRUPT_CONFIG

WUDF_INTERRUPT_CONFIG_INIT