SerCx2InitializeDeviceInit 関数 (sercx.h)
SerCx2InitializeDeviceInit メソッドを使用すると、シリアル フレームワーク拡張機能 (SerCx2) のバージョン 2 で、シリアル コントローラーのフレームワーク デバイス オブジェクトの作成時に、拡張機能固有のプロパティをドライバー フレームワークに登録できます。
構文
NTSTATUS SerCx2InitializeDeviceInit(
[in, out] PWDFDEVICE_INIT DeviceInit
);
パラメーター
[in, out] DeviceInit
WDFDEVICE_INIT構造体へのポインター。これは、カーネル モード ドライバー フレームワーク (KMDF) がフレームワーク デバイス オブジェクトの作成に使用する情報を格納する不透明な構造です。 シリアル コントローラー ドライバーは、ドライバーの EvtDriverDeviceAdd コールバック関数への入力パラメーターとして、この構造体へのポインターを受け取ります。
戻り値
SerCx2InitializeDeviceInit は、呼び出しが成功した場合にSTATUS_SUCCESSを返します。 考えられるエラーの戻り値には、次の状態コードが含まれます。
リターン コード | 説明 |
---|---|
|
メソッドが間違った IRQL で呼び出されたか、 DeviceInit パラメーターが NULL です。 |
|
要求された操作を実行するために使用できるリソースが不足しています。 |
注釈
シリアル コントローラー ドライバーは、シリアル コントローラーの WDFDEVICE オブジェクトを作成する前に、 EvtDriverDeviceAdd コールバック関数からこのメソッドを呼び出す必要があります。
SerCx2InitializeDeviceInit は、拡張機能固有の情報をドライバーの WDFDEVICE_INIT 構造体にアタッチします。 この情報により、SerCx2 はシリアル コントローラー ドライバーに代わって特定のアクションを実行できます。 たとえば、SerCx2 は、クライアントがシリアル コントローラーに送信する I/O 要求を受信します。
シリアル コントローラー ドライバーは、シリアル コントローラーを表すフレームワーク デバイス オブジェクトを作成する前、および SerCx2InitializeDevice メソッドを呼び出してデバイス オブジェクトの初期化を完了する前に 、SerCx2InitializeDeviceInit を呼び出す必要があります。 ドライバーは、 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以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | sercx.h |
IRQL | PASSIVE_LEVEL |