次の方法で共有


SerCx2InitializeDevice 関数 (sercx.h)

SerCx2InitializeDevice メソッドは、シリアル コントローラーのフレームワーク デバイス オブジェクトの初期化を完了します。

構文

NTSTATUS SerCx2InitializeDevice(
  [in] WDFDEVICE      Device,
  [in] PSERCX2_CONFIG Config
);

パラメーター

[in] Device

シリアル コントローラーを表すフレームワーク デバイス オブジェクトへの WDFDEVICE ハンドル。 詳細については、「解説」を参照してください。

[in] Config

シリアル コントローラー ドライバーによって実装されるイベント コールバック関数のセットへのポインターを含む呼び出し元によって割り当てられた SERCX2_CONFIG 構造体へのポインター。 シリアル フレームワーク コントローラー (SerCx2) のバージョン 2 では、これらの関数を呼び出してシリアル コントローラーを構成し、ドライバーがサポートする I/O トランザクションの種類 (PIO、システム DMA、またはカスタム) に依存しない基本的な操作を実行します。

戻り値

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

リターン コード 形容
STATUS_INVALID_DEVICE_REQUEST
メソッドが間違った IRQL で呼び出されたか、Device パラメーターが有効な WDFDEVICE ハンドルではありません。
STATUS_INFO_LENGTH_MISMATCH
ConfigSize 値が sizeof(SERCX2_CONFIG) 等しくありません。
STATUS_INVALID_PARAMETER
RequestAttributes メンバーが無効であるか、必要なコールバック関数が関数ポインターの一覧にありません。 詳細については、「解説」を参照してください。
STATUS_INSUFFICIENT_RESOURCES
要求された操作を実行するために使用できるリソースが不足しています。

備考

このメソッドを呼び出す前に、シリアル コント ローラー ドライバーは、SerCx2InitializeDeviceInit メソッドを呼び出す必要があります。

シリアル コントローラー ドライバーは、シリアル コントローラーのフレームワーク デバイス オブジェクトを作成した後、EvtDriverDeviceAdd コールバック関数からこのメソッドを呼び出す必要があります。 ドライバーは通常、フレームワーク デバイス オブジェクトを作成し、このオブジェクトに対する WDFDEVICE ハンドルを取得するために、WdfDeviceCreate などのメソッドを呼び出します。

SerCx2 では、SERCX2_CONFIG 構造体内の 3 つの関数ポインターが必要です。 ドライバーは、EvtSerCx2PurgeFifos、evtSerCx2Control、EvtSerCx2ApplyConfig コールバック関数 実装する必要があります。 それ以外の場合、SerCx2InitializeDevice 呼び出しは失敗し、STATUS_INVALID_PARAMETERを返します。

RequestAttributes SERCX2_CONFIG 構造体のメンバーがWDF_NO_OBJECT_ATTRIBUTES以外の値に設定されている場合、ドライバーは、ParentObjectExecutionLevel、および WDF_OBJECT_ATTRIBUTES_INIT 関数によってこの構造体の メンバー に書き込まれた値を上書きしてはなりません。 それ以外の場合、SerCx2InitializeDevice 呼び出しは失敗し、STATUS_INVALID_PARAMETERを返します。

ドライバーが要求オブジェクトに使用する属性を設定する WdfDeviceInitSetRequestAttributes メソッドを呼び出す場合、この呼び出しで指定された要求属性は、SerCx2InitializeDeviceの呼び出しでドライバーが指定する要求属性 一致する必要があります。 詳細については、「SerCx2 Custom-Receive トランザクションの と serCx2 Custom-Transmit トランザクションする」を参照してください。

必要条件

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

関連項目

EvtDriverDeviceAdd の

SERCX2_CONFIG

SerCx2InitializeDeviceInit の

WdfDeviceCreate

WdfDeviceInitSetRequestAttributes