Re: Getting a 2nd hard disk partition to mount in CE 5.0



This sounds like a load order problem, although I've never seen this result (not mounting of 2nd partition). Drivers without an "Order" specified load in reverse order when a hive is loaded. So, first boot driver A, B, C, D would load in that order. Then when the hive is restored and used driver D, C, B, A would load in that order.

Take a good look at the debug output and the order of relevant driver loading (create a release image with KITL enabled so you can see the order of loading). Once you figure out the differences between a clean boot and a hive boot, force that order by defining "Order" values in the relevant driver settings.

Can you post your "profile" registry settings for the partitions and other relevant registry settings (like hive, IDE, etc).


Good luck,

Michel Verhagen, eMVP
Check out my blog: http://GuruCE.com/blog

GuruCE Ltd.
Microsoft Embedded Partner
http://GuruCE.com
Consultancy, training and development services.

Courteous wrote:
Hi,

I am developing an image with CE 5 with a persistent hive based registry, using an IDE hard disk with two partitions. The registry sits on the first partition, which is mounted as root. The first time the image boots (using the default registry), both partitions mount fine.

The second and following times, the second partition does not mount automatically, even though I am able to mount it manually. Deleting the hives on the hard drive gets the 2nd partition to mount again. I would like to find a way to make it mount automatically, or failing that a programmatic way to mount a partition from a C#/managed application.

This problem is in the release version only, in the debug version it seems to mount every time. It seems the part of the debug build that gets it to work is filesys.exe (I took the debug filesys.exe and put it in the release image, and that was enough to get it to work). I don't understand why though.

Switching off registry persistence (disabling PRJ_BOOTDEVICE_ATAPI, PRJ_ENABLE_FSMOUNTASROOT, PRJ_ENABLE_FSREGHIVE, and changing to Ram&Rom file system) stops the problem also.

This is on an Ampro Littleboard 800 (an X86) board. All boots hence wipe the RAM. I use a BSP released by Ampro and standard WinCE catalog items. The disk-related driver in the BSP is ichide.dll. The board uses an Intel 82801DBM ICH4-M chip, which implements IDE etc.

Below is a summary of the differences between the registries as seen by the remote registry tool, for the 1st and 2nd boots. I can't see anything obvious...

Any assistance would be appreciated.

Michael

Differences between 2nd partition mounting (first boot) and not mounting (2nd boot)

In first registry only:

[HKEY_LOCAL_MACHINE]
"Flags"=dword:00000004
"Class"=dword:00000000
"SubClass"=dword:00000000
"ProgIF"=dword:00000000
"VendorID"=dword:00000000
"DeviceID"=dword:00000000
"RevisionID"=dword:00000000
"SubVendorID"=dword:00000000
"SubSystemID"=dword:00000000
"InterfaceType"=dword:00000005
"BusNumber"=dword:00000000
"DeviceNumber"=dword:00000000
"FunctionNumber"=dword:00000000


In 2nd registry only:

[HKEY_CURRENT_USER]
"RegPersisted"=dword:00000001


This binary is different in each registry:

[HKEY_CURRENT_USER\Comm\RasBook\`Desktop @ 19200`]
"Entry"=hex:\
08,02,40,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,01,00,23,00,00,00,00,\
00,00,00,02,01,00,00,00,10,00,00,00,f0,03,c2,00,10,00,00,00,00,00,00,73,00,\
74,00,61,00,00,00,00,f0,03,c2,b0,7e,6a,81,a5,c7,24,80,b0,7e,6a,81,00,e0,03,\
c2,fa,0f,00,00,00,00,00,00,1b,ba,24,80,b0,7e,6a,81,00,10,00,00,c0,ad,6a,81,\
18,e8,02,16,b0,7e,6a,81,90,e7,02,16,00,10,00,00,00,10,00,00,6f,b5,24,80,b0,\
7e,6a,81,00,10,00,00,b0,7e,6a,81,f0,e7,02,16,bc,e7,02,16,b6,b4,24,80,b0,7e,\


************ IN FIRST REGISTRY **********


[HKEY_LOCAL_MACHINE\Comm]
"BootCount"=dword:00000001

[HKEY_LOCAL_MACHINE\Comm\PCI\E100CE1\Parms\TCPIP]
"LeaseObtainedHigh"=dword:01c8bca6
"LeaseObtainedLow"=dword:e3a69f80

[HKEY_LOCAL_MACHINE\Comm\Security\Crypto]
"Seed"=hex:\
6a,37,80,71,44,78,d4,f4,88,b8,44,b4,39,37,ff,8b,cc,a3,c6,ab

