EVT_SERCX2_PIO_TRANSMIT_ENABLE_READY_NOTIFICATION コールバック関数 (sercx.h)
EvtSerCx2PioTransmitEnableReadyNotification イベント コールバック関数は、シリアル フレームワーク拡張機能 (SerCx2) のバージョン 2 によって呼び出され、シリアル コントローラー の転送 FIFO が追加のデータを受け入れる準備ができたときに、シリアル コントローラー ドライバーが SerCx2 に通知できるようにします。
構文
EVT_SERCX2_PIO_TRANSMIT_ENABLE_READY_NOTIFICATION EvtSercx2PioTransmitEnableReadyNotification;
void EvtSercx2PioTransmitEnableReadyNotification(
[in] SERCX2PIOTRANSMIT PioTransmit
)
{...}
パラメーター
[in] PioTransmit
PIO 送信オブジェクトへの SERCX2PIOTRANSMIT ハンドル。 シリアル コントローラー ドライバーは、以前にこのオブジェクトを作成するために、SerCx2PioTransmitCreate メソッドを呼び出しました。
戻り値
何一つ
備考
シリアル コントローラー ドライバーでは、この関数を実装する必要があります。 ドライバーは、PIO 送信オブジェクトを作成する SerCx2PioTransmitCreate 呼び出しで関数を登録します。
PIO 送信トランザクションの準備完了通知が有効になっている場合、シリアル コントローラー ドライバーは、SerCx2PioTransmitReady メソッドを呼び出して、シリアル コントローラー ハードウェアの送信 FIFO が追加のデータを受け入れる準備ができていることをドライバーが検出したときに SerCx2 に通知する必要があります。 準備完了通知が有効になっているときに送信 FIFO がデータを受け入れる準備ができた場合、ドライバーはすぐにこのメソッドを呼び出して SerCx2 に通知します。
PIO 送信トランザクションの準備完了通知は、ワンショット通知です。 SerCx2 に準備完了通知を送信した後、シリアル コントローラー ドライバーは、SerCx2 が EvtSerCx2PioTransmitEnableReadyNotification 関数を呼び出して別の通知を有効にするまで、それ以上通知を送信しません。
EvtSerCx2PioTransmitWriteBuffer 関数呼び出し
通常、EvtSerCx2PioTransmitEnableReadyNotification 関数を使用すると、シリアル コントローラーの送信 FIFO でさらに多くのデータを受け入れる準備ができたときに発生する割り込みが可能になります。 この割り込みに応答して、シリアル コントローラー ドライバーは SerCx2PioTransmitReady
一度に保留中の通知は複数ありません。 準備完了通知が既に有効になっている場合、SerCx2 は EvtSerCx2PioTransmitEnableReadyNotification 関数を呼び出しません。
SerCx2 は、準備完了通知が有効になっているときに、EvtSerCx2PioTransmitWriteBuffer 関数を呼び出すことはありません。
保留中の準備完了通知は、関連付けられている書き込み要求がタイムアウトになった場合、または取り消された場合に取り消すことができます。 PIO 送信トランザクションの準備完了通知を取り消すために、SerCx2 はイベント コールバック関数 evtSerCx2PioTransmitCancelReadyNotification
詳細については、「SerCx2 PIO-Transmit Transactions」を参照してください。
例
コールバック関数 EvtSerCx2PioTransmitEnableReadyNotification
たとえば、
EVT_SERCX2_PIO_TRANSMIT_ENABLE_READY_NOTIFICATION MyPioTransmitEnableReadyNotification;
次に、次のようにコールバック関数を実装します。
_Use_decl_annotations_
VOID
MyPioTransmitEnableReadyNotification(
SERCX2PIOTRANSMIT PioTransmit
)
{...}
EVT_SERCX2_PIO_TRANSMIT_ENABLE_READY_NOTIFICATION 関数型は、Sercx.h ヘッダー ファイルで定義されています。 コード分析ツールの実行時にエラーをより正確に識別するには、Use_decl_annotations 注釈を関数定義に追加してください。 Use_decl_annotations 注釈により、ヘッダー ファイル内の EVT_SERCX2_PIO_TRANSMIT_ENABLE_READY_NOTIFICATION 関数型に適用される注釈が確実に使用されます。 関数宣言の要件の詳細については、「KMDF ドライバーの関数ロール型を使用して関数を宣言する」を参照してください。 Use_decl_annotationsの詳細については、「関数の動作に注釈を付ける」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8.1以降で使用できます。 |
ターゲット プラットフォーム の |
デスクトップ |
ヘッダー | sercx.h |
IRQL | IRQL <= DISPATCH_LEVEL で呼び出されます。 |
関連項目
EvtSerCx2PioTransmitWriteBuffer の
SerCx2PioTransmitCreate を