PnP および電源管理イベントを処理するための中間ドライバーの初期化
プラグ アンド プレイ (PnP) と電源管理イベントを処理するには、NDIS 中間ドライバーで次の操作を行う必要があります。
NDIS が中間ドライバーの ProtocolBindAdapterEx 関数を呼び出すと、BindParameters パラメーターは、基になるミニポート アダプターの機能を含むNDIS_PM_CAPABILITIES 構造体を指します。 電源管理機能は、次のいずれか 1 つのメンバーで報告されます。
PowerManagementCapabilities
NDIS 6.0 と NDIS 6.1 中間ドライバーの場合、このメンバーには、NDIS_PNP_CAPABILITIES 構造体内の電源管理機能が含まれています。 この構造の詳細については、「OID_PNP_CAPABILITIES」を参照してください。
注: NDIS 6.20 以降の中間ドライバーの場合、PowerManagementCapabilities メンバーは NULL に設定され、電源管理機能は PowerManagementCapabilitiesEx メンバーで報告されます。
PowerManagementCapabilitiesEx
NDIS 6.20 以降の中間ドライバーの場合、このメンバーには、NDIS_PM_CAPABILITIES 構造体内の電源管理機能が含まれています。
注: NDIS 6.0 と NDIS 6.1 の中間ドライバーの場合、PowerManagementCapabilitiesEx メンバーは NULL に設定され、電源管理機能は PowerManagementCapabilities メンバーで報告されます。
注: 基になるミニポート アダプターが電源管理イベントをサポートしていない場合、PowerManagementCapabilities と PowerManagementCapabilitiesEx メンバーは NULL に設定されます。
NDIS が NDIS 中間ドライバーでサポートされている各仮想ミニポートの MiniportInitializeEx を呼び出すと、ドライバーは、次の方法で NdisMSetMiniportAttributes を呼び出すことによって、その電源管理機能を報告します。
NDIS 中間ドライバーのバージョンに応じて、電源管理機能は、NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES の PowerManagementCapabilities メンバー (NDIS 6.0 と NDIS 6.1 中間ドライバーの場合) または PowerManagementCapabilitiesEx メンバー (NDIS 6.20 以降の中間ドライバー) で報告されます。 NDIS_BIND_PARAMETERS 構造体の PowerManagementCapabilities または PowerManagementCapabilitiesEx メンバーが NULL でない場合、中間ドライバーは次の操作を行う必要があります。
PowerManagementCapabilities (NDIS 6.0 と NDIS 6.1) または PowerManagementCapabilitiesEx (NDIS 6.20 以降) メンバーの MinMagicPacketWakeUp、MinPatternWakeUp、MinLinkChangeWakeUp メンバーの元の値を保存します。
電源管理機能を無効にするには、MinMagicPacketWakeUp、MinPatternWakeUp、MinLinkChangeWakeUp メンバーを NdisDeviceStateUnspecified に設定します。
変更された NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES 構造体のアドレスを NdisMSetMiniportAttributes への呼び出しの MiniportAttributes パラメーターとして渡します。
中間ドライバーは、NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 構造体の AttributeFlags メンバーに NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND フラグを設定する必要があります。 ドライバーは、NdisMSetMiniportAttributes への呼び出しで、MiniportAttributes パラメーターとして、この構造体のアドレスを渡す必要があります。
NDIS 中間ドライバーの初期化要件の詳細については、「仮想ミニポートの初期化」を参照してください。