[HKEY_LOCAL_MACHINE\Comm\SecurityProviders\SCHANNEL]
"RNG"=hex:\
5e,12,ee,9a,3b,10,94,47,7b,e5,31,40,2d,50,e4,f5,1a,c1,31,0b,4b,b3,79,6a,6a,\
c8,ec,e8,86,7c,53,78

[HKEY_LOCAL_MACHINE\Services\SMBServer]
"GUID"=hex:\
c3,7e,9c,42,4c,a0,eb,8f,7b,4d,be,d4,2d,85,67,0d

*** The "Hnd" is different in each of these keys. Also "BusParent" is different in 36-39

[HKEY_LOCAL_MACHINE\Drivers\Active\09]
"Hnd"=dword:00039ee0
"Key"="Drivers\\BuiltIn\\PCCARD"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_17_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\10]
"Hnd"=dword:0003a2f0
"Name"="COM1:"
"Key"="Drivers\\BuiltIn\\Serial"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_18_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\11]
"Hnd"=dword:0003b840
"Name"="COM2:"
"Key"="Drivers\\BuiltIn\\Serial2"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_19_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\12]
"Hnd"=dword:0003cd90
"Name"="COM3:"
"Key"="Drivers\\BuiltIn\\Serial3"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_20_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\13]
"Hnd"=dword:0003cba0
"Name"="COM4:"
"Key"="Drivers\\BuiltIn\\Serial4"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_21_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\14]
"Hnd"=dword:0003f3c0
"Name"="NLD1:"
"Key"="Drivers\\BuiltIn\\NLed"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_22_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\15]
"Hnd"=dword:0003f6f0
"Name"="NDS0:"
"Key"="Drivers\\BuiltIn\\NDIS"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_1_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\16]
"Hnd"=dword:00040ca0
"Key"="Drivers\\BuiltIn\\TAPI"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_10_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\17]
"Hnd"=dword:00040db0
"Name"="WAM1:"
"Key"="Drivers\\BuiltIn\\WAPIMAN"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_11_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\18]
"Hnd"=dword:000479e0
"Name"="SIP0:"
"Key"="Drivers\\BuiltIn\\SIP"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_12_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\19]
"Hnd"=dword:00047d20
"Name"="TKT1:"
"Key"="Drivers\\BuiltIn\\TouchKit1"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_15_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\20]
"Hnd"=dword:000484b0
"Name"="TKT2:"
"Key"="Drivers\\BuiltIn\\TouchKit2"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_16_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\23]
"Hnd"=dword:00049140
"Name"="IPD0:"
"Key"="TCPIP\\IPDevice"
"ClientInfo"=dword:00000000

[HKEY_LOCAL_MACHINE\Drivers\Active\24]
"Hnd"=dword:00049450
"Name"="TCP0:"
"Key"="TCPIP\\TCPDevice"
"ClientInfo"=dword:00000000

[HKEY_LOCAL_MACHINE\Drivers\Active\27]
"Hnd"=dword:00049760
"Name"="IP60:"
"Key"="TCPIP6\\IPDevice"
"ClientInfo"=dword:00000000

[HKEY_LOCAL_MACHINE\Drivers\Active\28]
"Hnd"=dword:0004da70
"Name"="DP60:"
"Key"="TCPIP6\\DHCPV6L"
"ClientInfo"=dword:00000000

[HKEY_LOCAL_MACHINE\Drivers\Active\29]
"Hnd"=dword:00050640
"Name"="UIO1:"
"Key"="Drivers\\BuiltIn\\NDISUIO"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_4_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\30]
"Hnd"=dword:00050980
"Name"="ARS1:"
"Key"="Drivers\\BuiltIn\\autoras"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_3_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\31]
"Hnd"=dword:00050d00
"Name"="V6H1:"
"Key"="Drivers\\BuiltIn\\ipv6hlp"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_7_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\32]
"Hnd"=dword:00050b10
"Name"="NPW1:"
"Key"="Drivers\\BuiltIn\\NdisPower"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_5_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\33]
"Hnd"=dword:000510b0
"Name"="ETM1:"
"Key"="Drivers\\BuiltIn\\Ethman"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_6_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\34]
"Hnd"=dword:000513e0
"Name"="NBT1:"
"Key"="Drivers\\BuiltIn\\Netbios"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_13_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\35]
"Hnd"=dword:00051720
"Key"="Drivers\\BuiltIn\\PCI"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_0_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\36]
"Hnd"=dword:0005ed30
"Name"="WAV1:"
"Key"="Drivers\\BuiltIn\\PCI\\Instance\\ichac971"
"BusParent"=dword:00051720
"InterfaceType"=dword:00000005
"BusName"="PCI_0_31_5"

