使用シナリオ
UWP モバイル ブロードバンド アプリでは、複数のパケット データ プロトコル (PDP) コンテキストを利用して、特殊 PDP コンテキストをアクティブ化し、データ トラフィックをルーティングする規則を指定できます。 これらのアプリでは、特定のルーティング先またはすべてのデータ トラフィックに対してルールを作成できます。
モバイル ブロードバンド アプリは、ネットワークとデータを交換する必要がある場合、使用可能なネットワークおよび接続されているネットワークを確認します。 モバイル ブロードバンド アプリにこれらのネットワークに対する特別ルールが設けられている場合は、接続マネージャー API を使用して特殊 PDP コンテキストを開きます。 この接続が正常に確立されると、PDP コンテキストは、この接続のルーティング規則を提供し、ネットワーク API を使用してデータを転送します。 モバイル ブロードバンド アプリでは、NetworkStatusChanged イベントを受信して、いずれかの接続が変更されたかどうか、および新しい接続用に PDP コンテキストを開く必要があるかどうかを確認する場合には、これを繰り返す必要があります。
複数の PDP コンテキストを使用して、プレミアム サービスを有効にできます。
差別化された課金 – 複数の PDP コンテキストを使用して、データや課金の制限を変更できます。 たとえば、Contoso は、顧客向けのデータ バックアップ アプリを開発した通信事業者です。 通信事業者として Contoso は、複数の PDP コンテキストを作成してプレミアム サブスクライバーが無料でアプリを使用できるようにしようと思えばできます。 他のすべてのサブスクライバーは、それを使用するために別途課金されます。
リッチ コミュニケーション サービス – 強化された電話帳、強化されたメッセージング、強化された通話など、豊富なコミュニケーション サービスを提供するために GSM Association によって作成されたグローバル イニシアチブ。 リッチ コミュニケーション サービスは、通信事業者間の相互運用性を実現し、既存の資産と機能を使用して高品質で革新的な通信サービスを利用できる新しい方法を提供します。
スポンサー接続 – これにより、ユーザーは毎月のデータ使用量に影響を及ぼすことなく、特定の種類のコンテンツにアクセスできます。 コンテンツ プロバイダーは、通信事業者への直接支払い、収益分配契約、またはその他業務上の取り決めにより、通信事業者に払い戻しを行う段取りを決めます。
個人用ホットスポット - 一部の通信事業者は、接続が個人用ホットスポットとして使用されている場合、別料金を請求します。 複数の PDP コンテキストを使用して、この 2 つを区別できます。
詳細については、「複数の PDP コンテキストを使用したアプリの開発」を参照してください。
プライマリ フロー
アプリは、追加の PDP コンテキストをアクティブ化します。
追加の NetAdapter の初期化
追加の PDP コンテキスト接続のための WwanSvc の決定ロジック
- "Is Default Profile" 条件ロジックは適用されなくなったため、再確認して更新します。
- WCM では、既定のプロファイルの cost プロパティは使用されなくなりました。
- 新しい追加の PDP コンテキスト APN 要求が既定のインターネット APN と一致している場合は、現在の追加の PDP コンテキストを切断します。
Hardware Lab Kit (HLK) テスト
「HLK のインストール手順」を参照してください。
HLK では、Studio はデバイスの携帯ネットワーク モデム ドライバーに接続し、テスト (Win6_4.MB.GSM.Data.TestMPDP) を実行します。
MB の 複数の PDP コンテキストのトラブルシューティング ガイド
- ログの収集とデコードは、MB 収集ログの手順で実行できます。
- TextAnalysisTool で .txt ファイルを開く
- 基本的な接続フィルターを読み込む
サンプル ログ
e 04-01 12:39:12.798 P4912 T8420 Microsoft-Windows-WWAN-NDISUIO-EVENTS WWAN NDISUIO Event: OID request sent to the driver 0 Info Microsoft-Windows-WWAN-NDISUIO-EVENTS
e 04-01 12:39:12.798 P4912 T8420 Windows Mobile Broadband Class Driver Event Provider [1] Miniport Request called Request=0xFFFFE3862EFF4A80, OID=0xE010149, OID name=OID_WWAN_MPDP RequestId=0x10F, RequestHandle=0x0, Type=1, InformationLength=32 0 Info Windows Mobile Broadband Class Driver Event Provider
w 04-01 12:39:12.798 P4912 T8420 mbbcx [ReqMgr][ReqId=0x04ad] Request created for OID_WWAN_MPDP [RequestContext=0xFFFFE386247597F0 OidRequest=0xFFFFE3862EFF4A80] SET=0x00000001(TRUE) MbbReqMgrCreateRequest requestmanager_cpp702 TRACE_LEVEL_INFORMATION
w 04-01 12:39:12.798 P4912 T8420 mbbcx [ReqFsm][ReqId=0x04ad] Transition: MbbRequestStateReady -> MbbRequestStateDispatching event=MbbRequestEventDispatch MbbReqMgrQueueEvent requestmanager_cpp1002 TRACE_LEVEL_INFORMATION
w 04-01 12:39:12.798 P4912 T8420 mbbcx [ReqMgr][Timer] MbbTimerTypeRequest already armed at 3fc53, not re-arming MbbReqMgrTimerArm requestmanager_cpp1269 TRACE_LEVEL_WARNING
w 04-01 12:39:12.798 P4912 T8420 mbbcx [ReqMgr][ReqId=0x04ad], IsPoweredRequest [0x00000001(TRUE)], IsSerialized[0x00000001(TRUE)], IsQueueEmpty[0x00000001(TRUE)], DispatchRequest [0x00000000(FALSE)] MbbReqFsmDispatching requestmanager_cpp1522 TRACE_LEVEL_INFORMATION
w 04-01 12:39:12.798 P4912 T8420 mbbcx MbxDevice::QueuePoweredRequest: WDFREQUEST (0x00001C79D4B06DB8) is sent MbxDevice::QueuePoweredRequest mbxdevice_cpp1339 TRACE_LEVEL_INFORMATION
e 04-01 12:39:12.798 P4912 T8420 Windows Mobile Broadband Class Driver Event Provider [1] Miniport REQUEST exited with status=The operation that was requested is pending completion., Request=0xFFFFE3862EFF4A80 0 Info Windows Mobile Broadband Class Driver Event Provider
w 04-01 12:39:12.808 P0004 T0376 mbbcx EvtCxPreD0Entry: previousPowerState: 3 EvtCxPreD0Entry mbxdevice_cpp1583 TRACE_LEVEL_INFORMATION
w 04-01 12:39:12.808 P0004 T0376 cxwmbclass EvtDeviceD0Entry: previousPowerState: 3 EvtDeviceD0Entry power_cpp19 TRACE_LEVEL_INFORMATION
w 04-01 12:39:12.808 P0004 T0376 usbbus Entered Enabled=1 MbbBusSetNotificationState businit_c2606 TRACE_LEVEL_INFORMATION
w 04-01 12:39:12.808 P0004 T0376 usbbus MbbUsbDeviceStartDataPipes: Entered MbbUsbDeviceStartDataPipes datapipe_c228 TRACE_LEVEL_INFORMATION
w 04-01 12:39:12.809 P0004 T0376 usbbus MbbUsbDeviceStartDataPipes: Exited MbbUsbDeviceStartDataPipes datapipe_c286 TRACE_LEVEL_INFORMATION
w 04-01 12:39:12.809 P0004 T0376 mbbcx MbxDevice::PostD0EntryPostHardwareEnabled: previousPowerState: 3 MbxDevice::PostD0EntryPostHardwareEnabled mbxdevice_cpp1933 TRACE_LEVEL_INFORMATION
e 04-01 12:39:12.810 P0004 T0376 Microsoft-Windows-NDIS Miniport {c2d9b876-8b20-4cdd-a944-044fd39a97dc}, DeviceState[0x1] Power 0 Microsoft-Windows-NDIS
e 04-01 12:39:12.812 P0004 T0376 Microsoft-Windows-NDIS Miniport {156ce913-cc77-487d-8838-4811ce860b0e}, DeviceState[0x1] Power 0 Microsoft-Windows-NDIS
e 04-01 12:39:12.813 P0004 T0376 Microsoft-Windows-NDIS Miniport {1e58668f-811b-407d-b288-e1f57a432a24}, DeviceState[0x1] Power 0 Microsoft-Windows-NDIS
e 04-01 12:39:12.815 P0004 T0376 Microsoft-Windows-NDIS Miniport {468c0f8c-df7f-4619-85fd-c24ccebdeda3}, DeviceState[0x1] Power 0 Microsoft-Windows-NDIS
w 04-01 12:39:12.815 P0004 T0376 mbbcx MbxDevice::EnableWakeReasonReporting MbxDevice::EnableWakeReasonReporting mbxdevice_cpp2099 TRACE_LEVEL_INFORMATION
w 04-01 12:39:12.815 P0004 T0376 cxwmbclass EvtDeviceDisarmWakeFromS0: The device is disarmed for wake EvtDeviceDisarmWakeFromS0 power_cpp130 TRACE_LEVEL_INFORMATION
w 04-01 12:39:12.815 P0004 T0376 mbbcx MbxDevice::DisarmWake: Start MbxDevice::DisarmWake mbxdevice_cpp1685 TRACE_LEVEL_INFORMATION
w 04-01 12:39:12.815 P0004 T0376 mbbcx [ReqMgr][ReqId=0x04ae] Internal Request created [RequestContext=0xFFFFE38624757650] MbbReqMgrCreateRequest requestmanager_cpp713 TRACE_LEVEL_INFORMATION
w 04-01 12:39:12.815 P0004 T0376 mbbcx [ReqFsm][ReqId=0x04ae] Transition: MbbRequestStateReady -> MbbRequestStateDispatching event=MbbRequestEventDispatch MbbReqMgrQueueEvent requestmanager_cpp1002 TRACE_LEVEL_INFORMATION
w 04-01 12:39:12.815 P0004 T0376 mbbcx [ReqMgr][Timer] MbbTimerTypeRequest already armed at 3fc53, not re-arming MbbReqMgrTimerArm requestmanager_cpp1269 TRACE_LEVEL_WARNING
w 04-01 12:39:12.815 P0004 T0376 mbbcx [ReqMgr][ReqId=0x04ae], IsPoweredRequest [0x00000000(FALSE)], IsSerialized[0x00000001(TRUE)], IsQueueEmpty[0x00000001(TRUE)], DispatchRequest [0x00000001(TRUE)] MbbReqFsmDispatching requestmanager_cpp1522 TRACE_LEVEL_INFORMATION
w 04-01 12:39:12.815 P0004 T0376 mbbcx [ReqFsm][ReqId=0x04ae] Transition: MbbRequestStateDispatching -> MbbRequestStateSendPending event=MbbRequestEventStart MbbReqMgrQueueEvent requestmanager_cpp1002 TRACE_LEVEL_INFORMATION
e 04-01 12:39:12.815 P0004 T0376 Windows Mobile Broadband Class Driver Event Provider Sending command with the following parameters:
Caller Request Id: 0x0
Driver Request Id: 0
Service Id: {000004ae-cc33-a289-bbbc-4f8bb6b0133e}
Command Name: REDACTED-EMBEDDED-HEXREDACTED-EMBEDDED-HEXREDACTED-EMBEDDED-HEXREDACTED-EMBEDDED-HEXBASIC_NOTIFY_DEVICE_SERVICE_UPDATES
Command Id: 19
Payload Length: 324
Payload: 0x0600000034000000640000009800000028000000C000000018000000D80000001C000000F400000034000000280100001C000000A289CC33BCBB8B4FB6B0133EC2AAE6DF140000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000F000000100000001300000014000000150000001600000017000000533FBEEB14FE44679F9033A223E56C3F050000000100000002000000030000000400000005000000E550A0C85E82479E82F710ABF4C3351F01000000010000001D2B5FF70AA148B2AA5250F15767174E0200000001000000030000003D01DCC5FEF54D050D3ABEF7058E9AAF08000000010000000300000004000000050000000600000007000000080000000A00000068223D049F6C4E0F822D28441FB72340020000000100000002000000 0 Info Windows Mobile Broadband Class Driver Event Provider
e 04-01 12:39:12.815 P0004 T0376 Windows Mobile Broadband Class Driver Event Provider for OPN Sending command MessageType: 0x3, MessageLength: 372, MessageTransactionId: 533, TotalFragments: 1, CurrentFragment: 0, ServiceId: {a289cc33-bcbb-8b4f-b6b0-133ec2aae6df}, CommandId: 19, CommandType: 1, InformationBufferLength: 324, InformationBuffer: 0x0600000034000000640000009800000028000000C000000018000000D80000001C000000F400000034000000280100001C000000A289CC33BCBB8B4FB6B0133EC2AAE6DF140000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000F000000100000001300000014000000150000001600000017000000533FBEEB14FE44679F9033A223E56C3F050000000100000002000000030000000400000005000000E550A0C85E82479E82F710ABF4C3351F01000000010000001D2B5FF70AA148B2AA5250F15767174E0200000001000000030000003D01DCC5FEF54D050D3ABEF7058E9AAF08000000010000000300000004000000050000000600000007000000080000000A00000068223D049F6C4E0F822D28441FB72340020000000100000002000000 0 Info Windows Mobile Broadband Class Driver Event Provider for OPN
w 04-01 12:39:12.815 P0004 T0376 usbbus Sending 372 bytes on control channel MbbBusSendMessageFragment businit_c1472 TRACE_LEVEL_INFORMATION
w 04-01 12:39:12.815 P0004 T0376 usbbus SetActivityIdForRequest succeeded. Set request activityId = 207b1c4a-085c-0001-270f-83205c08d601 SetActivityIdForRequest businit_c1383 TRACE_LEVEL_INFORMATION
e 04-01 12:39:12.815 P0004 T0376 Windows Mobile Broadband Class Driver Event Provider [1] Send encapsulated command MessageType=0x3, MessageLength=372, TransactionId=533, TotalFrags=1, CurrentFrag=0, ServiceId={33cc89a2-bbbc-4f8b-b6b0-133ec2aae6df}, CID=19, CommandType=1, InfoLength=324 0 Info Windows Mobile Broadband Class Driver Event Provider
w 04-01 12:39:12.815 P0004 T0376 mbbcx [Util][ReqId=0x04ae][TID=0x00000215] Pending send Fragment 00/01 MbbUtilSendMessageFragments util_cpp1269 TRACE_LEVEL_INFORMATION
w 04-01 12:39:12.815 P0000 T0000 usbbus CompletionRoutine() for request 00001C79D4105668 status=STATUS_SUCCESS SendCompletionRoutine businit_c1398 TRACE_LEVEL_INFORMATION
w 04-01 12:39:12.815 P0000 T0000 mbbcx [Util][ReqId=0x04ae][TID=0x00000215] 01/01 fragment completed with status=STATUS_SUCCESS MbbUtilSendMessageFragmentComplete util_cpp1401 TRACE_LEVEL_INFORMATION
e 04-01 12:39:12.815 P0000 T0000 Windows Mobile Broadband Class Driver Event Provider Sending command completed with status STATUS_SUCCESS. Command was sent with the following parameters: