次の方法で共有


NDIS_STATUS_WWAN_REGISTER_STATE

ミニポート ドライバーは、NDIS_STATUS_WWAN_REGISTER_STATE 通知を使用して、MB デバイスの登録状態への変更を MB サービスに伝達します。

ミニポート ドライバーは、この通知を使用して、要求されていないイベントを送信することもできます。

この通知には、NDIS_WWAN_REGISTRATION_STATE 構造が使用されます。

解説

デバイスの登録状態が変更されると、ミニポート ドライバーは、MB サービスがユーザーに正しい状態を反映できるように、適切な表示を送信する必要があります。

登録状態は、さまざまな理由で変更されます。 これは、MB サービスからの OID_WWAN_REGISTER_STATE に対するセット要求から直接発生する可能性があります。たとえば、WwanRegisterStateSearching から WwanRegisterStateHome への一時的な状態遷移などです。 また、プロバイダーの自動選択の場合は、ミニポート ドライバーによる自動操作が原因で発生する可能性があります。 最後に、ネットワークの可用性の変更が原因の可能性があります。たとえば、ネットワーク カバレッジが失われると、WwanRegisterStateHomeWwanRegisterStateDeregistered に遷移する可能性があります。

MB サービスの OID_WWAN_REGISTER_STATE 要求によって発生する変更を除き、ミニポート ドライバーは、基になる原因に関係なく、登録状態が変更されるたびに MB サービスに通知する必要があります。

CDMA デバイスは、MB サービスによって開始された登録と登録解除をサポートしていません。 ただし、通信事業者ネットワークの可用性または非可用性に基づいて、デバイスが開始したレジスタ状態の変更通知は、MB サービスに送信する必要があります。 CDMA デバイスは自動登録を行う必要があります。

現在の登録モード (自動または手動) に関係なく、電源投入時に自動登録を行うデバイスの場合、ミニポート ドライバーは登録成功時にレジスタ状態通知を送信する必要があります。

手動登録の場合、MB サービスは、ReadyStateWwanReadyStateInitialized であることをミニポート ドライバーが示した後にのみ登録を開始します。

ミニポート ドライバーは、セット要求に応答するときに、次のガイドラインを使用する必要があります。

  • ドライバーは、一時的な状態でセット要求に応答することはできません。 登録の一時的な状態とは、WwanRegisterStateSearching です。

  • RegisterActionWwanRegisterActionManual に設定され、ミニポート ドライバーが要求を受信したときにプロバイダーが表示されていない場合、ミニポート ドライバーはエラーコード「WWAN_STATUS_PROVIDER_NOT_VISIBLE」を返します。 手動モードの設定に失敗したことを理由に、デバイスを自動登録に切り替えることはできません。 デバイスが以前に別のネットワークに手動で登録するように設定されていた場合、この要求では、要求で指定されたネットワークに登録するようにデバイスを変更する必要があります。 要求に応答する RegisterState の値は、WwanRegisterStateDeregistered に設定する必要があります。

  • RegisterActionWwanRegisterActionManual に設定され、ミニポート ドライバーが要求されたのと同じネットワークに既に登録されている場合は、WWAN_STATUS_SUCCESS で応答する必要があります。

  • ドライバーは、セット OID_WWAN_REGISTER 要求で、要求されたデータ クラスへの登録を試みる必要があります。 要求されたデータ クラスに登録できない場合、ミニポート ドライバーは、可能な限り最高のデータ クラスに登録する必要があります。 これは、デバイスが既に他のデータ クラスを使用してプロバイダー (自動および手動登録モード) に登録されている場合にも適用されます。 データ クラスを変更しても、NDIS_STATUS_WWAN_PACKET_SERVICE 通知が発生します。

  • RegisterActionWwanRegisterActionManual に設定されていて、無線が OFF の場合、ミニポート ドライバーはデバイスを手動登録モードにプログラムし、トランザクション通知で要求を完了する必要があります。 RegisterStateWwanRegisterStateDeregistered に設定する必要があります。 無線が ON 状態に変わり、イベント通知を送信する必要がある場合、デバイスは手動登録を試みる必要があります。

  • RegisterActionWwanRegisterActionAutomatic に設定されていて、無線が OFF の場合、ミニポート ドライバーはデバイスを自動登録モードにプログラムし、トランザクション通知で要求を完了する必要があります。 RegisterStateWwanRegisterStateDeregistered に設定する必要があります。 無線が ON 状態になり、イベント通知を送信する必要がある場合、デバイスは自動登録を行う必要があります。

  • 緊急の状態登録の場合 (WwanRegisterStateDenied)、uStatus を WWAN_STATUS_SUCCESS に設定し、EmergencyModeWwanEmergencyModeOn に設定した状態で NDIS_STATUS_WWAN_READY_INFO 通知を送信する必要があります。

  • WwanRegisterStateDeregistered 状態を使用するには、ミニポート ドライバーは次のガイドラインを使用する必要があります。

    • WwanRegisterStateDeregistered は、無線が OFF になっているが、RegisterAction の要求は完了したことを MB サービスに通知するために、ミニポート ドライバーによって使用されます。

    • WwanRegisterStateDeregistered は、ネットワークが登録解除を開始したことを MB サービスに通知するために、ミニポート ドライバーによって使用されます。

    • WwanRegisterStateDeregistered は、ネットワーク カバレッジがないためにネットワークへの接続が失われたことを MB サービスに通知するために、ミニポート ドライバーによって使用されます。

  • GSM および CDMA デバイスは、PS 接続の通信事業者の可用性または非可用性を通知するために、レジスタ状態通知を送信する必要があります。 MB デバイスは、通信事業者の可用性を検出したら、適切なレジスタ状態 (WwanRegisterStateHomeWwanRegisterStateRoaming、または WwanRegisterStatePartner) のいずれかを使用したイベント通知を送信する必要があります。 通信事業者信号を失った場合、WwanRegisterStateDeregistered を使用したイベント通知を MB サービスに示す必要があります。