[HKEY_LOCAL_MACHINE\Drivers\Active\37]
"Hnd"=dword:0005eb70
"Name"="HCD1:"
"Key"="Drivers\\BuiltIn\\PCI\\Instance\\UHCI2"
"BusParent"=dword:00051720
"InterfaceType"=dword:00000005
"BusName"="PCI_0_29_1"

[HKEY_LOCAL_MACHINE\Drivers\Active\38]
"Hnd"=dword:00050ec0
"Name"="HCD2:"
"Key"="Drivers\\BuiltIn\\PCI\\Instance\\UHCI1"
"BusParent"=dword:00051720
"InterfaceType"=dword:00000005
"BusName"="PCI_0_29_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\39]
"Hnd"=dword:004b3f00
"Name"="HCD3:"
"Key"="Drivers\\BuiltIn\\PCI\\Instance\\ehci1"
"BusParent"=dword:00051720
"InterfaceType"=dword:00000005
"BusName"="PCI_0_29_7"

[HKEY_LOCAL_MACHINE\Drivers\Active\40]
"Hnd"=dword:004b8110
"Key"="Drivers\\BuiltIn\\ErrorReporting"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_14_0"


************ IN SECOND REGISTRY **********

[HKEY_LOCAL_MACHINE\Comm]
"BootCount"=dword:00000002

[HKEY_LOCAL_MACHINE\Comm\PCI\E100CE1\Parms\TCPIP] "LeaseObtainedHigh"=dword:01c8bca9
"LeaseObtainedLow"=dword:b3143500

[HKEY_LOCAL_MACHINE\Comm\Security\Crypto]
"Seed"=hex:\
0e,eb,6a,34,57,74,a9,6a,3f,b9,7c,49,7f,56,27,d4,59,ca,86,d3

[HKEY_LOCAL_MACHINE\Comm\SecurityProviders\SCHANNEL]
"RNG"=hex:\
b6,4e,9e,2c,f3,5e,73,b5,8d,b9,ae,ac,16,92,79,3d,e5,cc,13,95,1a,23,dd,33,c5,\
d3,ea,16,44,83,a5,8e

[HKEY_LOCAL_MACHINE\Services\SMBServer]
"GUID"=hex:\
7a,0b,5a,f3,60,81,ae,07,de,fd,20,b5,31,4d,c4,f0

*** The "Hnd" is different in each of these keys. Also "BusParent" is different in 36-39

[HKEY_LOCAL_MACHINE\Drivers\Active\09]
"Hnd"=dword:000340a0
"Key"="Drivers\\BuiltIn\\PCCARD"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_17_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\10]
"Hnd"=dword:0003a3b0
"Name"="COM1:"
"Key"="Drivers\\BuiltIn\\Serial"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_18_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\11]
"Hnd"=dword:0003b900
"Name"="COM2:"
"Key"="Drivers\\BuiltIn\\Serial2"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_19_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\12]
"Hnd"=dword:0003ce50
"Name"="COM3:"
"Key"="Drivers\\BuiltIn\\Serial3"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_20_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\13]
"Hnd"=dword:0003b7b0
"Name"="COM4:"
"Key"="Drivers\\BuiltIn\\Serial4"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_21_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\14]
"Hnd"=dword:0003f330
"Name"="NLD1:"
"Key"="Drivers\\BuiltIn\\NLed"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_22_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\15]
"Hnd"=dword:0003f660
"Name"="NDS0:"
"Key"="Drivers\\BuiltIn\\NDIS"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_1_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\16]
"Hnd"=dword:00040d90
"Key"="Drivers\\BuiltIn\\TAPI"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_10_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\17]
"Hnd"=dword:00040ea0
"Name"="WAM1:"
"Key"="Drivers\\BuiltIn\\WAPIMAN"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_11_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\18]
"Hnd"=dword:00047a20
"Name"="SIP0:"
"Key"="Drivers\\BuiltIn\\SIP"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_12_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\19]
"Hnd"=dword:00047d60
"Name"="TKT1:"
"Key"="Drivers\\BuiltIn\\TouchKit1"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_15_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\20]
"Hnd"=dword:000484f0
"Name"="TKT2:"
"Key"="Drivers\\BuiltIn\\TouchKit2"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_16_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\23]
"Hnd"=dword:00049180
"Name"="IPD0:"
"Key"="TCPIP\\IPDevice"
"ClientInfo"=dword:00000000

[HKEY_LOCAL_MACHINE\Drivers\Active\24]
"Hnd"=dword:00049490
"Name"="TCP0:"
"Key"="TCPIP\\TCPDevice"
"ClientInfo"=dword:00000000

[HKEY_LOCAL_MACHINE\Drivers\Active\27]
"Hnd"=dword:000497a0
"Name"="IP60:"
"Key"="TCPIP6\\IPDevice"
"ClientInfo"=dword:00000000

[HKEY_LOCAL_MACHINE\Drivers\Active\28]
"Hnd"=dword:0004d9a0
"Name"="DP60:"
"Key"="TCPIP6\\DHCPV6L"
"ClientInfo"=dword:00000000

[HKEY_LOCAL_MACHINE\Drivers\Active\29]
"Hnd"=dword:00050570
"Name"="UIO1:"
"Key"="Drivers\\BuiltIn\\NDISUIO"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_4_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\30]
"Hnd"=dword:000508b0
"Name"="ARS1:"
"Key"="Drivers\\BuiltIn\\autoras"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_3_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\31]
"Hnd"=dword:00050c30
"Name"="V6H1:"
"Key"="Drivers\\BuiltIn\\ipv6hlp"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_7_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\32]
"Hnd"=dword:0004b140
"Name"="NPW1:"
"Key"="Drivers\\BuiltIn\\NdisPower"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_5_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\33]
"Hnd"=dword:0004be10
"Name"="ETM1:"
"Key"="Drivers\\BuiltIn\\Ethman"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_6_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\34]
"Hnd"=dword:00051050
"Name"="NBT1:"
"Key"="Drivers\\BuiltIn\\Netbios"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_13_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\35]
"Hnd"=dword:00051390
"Key"="Drivers\\BuiltIn\\PCI"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_0_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\36]
"Hnd"=dword:0005ed00
"Name"="WAV1:"
"Key"="Drivers\\BuiltIn\\PCI\\Instance\\ichac971"
"BusParent"=dword:00051390
"InterfaceType"=dword:00000005
"BusName"="PCI_0_31_5"

[HKEY_LOCAL_MACHINE\Drivers\Active\37]
"Hnd"=dword:0005eb40
"Name"="HCD1:"
"Key"="Drivers\\BuiltIn\\PCI\\Instance\\UHCI2"
"BusParent"=dword:00051390
"InterfaceType"=dword:00000005
"BusName"="PCI_0_29_1"

[HKEY_LOCAL_MACHINE\Drivers\Active\38]
"Hnd"=dword:00051200
"Name"="HCD2:"
"Key"="Drivers\\BuiltIn\\PCI\\Instance\\UHCI1"
"BusParent"=dword:00051390
"InterfaceType"=dword:00000005
"BusName"="PCI_0_29_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\39]
"Hnd"=dword:0005d6a0
"Name"="HCD3:"
"Key"="Drivers\\BuiltIn\\PCI\\Instance\\ehci1"
"BusParent"=dword:00051390
"InterfaceType"=dword:00000005
"BusName"="PCI_0_29_7"

[HKEY_LOCAL_MACHINE\Drivers\Active\40]
"Hnd"=dword:004d8100
"Key"="Drivers\\BuiltIn\\ErrorReporting"
"BusParent"=dword:00034250
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_14_0"




.



Relevant Pages

  • Re: Ho to run CF driver before reading hive-based registry
    ... BOOT SECTION": ... so I had to rewrite the driver for it. ... The problem is now the hive-based registry. ... FileSystem Starting - starting with clean file system ...
    (microsoft.public.windowsce.platbuilder)
  • Re: ROM-only FS and persisting registry on USB HD
    ... driver and step into the code to figure out how it failed. ... PCI bus driver and its relative registry setting should be moved into BOOT ... you have to have your USB host controller's driver ...
    (microsoft.public.windowsce.platbuilder)
  • Re: Ho to run CF driver before reading hive-based registry
    ... BOOT SECTION": ... and later starts the .nb0 file from Compact Flash). ... is not located on an ordinary PCI bus, so I had to rewrite the driver ... hive-based registry to my image and adding some of the registry ...
    (microsoft.public.windowsce.platbuilder)
  • Re: Ho to run CF driver before reading hive-based registry
    ... Did you place all the registry settings related to your CF driver inside ... ; END HIVE BOOT SECTION ... The problem is now the hive-based registry. ... FileSystem Starting - starting with clean file system ...
    (microsoft.public.windowsce.platbuilder)
  • Re: FBWF and Registry Filter (Changing IP Address)
    ... Looks like last night I wasn't careful in playing with the driver load order and missed the right value. ... I already made a workaround in commiting the whole Registry when IP ... First I created an image where I could perfectly repro the problem in a similar setup (Minlogon, netsh, EWF, RegFilter). ... registry hives at the next boot time. ...
    (microsoft.public.windowsxp.embedded)