次の方法で共有


UcmTcpciPortControllerStart 関数 (ucmtcpciportcontroller.h)

クライアント ドライバーがポート コントローラーのハードウェア要求を処理する準備ができたことを UcmTcpciCx クラス拡張機能に示します。

構文

NTSTATUS UcmTcpciPortControllerStart(
  UCMTCPCIPORTCONTROLLER PortControllerObject
);

パラメーター

PortControllerObject

UcmTcpciPortControllerCreateへの前回の呼び出しでクライアント ドライバーが受信したポート コントローラー オブジェクトを処理します。

戻り値

(NTSTATUS)このメソッドは、操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは適切な NTSTATUS エラー コードを返す場合があります。

リターン コード 形容
STATUS_INVALID_DEVICE_REQUEST
ポート コントローラーは既に開始状態です。
STATUS_INVALID_HANDLE
UcmTcpciPortControllerSetHardwareRequestQueue 呼び出して、ハードウェア要求キューが設定されていません。

備考

クライアント ドライバーがポート コントローラー オブジェクトの UCMPORTCONTROLLER ハンドルを受け取った後、ドライバーはこのメソッドを呼び出して、ドライバーがハードウェア要求の受信を開始できることをクラス拡張機能に通知します。 このメソッド呼び出しを使用すると、クライアント ドライバーは、ポート コントローラー オブジェクトのドライバーのコールバック関数またはポート コントローラー オブジェクトの要求を呼び出す前に、ポート コントローラー オブジェクトのフレームワーク コンテキスト空間の初期化を実行できます。 ドライバーは、ポート コントローラーが起動されるまで、UcmTcpciPortControllerAlert 呼び出したり、UcmTcpciPortControllerStop したりすることはできません。

クライアント ドライバーは、UcmTcpciPortControllerCreate を呼び出し、そのコンテキスト構造を初期化した直後に、このメソッドを呼び出します (属性 パラメーター値として WDF_OBJECT_ATTRIBUTES 構造体で指定されている場合)。 ドライバーは、UcmTcpciPortControllerStart が返 前でも、クラス拡張機能が要求を送信する可能性があることを想定する必要があります。つまり、この DDI 呼び出し内から。 UcmTcpciPortControllerStart 呼び出し中にドライバーがロックを保持していて、ハードウェア要求 (ハードウェア要求キュー コールバック) の処理中にロックを取得しようとすると、デッドロックが発生する可能性があります。

UcmTcpciPortControllerStart 呼び出して、既に Start 状態のポート コントローラー オブジェクトを起動すると、エラーが発生します。

起動時に、BIOS が既に PD コントラクトをネゴシエートしていた場合、UcmTcpciCx は接続されていない状態から開始します。

必要条件

要件 価値
サポートされる最小クライアント Windows 10
サポートされる最小サーバー Windows Server 2016
ターゲット プラットフォーム ウィンドウズ
ヘッダー ucmtcpciportcontroller.h
ライブラリ Ucmtcpcicxstub.lib
IRQL PASSIVE_LEVEL

関連項目

UcmTcpciPortControllerStop する