EVT_SERCX_WAITMASK コールバック関数 (sercx.h)
EvtSerCxWaitmask イベント コールバック関数は、待機マスク内のイベントを監視するようにシリアル コントローラーを構成します。これは、ハードウェア イベントのセットを指定するビットマスク値です。
構文
EVT_SERCX_WAITMASK EvtSercxWaitmask;
NTSTATUS EvtSercxWaitmask(
[in] WDFDEVICE Device
)
{...}
パラメーター
[in] Device
シリアル コントローラーを表すフレームワーク デバイス オブジェクトへの WDFDEVICE ハンドル。
戻り値
EvtSerCxWaitmask 関数は、呼び出しが成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合は、適切なエラー状態コードが返されます。
備考
シリアル コントローラー ドライバーは、このコールバック関数を実装します。 シリアル フレームワーク拡張機能 (SerCx) は、待機マスクが変更されたときにドライバーに通知するには、この関数を呼び出します。 この呼び出し中、EvtSerCxWaitmask 関数は、SerCxGetWaitMask メソッドを呼び出して、新しい待機マスクを取得します。 ドライバーはすぐに新しい待機マスク内のイベントの監視を開始し、以前の EvtSerCxWaitmask 呼び出しで指定された可能性がある古い待機マスクを破棄します。 新しい待機マスクが 0 の場合、ドライバーは単に古い待機マスクを破棄し、待機マスク イベントの監視を停止します。
SerCx がクライアントから IOCTL_SERIAL_SET_WAIT_MASK 要求を受信すると、SerCx の要求ハンドラーは、EvtSerCxWaitmask 関数を呼び出して、新しい待機マスクを設定します。 待機マスクで指定できるイベントの種類の詳細については、SERIAL_EV_XXXを参照してください。
EvtSerCxWaitmask 関数は、新しい待機マスク内のイベントを監視するようにシリアル コントローラー ハードウェアを構成します。 通常、この関数は、これらのイベントの割り込みを有効にします。 ハードウェアを構成した後、待機マスク内のイベントが発生するのを待たずに、関数はすぐに戻る必要があります。
その後、待機マスク内のイベントによって割り込みが発生すると、シリアル コントローラー ドライバーの ISR によって DPC 関数の実行がスケジュールされます。 この DPC 関数は、SerCxCompleteWait メソッドを呼び出して、SerCx にイベントを通知します。
最初に、クライアントがシリアル ポートへの接続を開き、最初の
EvtSerCxWaitmask コールバック関数を登録するために、コントローラー ドライバーは、EvtDriverDeviceAdd コールバック中に SerCxInitialize メソッドを呼び出します。
例
このコールバックの関数型は、次のように Sercx.h で宣言されています。
typedef NTSTATUS
EVT_SERCX_WAITMASK(
__in WDFDEVICE Device
);
EVT_SERCX_WAITMASK MyEvtSerCxWaitmask;
次に、次のようにコールバック関数を実装します。
NTSTATUS
MyEvtSerCxWaitmask(
__in WDFDEVICE Device
)
{ ... }
関数宣言の SDV 要件の詳細については、「宣言する関数を宣言する KMDF ドライバーのの関数の役割の種類を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8 以降で使用できます。 |
ターゲット プラットフォーム の |
デスクトップ |
ヘッダー | sercx.h |
IRQL | IRQL <= DISPATCH_LEVEL で呼び出されます |
関連項目
EvtDriverDeviceAdd の
SerCxGetWaitMask の