ミニポート ドライバーは、次の規則に従ってクエリ結果を返します。

  • 登録中にデバイスがプロバイダーにロックしようとする場合、ミニポート ドライバーは、RegisterStateWwanRegisterStateSearching として設定する必要があります。 ProviderName および RoamingText の両方のメンバーを NULL に設定する必要があります。 手動登録モードの場合、ProviderId を最後の手動登録セット要求からの ProviderId に入力する必要があります。 自動登録モードの場合は、ProviderIdNULL に設定できます。

  • ミニポート ドライバーは、登録が終了すると最終的に安定した状態に移行するため、これは一時的な状態です。たとえば、WwanRegisterStateHomeWwanRegisterStatePartner、または WwanRegisterStateRoaming は登録の成功、WwanRegisterStateDenied は緊急の状態登録を示します。

  • デバイスがプロバイダーに登録されていない場合、ミニポート ドライバーは WwanRegisterStateDeregistered を返す必要があります。 ProviderName および RoamingText の両方のメンバーを NULL に設定する必要があります。 手動登録モードの場合、ProviderId を最後の手動登録セット要求からの ProviderId に入力する必要があります。 自動登録モードの場合は、ProviderIdNULL に設定できます。

  • デバイスがホーム プロバイダーに登録されている場合、ミニポート ドライバーは、RegisterStateWwanRegisterStateHome として設定する必要があります。 ProviderId メンバーは、ホーム プロバイダー ID に設定する必要があります。 ProviderName は、ホーム プロバイダー ネットワークの名前に設定する必要があります。 RoamingText メンバーは、NULL に設定する必要があります。

  • デバイスがローミング プロバイダーに登録されている場合、ミニポート ドライバーは、プロバイダーが優先ローミング パートナーの場合は RegisterStateWwanRegisterStatePartner に、ローミング パートナーの場合は WwanRegisterStateRoaming に、それぞれ設定します。 ミニポート ドライバーが 2 つを区別しない場合は、WwanRegisterStateRoaming に値を設定する必要があります。 ProviderId メンバーは、デバイスが登録されている現在のプロバイダーのプロバイダー ID に設定する必要があります。ProviderName には、現在登録されているプロバイダー名を入力する必要があります。 RoamingText メンバーは、存在する場合はプロバイダー固有の文字列値に設定し、それ以外は NULL に設定する必要があります。

要件

バージョン

Windows 7 以降のバージョンの Windows で使用できます。

ヘッダー

Ndis.h

関連項目

NDIS_WWAN_REGISTRATION_STATE

OID_WWAN_REGISTER_STATE