OID_SWITCH_PORT_CREATE
Hyper-V 拡張可能スイッチのプロトコル エッジは、拡張可能スイッチ ポートの作成について拡張可能スイッチ拡張機能に通知するOID_SWITCH_PORT_CREATE のオブジェクト識別子 (OID) セット要求を発行します。
NDIS_OID_REQUEST 構造体の InformationBuffer メンバーには、 NDIS_SWITCH_PORT_PARAMETERS 構造体へのポインターが含まれています。
解説
NDIS_SWITCH_PORT_PARAMETERS 構造体の PortId メンバーは、作成通知を行う拡張可能スイッチ ポートを指定します。
拡張可能スイッチ拡張機能は、OID_SWITCH_PORT_CREATEの OID セット要求を処理するために、次のガイドラインに従う必要があります:
拡張機能は、OID 要求に関連付けられている NDIS_SWITCH_PORT_PARAMETERS 構造体を変更してはなりません。
拡張機能は、OID 要求の NDIS_STATUS_DATA_NOT_ACCEPTED を返すことによって、作成通知を拒否できます。 例えば、拡張機能が構成済みのポリシーをポートに適用するためにリソースを割り当てることができない場合、拡張機能は作成通知を拒否する必要があります。
拡張機能が他の NDIS_STATUS_Xxx エラーコードを返す場合、作成通知も拒否されます。 ただし、NDIS_STATUS_RESOURCES の返しなど、一時的なシナリオの状態コードを返すと、作成通知が再試行される可能性があります。
拡張機能が OID 要求を拒否しない場合は、要求が完了したときに状態を監視する必要があります。 拡張機能は、OID 要求が拡張可能スイッチ制御パスの基になる拡張機能によって拒否されたか、拡張可能スイッチ インターフェイスによって拒否されたかを判断するためにこれを行う必要があります。
ポート ポリシーの詳細については、 Hyper-V 拡張可能スイッチ ポリシーの管理 を参照してください。
拡張機能が NdisFOidRequest を呼び出して、この OID セット要求を転送する場合、拡張機能はこの OID 要求の完了状態を監視する必要があります。 拡張機能は、拡張可能スイッチ ドライバー スタック内の下位拡張機能がポート作成通知を拒否したかどうかを検出するためにこれを行います。
OID 要求が転送され、正常に完了すると、拡張機能は、 OID_SWITCH_PORT_TEARDOWN の OID 要求が発行されるまで、 OID_SWITCH_PORT_PROPERTY_ENUM などのポートの OID 要求を発行できます。 この OID 要求は、ポートが拡張可能スイッチからの削除プロセスを開始することを拡張機能に通知します。
拡張機能は、 OID_SWITCH_NIC_CONNECT の OID セット要求が発行され、正常に完了するまで、 NDIS_SWITCH_PORT_PARAMETERS 構造体の指定されたポートにパケットを転送できません。
注 拡張機能 は、OID_SWITCH_PORT_CREATE の OID セット要求を発行できません。
拡張可能スイッチ ポートとネットワーク アダプター接続の状態の詳細については、 Hyper-V 拡張可能スイッチ ポートとネットワーク アダプターの状態 を参照してください。
状態コードを返します
拡張機能は、OID_SWITCH_PORT_CREATE の OID セット要求を完了すると、次のいずれかの状態コードを返します。
状態コード | 説明 |
---|---|
NDIS_STATUS_DATA_NOT_ACCEPTED |
拡張機能は作成通知を拒否しました。 |
NDIS_STATUS_RESOURCES |
リソース条件が低いため、拡張機能は作成通知を拒否しました。 |
NDIS_STATUS_Xxx |
拡張機能は、他の理由で作成通知を拒否しました。 |
注: 拡張機能が OID セット要求を完了する場合は、NDIS_STATUS_SUCCESS を返す必要があります。
拡張機能が OID_SWITCH_PORT_CREATE の OID セット要求を完了しない場合、要求は拡張可能スイッチの基になるミニポート エッジによって完了します。 下位ミニポート エッジは、この OID セット要求の次の状態コードを返します。
状態コード | 説明 |
---|---|
NDIS_STATUS_SUCCESS |
OID 要求は正常に完了しました。 |
要件
バージョン |
NDIS 6.30 以降でサポートされています。 |
ヘッダー |
Ntddndis.h (Ndis.h を含む) |