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
構成->サイズの値が sizeof(SERCX2_CONFIG) と等しくありません。
STATUS_INVALID_PARAMETER
RequestAttributes メンバーが無効であるか、関数ポインターの一覧に必要なコールバック関数がありません。 詳細については、「解説」を参照してください。
STATUS_INSUFFICIENT_RESOURCES
要求された操作を実行するために使用できるリソースが不足しています。

注釈

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

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

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

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

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

要件

要件
サポートされている最小のクライアント Windows 8.1以降で使用できます。
対象プラットフォーム ユニバーサル
Header sercx.h
IRQL PASSIVE_LEVEL

こちらもご覧ください

EvtDriverDeviceAdd

SERCX2_CONFIG

SerCx2InitializeDeviceInit

WdfDeviceCreate

WdfDeviceInitSetRequestAttributes