EVT_SERCX2_PIO_TRANSMIT_PURGE_FIFO コールバック関数 (sercx.h)
EvtSerCx2PioTransmitPurgeFifo イベント コールバック関数は、シリアル フレームワーク拡張機能 (SerCx2) のバージョン 2 によって呼び出され、シリアル コントローラーの送信 FIFO に残っている未送信データのバイトを破棄します。
構文
EVT_SERCX2_PIO_TRANSMIT_PURGE_FIFO EvtSercx2PioTransmitPurgeFifo;
void EvtSercx2PioTransmitPurgeFifo(
[in] SERCX2PIOTRANSMIT PioTransmit,
[in] ULONG BytesAlreadyTransmittedToHardware
)
{...}
パラメーター
[in] PioTransmit
PIO 送信オブジェクトへの SERCX2PIOTRANSMIT ハンドル。 シリアル コントローラー ドライバーは、以前にこのオブジェクトを作成するために、SerCx2PioTransmitCreate メソッドを呼び出しました。
[in] BytesAlreadyTransmittedToHardware
現在の PIO 送信トランザクション中に送信 FIFO に既に読み込まれているバイト数。 このパラメーターは、EvtSerCx2PioTransmitWriteBuffer このトランザクションの一部であるイベント コールバック関数への以前の呼び出しで転送されたすべてのバイトの合計です。
戻り値
何一つ
備考
シリアル コントローラー ドライバーは、オプションとしてこの関数を実装できます。 実装されている場合、ドライバーは、PIO 送信オブジェクトを作成する SerCx2PioTransmitCreate 呼び出しで関数を登録します。
シリアル コントローラーに送信データを保持するためのハードウェア FIFO (または同様のバッファリング メカニズム) がある場合は、ドライバーで EvtSerCx2PioTransmitPurgeFifo 関数を実装する必要があります。 ドライバーがこの関数を実装する場合は、EvtSerCx2PioTransmitDrainFifo
SerCx2 は、クライアントからの書き込み (IRP_MJ_WRITE) 要求に応答して PIO 送信トランザクションを開始します。 この要求がタイムアウトになった場合、または完了する前にキャンセルされた場合、SerCx2 は EvtSerCx2PioTransmitPurgeFifo 関数
送信 FIFO が消去された後、EvtSerCx2PioTransmitPurgeFifo 関数は、SerCx2PioTransmitPurgeFifoComplete メソッドを呼び出して、FIFO が消去されたことを SerCx2 に通知し、SerCx2 は書き込み要求を完了する必要があります。
詳細については、「SerCx2 PIO-Transmit Transactions」を参照してください。
例
EvtSerCx2PioTransmitPurgeFifo コールバック関数
たとえば、MyPioTransmitPurgeFifo
という名前の EvtSerCx2PioTransmitPurgeFifo コールバック関数を定義するには、次のコード例に示すように、EVT_SERCX2_PIO_TRANSMIT_PURGE_FIFO 関数型を使用します。
EVT_SERCX2_PIO_TRANSMIT_PURGE_FIFO MyPioTransmitPurgeFifo;
次に、次のようにコールバック関数を実装します。
_Use_decl_annotations_
VOID
MyPioTransmitPurgeFifo(
SERCX2PIOTRANSMIT PioTransmit,
ULONG BytesAlreadyTransmittedToHardware
)
{...}
EVT_SERCX2_PIO_TRANSMIT_PURGE_FIFO 関数型は、Sercx.h ヘッダー ファイルで定義されています。 コード分析ツールの実行時にエラーをより正確に識別するには、Use_decl_annotations 注釈を関数定義に追加してください。 Use_decl_annotations 注釈により、ヘッダー ファイル内の EVT_SERCX2_PIO_TRANSMIT_PURGE_FIFO 関数型に適用される注釈が確実に使用されます。 関数宣言の要件の詳細については、「KMDF ドライバーの関数ロール型を使用して関数を宣言する」を参照してください。 Use_decl_annotationsの詳細については、「関数の動作に注釈を付ける」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8.1以降で使用できます。 |
ターゲット プラットフォーム の |
デスクトップ |
ヘッダー | sercx.h |
IRQL | IRQL <= DISPATCH_LEVEL で呼び出されます。 |
関連項目
EvtSerCx2SystemDmaTransmitCancelDrainFifo の
EvtSerCx2SystemDmaTransmitDrainFifo の
SerCx2PioTransmitCreate を