次の方法で共有


SerCx2PioTransmitCreate 関数 (sercx.h)

SerCx2PioTransmitCreate メソッドは、PIO 送信オブジェクトを作成します。このオブジェクトは、シリアル フレームワーク拡張機能 (SerCx2) のバージョン 2 が PIO 送信トランザクションの実行に使用します。

構文

NTSTATUS SerCx2PioTransmitCreate(
  [in]           WDFDEVICE                   Device,
  [in]           PSERCX2_PIO_TRANSMIT_CONFIG PioTransmitConfig,
  [in, optional] PWDF_OBJECT_ATTRIBUTES      Attributes,
  [out]          SERCX2PIOTRANSMIT           *PioTransmit
);

パラメーター

[in] Device

シリアル コントローラーを表すフレームワーク デバイス オブジェクトへの WDFDEVICE ハンドル。 シリアル コントローラー ドライバーは、EvtDriverDeviceAdd コールバック関数でこのオブジェクトを作成しました。 詳細については、「SerCx2InitializeDevice」を参照してください。

[in] PioTransmitConfig

SERCX2_PIO_TRANSMIT_CONFIG 構造体へのポインター。 このメソッドを呼び出す前に、呼び出し元は SERCX2_PIO_TRANSMIT_CONFIG_INIT 関数を呼び出して構造体を初期化する必要があります。 この構造体には、シリアル コントローラー ドライバーによって実装されるイベント コールバック ルーチンのセットへのポインターが含まれています。 SerCx2 はこれらの関数を呼び出して PIO 送信トランザクションを実行します。

[in, optional] Attributes

新しい PIO 送信オブジェクトに割り当てる属性を記述する WDF_OBJECT_ATTRIBUTES 構造体へのポインター。 このメソッドを呼び出す前に、呼び出し元は WDF_OBJECT_ATTRIBUTES_INIT 関数を呼び出して構造体を初期化する必要があります。 このパラメーターは省略可能であり、シリアル コントローラー ドライバーがオブジェクトに属性を割り当てる必要がない場合は、WDF_NO_OBJECT_ATTRIBUTESとして指定できます。 詳細については、「解説」を参照してください。

[out] PioTransmit

このメソッドが新しく作成した PIO 送信オブジェクトに SERCX2PIOTRANSMIT ハンドルを書き込む場所へのポインター。 SerCx2 とシリアル コントローラー ドライバーは、このオブジェクトを参照する後続の呼び出しでこのハンドルを使用します。

戻り値

このメソッドは、呼び出しが成功した場合にSTATUS_SUCCESSを返します。 考えられるエラー戻り値には、次の状態コードが含まれます。

リターン コード 形容
STATUS_INVALID_DEVICE_REQUEST
PIO 送信オブジェクトは、前の SerCx2PioTransmitCreate 呼び出しから既に存在します。
STATUS_INFO_LENGTH_MISMATCH
ConfigSize 値が sizeof(SERCX2_PIO_TRANSMIT_CONFIG) 等しくありません。
STATUS_INVALID_PARAMETER
実装されているコールバック関数の指定された組み合わせが無効です。 ドライバーは、EvtSerCx2PioTransmitWriteBufferEvtSerCx2PioTransmitEnableReadyNotification、および EvtSerCx2PioTransmitCancelReadyNotification 関数 実装する必要があります。 ドライバーは、EvtSerCx2PioTransmitDrainFifoEvtSerCx2PioTransmitCancelDrainFifo、および EvtSerCx2PioTransmitPurgeFifo 関数を実装する必要があります。
STATUS_INSUFFICIENT_RESOURCES
要求された操作を実行するために使用できるリソースが不足しています。

備考

シリアル コントローラー ドライバーは、PIO 送信オブジェクトを作成するには、このメソッドを呼び出します。 SerCx2 はこのオブジェクトを使用して PIO 送信トランザクションを実行します。これは、プログラムされた I/O (PIO) を使用して送信されるシリアル コントローラーにデータを書き込むトランザクションです。

通常、シリアル コントローラー ドライバーは、EvtDriverDeviceAdd 関数から SerCx2PioTransmitCreate 呼び出します。 ドライバーは、SerCx2InitializeDevice メソッドを正常に呼び出した後にのみ、このメソッドを呼び出す必要があります。

オプションとして、シリアル コントローラー ドライバーは、Attributes パラメーターを使用して PIO 送信オブジェクトのコンテキストを作成し、EvtCleanupCallback へのポインターを提供し、EvtDestroyCallback 関数を してオブジェクトを削除する準備を行うことができます。 詳細については、WDF_OBJECT_ATTRIBUTESを参照してください。

属性 パラメーターが WDF_OBJECT_ATTRIBUTES 構造体を指している場合、呼び出し元は、WDF_OBJECT_ATTRIBUTES_INIT 初期化関数が ParentObjectExecutionLevel、およびこの構造体の SynchronizationScope メンバーに書き込む値を上書きしてはなりません。

PIO 送信オブジェクトの作成の詳細については、SERCX2PIOTRANSMITを参照してください。 PIO 送信操作の詳細については、「SerCx2 PIO-Transmit Transactions」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 8.1以降で使用できます。
ターゲット プラットフォーム の 万国
ヘッダー sercx.h
IRQL <= DISPATCH_LEVEL

関連項目

EvtCleanupCallback を する

EvtDestroyCallback の

EvtDriverDeviceAdd の

SERCX2PIOTRANSMIT

SERCX2_PIO_TRANSMIT_CONFIG

SERCX2_PIO_TRANSMIT_CONFIG_INIT

SerCx2InitializeDevice の

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT