SerCx2InitializeDeviceInit 関数 (sercx.h)

SerCx2InitializeDeviceInit メソッドを使用すると、シリアル フレームワーク拡張機能 (SerCx2) のバージョン 2 では、シリアル コントローラーのフレームワーク デバイス オブジェクトの作成中に、ドライバー フレームワークに拡張機能固有のプロパティを登録できます。

構文

NTSTATUS SerCx2InitializeDeviceInit(
  [in, out] PWDFDEVICE_INIT DeviceInit
);

パラメーター

[in, out] DeviceInit

WDFDEVICE_INIT 構造体へのポインター。これは、カーネル モード ドライバー フレームワーク (KMDF) がフレームワーク デバイス オブジェクトの作成に使用する情報を格納する不透明な構造体です。 シリアル コントローラー ドライバーは、ドライバーの EvtDriverDeviceAdd コールバック関数への入力パラメーターとして、この構造体へのポインターを受け取ります。

戻り値

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

リターン コード 形容
STATUS_INVALID_DEVICE_REQUEST
メソッドが間違った IRQL で呼び出されたか、DeviceInit パラメーターが NULL
STATUS_INSUFFICIENT_RESOURCES
要求された操作を実行するために使用できるリソースが不足しています。

備考

シリアル コントローラー ドライバーは、シリアル コントローラーの WDFDEVICE オブジェクトを作成する前に、その EvtDriverDeviceAdd コールバック関数からこのメソッドを呼び出す必要があります。

SerCx2InitializeDeviceInit は、ドライバーの WDFDEVICE_INIT 構造体に拡張機能固有の情報をアタッチします。 この情報により、SerCx2 はシリアル コントローラー ドライバーの代わりに特定のアクションを実行できます。 たとえば、SerCx2 は、クライアントがシリアル コントローラーに送信する I/O 要求を受信します。

シリアル コントローラー ドライバーは、シリアル コントローラーを表すフレームワーク デバイス オブジェクトを作成する前に、SerCx2InitializeDeviceInit を呼び出す必要があります。また、デバイス オブジェクトの初期化を完了するには、SerCx2InitializeDevice メソッドを呼び出す前に行う必要があります。 ドライバーは、WdfDeviceCreate などのメソッドを呼び出して、デバイス オブジェクトを作成します。

SerCx2InitializeDeviceInit は、カーネル モード ドライバーとユーザー モード ドライバーの両方が SerCx2 に I/O 要求を送信できるようにする既定のセキュリティ記述子を設定します。 記述子を使用すると、アプリケーションは管理者特権で実行される場合にのみ、これらの要求を送信できます。 この記述子を指定するために、SerCx2 は次の SDDL 文字列を使用します。

"D:P(A;;GA;;;SY)(A;;GA;;;BA)(A;;GA;;;UD)" 必要に応じて、シリアル コントローラー ドライバーは、必要なセキュリティ記述子で WdfDeviceInitAssignSDDLString メソッドを呼び出すことによって、既定の設定をオーバーライドできます。 ドライバーは、SerCx2InitializeDeviceInit を呼び出した後、WdfDeviceCreate呼び出す前に、WdfDeviceInitAssignSDDLString 呼び出す必要があります。 SDDL 文字列の詳細については、「SDDL for Device Objects」を参照してください。

必要条件

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

関連項目

EvtDriverDeviceAdd の

SerCx2InitializeDevice の

WDFDEVICE_INIT

WdfDeviceCreate

WdfDeviceInitAssignSDDLString の