Condividi tramite


Più contesti PDP

Scenari di utilizzo

Le app UWP mobile broadband possono sfruttare più contesti PDP (Packet Data Protocol) per attivare un contesto PDP speciale e specificare regole per instradare il traffico dei dati. Queste app possono creare regole per destinazioni specifiche o per tutto il traffico dei dati.

Quando l'app mobile broadband deve scambiare dati con la rete, controlla le reti disponibili e connesse. Se l'app mobile broadband ha una regola speciale per una di queste reti, usa l'API gestione connessione per aprire un contesto PDP speciale. Se la connessione ha esito positivo, il contesto PDP fornisce regole di routing per questa connessione e trasferisce i dati usando le API di rete. L'app mobile broadband deve ripetere questa operazione se riceve l'evento NetworkStatusChanged per verificare se le connessioni sono state modificate e se è necessario aprire un contesto PDP per la nuova connessione.

È possibile usare più contesti PDP per abilitare i servizi Premium.

  • Fatturazione differenziata: è possibile variare i dati o le restrizioni di fatturazione usando più contesti PDP. Ad esempio, Contoso è un operatore di telefonia mobile che ha sviluppato un'app di backup dei dati per i clienti. In qualità di operatore di telefonia mobile, Contoso potrebbe creare più contesti PDP e consentire ai sottoscrittori Premium di usare l'app gratuitamente. Tutti gli altri sottoscrittori vengono addebitati separatamente per usarlo.

  • Rich Communication Services : un'iniziativa globale creata dall'associazione GSM per fornire servizi di comunicazione avanzati, ad esempio un telefono avanzato, una messaggistica avanzata e chiamate arricchite. Servizi di comunicazione avanzati offrono interoperabilità tra operatori di telefonia mobile e offrono nuovi modi per usare asset e funzionalità esistenti per offrire servizi di comunicazione innovativi e di alta qualità.

  • Connettività sponsorizzata: consente agli utenti di accedere a un tipo specifico di contenuto senza intaccare il consumo dei loro dati mensili. Il provider di contenuti effettua un accordo per rimborsare l'operatore di telefonia mobile pagandoli direttamente, effettuando una trattativa di condivisione dei ricavi o un altro accordo commerciale.

  • Hotspot personale: alcuni operatori di telefonia mobile applicano tariffe diverse quando la connessione viene usata come hotspot personale. È possibile usare più contesti PDP per distinguere tra i due.

Per altre informazioni, vedere Sviluppo di app con più contesti PDP.

Flusso primario

L'app attiva contesti PDP aggiuntivi:

Diagramma che mostra il processo di un'app che attiva contesti PDP aggiuntivi.

Inizializzazione aggiuntiva di NetAdapter

Diagramma che illustra il processo di inizializzazione NetAdapter aggiuntivo.

Logica decisionale in WwanSvc per connessioni di contesto PDP aggiuntive

  1. Verificare e aggiornare la logica della condizione "Profilo predefinito", perché non è più applicabile.
  2. WCM non deve più usare la proprietà costo del profilo predefinito.
  3. Se la nuova richiesta di APN del contesto PDP aggiuntivo coincide con l'APN internet predefinito, disconnettere il contesto PDP aggiuntivo corrente.

diagramma di flusso che illustra la logica decisionale in WWANSVC per la connessione di connessioni di contesto PDP aggiuntive.

Test di Hardware Lab Kit (HLK)

Consultare i passaggi per l'installazione di HLK.

In HLK Studio connettersi al driver del modem cellulare del dispositivo ed eseguire il test: Win6_4.MB.GSM.Data.TestMPDP.

Guida alla risoluzione dei problemi relativi al contesto PDP multiplo

  1. I log possono essere raccolti e decodificati usando queste istruzioni: MB raccolta dei log
  2. Aprire il file di .txt in TextAnalysisTool
  3. Caricare il filtro di connettività basis

Log di esempio

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: