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 |