NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES構造体 (ndis.h)
NDIS ミニポート ドライバーは、ミニポート アダプターに関連付けられている登録属性を定義する NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 構造体を設定します。
構文
typedef struct _NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES {
NDIS_OBJECT_HEADER Header;
NDIS_HANDLE MiniportAdapterContext;
ULONG AttributeFlags;
UINT CheckForHangTimeInSeconds;
NDIS_INTERFACE_TYPE InterfaceType;
} NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES, *PNDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES;
メンバー
Header
NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES構造体の型、リビジョン、およびサイズ。 このメンバーは、 NDIS_OBJECT_HEADER 構造体として書式設定されます。
ミニポート ドライバーは、ヘッダーの Type メンバーをNDIS_OBJECT_TYPE_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTESに設定する必要があります。 NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES構造体のバージョンを指定するには、ドライバーは Header の Revision メンバーを次のいずれかの値に設定する必要があります。
NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2
NDIS 6.30 の AttributeFlags フラグを追加しました。
[サイズ] メンバーを [NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2] に設定します。
NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_1
NDIS 6.0 の元のバージョン。
[サイズ] メンバーを [NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_1] に設定します。
MiniportAdapterContext
ミニポート ドライバーがその MiniportInitializeEx 関数で割り当てたコンテキスト領域へのハンドル。 ミニポート ドライバーは、このコンテキスト領域を使用して、ミニポート アダプターの状態情報を維持します。
AttributeFlags
ビットごとの OR と組み合わされたフラグのビットマスク。 NDIS ミニポート ドライバーは、次のフラグの 1 つ以上を設定する必要があります。
NDIS_MINIPORT_ATTRIBUTES_HARDWARE_DEVICE
ミニポート ドライバーが物理デバイスを直接制御する場合に設定します。 物理デバイスには、割り込み、I/O ポート、メモリ マップされた I/O、ミニポート ドライバーから要求する DMA チャネルなどのハードウェア リソースが割り当てられます MiniportInitializeEx 関数。
NDIS_MINIPORT_ATTRIBUTES_NDIS_WDM
ミニポート アダプターの下位レベルのインターフェイスが USB や IEEE 1394 などの WDM バス ドライバーである場合に設定します。この場合、ミニポート ドライバーは、I/O ポート、割り込み、メモリ マップ I/O、DMA チャネルなどのハードウェア リソースを割り当てません。 代わりに、ドライバーは、基になるバス ドライバーの WDM インターフェイスを介してデバイスと通信します。
NDIS_MINIPORT_ATTRIBUTES_BUS_MASTER
呼び出し元の NIC がバス マスター DMA デバイスである場合に設定します。
NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND
システムが低電力 (スリープ) 状態に移行する前に、NDIS がミニポート ドライバーの MiniportHaltEx 関数を呼び出さない場合に設定します。 ハードウェア保守状態に依存するドライバーでは、このフラグを設定しないでください。
NDIS_MINIPORT_ATTRIBUTES_SURPRISE_REMOVE_OK
ミニポート ドライバーがユーザー通知なしで NIC の削除を処理できるかどうかを設定します。 NDIS ドライバーは、 で突然の削除通知を受け取る MiniportDevicePnPEventNotify 関数。
NDIS_MINIPORT_ATTRIBUTES_NOT_CO_NDIS
デバイスがコネクションレス デバイスであることを示すために、接続指向デバイスとコネクションレス デバイスの両方をサポートできるミニポート ドライバーによって設定されます。
NDIS_MINIPORT_ATTRIBUTES_DO_NOT_BIND_TO_ALL_CO
TAPI サービスを提供しない CoNDIS ミニポート ドライバーによって設定されます。 NDIS_MINIPORT_ATTRIBUTES_DO_NOT_BIND_TO_ALL_CO設定すると、NDIS がミニポート ドライバーを NDIS TAPI プロキシ ドライバー (NDPROXY) にバインドできなくなります。 既定では、NDIS は、すべての CoNDIS ミニポート ドライバーに NDPROXY をバインドします。
NDIS_MINIPORT_ATTRIBUTES_CONTROLS_DEFAULT_PORT
NdisMNetPnPEvent 関数を呼び出して既定のポートをアクティブにするミニポート ドライバーによって設定されます。 NDIS_MINIPORT_ATTRIBUTES_CONTROLS_DEFAULT_PORTが設定されていない場合、既定のポートはアクティブです。 NDIS では、既定のポートがアクティブでない場合、プロトコル ドライバーをバインドしたり、フィルター モジュールをミニポート アダプターにアタッチしたりしません。
NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND
NDIS 6.30 以降では、ミニポート ドライバーが一時停止せずに低電力状態に移行できる場合、このフラグが設定されます。
このフラグの詳細については、「解説」セクションを参照してください。
NDIS_MINIPORT_ATTRIBUTES_REGISTER_BUGCHECK_CALLBACK
NDIS 6.30 ミニポート以降、このフラグが設定されていない限り、NDIS は BugCheck 中にミニポートのミニポートのミニポートShutdownEx ハンドラーを呼び出しません。 ほとんどのミニポートでは、このフラグを設定しないでください。
CheckForHangTimeInSeconds
NDIS が を呼び出すタイムアウト間隔 (秒単位) MiniportCheckForHangEx 関数。 ミニポート ドライバーが OID 要求または 2 回連続して MiniportCheckForHangEx を呼び出す送信要求に応答していない場合、NDIS はミニポート ドライバーの ミニポートResetEx 関数を呼び出すことができます。
MiniportCheckForHangEx を呼び出すときに NDIS が使用する間隔は、常に 2 秒の倍数です。 たとえば、5 秒を指定すると、間隔は約 4 秒になります。
このメンバーが 0 の場合、既定のタイムアウト間隔は 2 秒です。
InterfaceType
ミニポート アダプターの I/O バス インターフェイスの種類。 これは通常、ミニポート アダプターが接続されている I/O バスの種類です。 NDIS 6.0 では、次の値がサポートされています。
NdisInterfaceInternal
ホスト固有の内部インターフェイスを指定します。
NdisInterfaceIsa
ISA インターフェイスを指定します。
NdisInterfaceEisa
拡張 ISA (EISA) インターフェイスを指定します。 このインターフェイスの種類は、NDIS 6.0 以降のバージョンではサポートされていません。
NdisInterfaceMca
サポートされなくなった MCA バスを参照します。 このインターフェイスの種類は、NDIS 6.0 以降のバージョンではサポートされていません。
NdisInterfaceTurboChannel
Turbo チャネル インターフェイスを指定します。
NdisInterfacePci
周辺機器コンポーネント相互接続 (PCI) インターフェイスを指定します。
NdisInterfacePcMcia
パーソナル コンピューター メモリ カード国際協会 (PC カード) インターフェイスを指定します。
NdisInterfaceCBus
CBus を指定します。
NdisInterfaceMPIBus
MPIBus を指定します。
NdisInterfaceMPSABus
MPSABus を指定します。
NdisInterfaceProcessorInternal
プロセッサ内部バスを指定します。
NdisInterfaceInternalPowerBus
内部電源バスを指定します。
NdisInterfacePNPISABus
PNPISABus を指定します。
NdisInterfacePNPBus
PNPBus を指定します。
このパラメーターは中間ドライバーには関係ありません。このメンバーには 0 を指定する必要があります。
注釈
ミニポート ドライバーは、 の MiniportAttributes パラメーター内のNDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES構造体へのポインターを渡します。 NdisMSetMiniportAttributes 関数。 ミニポート ドライバーは、初期化中にミニポートInitializeEx 関数から NdisMSetMiniportAttributes を呼び出します。
ミニポート ドライバーは、 ミニポートInitializeEx 内でできるだけ早くNDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTESで属性を設定する必要があります。 これらの属性の設定は必須です。
NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND フラグ
NDIS は、基になるミニポート アダプターが D1、D2、または D3 の低電力 状態に移行 する前に、ミニポート ドライバーにOID_PNP_SET_POWERの OID 要求を発行します。 ドライバーは、この OID を処理するときに、下位の電源状態への移行のミニポート アダプターを準備する必要があり、保留中の受信パケットの表示の完了を待つ必要はありません。場合によっては、NDIS がミニポート ドライバーに OID_PNP_SET_POWER の OID 要求を発行する前に、NDIS はミニポート ドライバーの MiniportPause 関数を呼び出します。次に説明します。
- NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND フラグが設定されていない場合、NDIS は、ドライバーに対してOID_PNP_SET_POWERの OID 要求が発行される前に、ミニポート ドライバーの MiniportPause 関数を呼び出します。 MiniportPause 呼び出しのコンテキスト内で、ドライバーは保留中の受信パケット表示の完了を待機する必要があります。
-
NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND フラグが設定されている場合、NDIS は、ドライバーに対してOID_PNP_SET_POWERの OID 要求が発行される前に、ミニポート ドライバーの MiniportPause 関数を呼び出しません。 ミニポート ドライバーは、OID 要求を処理するときに、低電力状態への移行のミニポート アダプターを準備するときに、以前に一時停止されていたと想定する必要があります。
メモ これに対する例外は、NDIS 6.20 以前のバージョンの NDIS をサポートするプロトコルまたはフィルター ドライバーがミニポート アダプターにバインドまたはアタッチされている場合に発生します。 この場合、NDIS は、ミニポート ドライバーがNDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND フラグを設定するかどうかに関係なく、ミニポート ドライバーのミニポートPause 関数を呼び出します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.0 以降でサポートされています。 |
Header | ndis.h (Ndis.h を含む) |
こちらもご覧ください
ミニポート アダプターの Check-for-Hang 操作とリセット操作
MiniportDevicePnPEventNotify