Jump to content











Photo
- - - - -

Win7PE_SE help -- driver intergration issues

win7pe_se

  • Please log in to reply
15 replies to this topic

#1 Sensei

Sensei
  • Members
  • 9 posts
  •  
    United Kingdom

Posted 16 April 2012 - 12:25 AM

HI there,

I tried several times -- doesn't complete. Just downloaded the latest version i.e. from 13 April -- same problem.

The driver integration always stops with an error, trying to create DCIM.

(zz_Drivers.script) DirMake - Failed to create directory: [%BaseDir%\Target\Win7PE_SE\Windows\SysWow64\dism]: Cannot create a file when that file already exists

the complete log is posted here

http://minus.com/mzNA3IPlH/

#2 sbaeder

sbaeder

    Gold Member

  • .script developer
  • 1338 posts
  • Location:usa - massachusettes
  •  
    United States

Posted 16 April 2012 - 10:19 PM

What kind of a disk drive are you using for the "target" (the I: drive???) For some reason the script is trying to check to see if the dir "exists" before trying to create it. That is just good, safe programming!. But, the error is that it doesn't think the dir "exists", so it goes to create it, but by the time it tries to create it, it DOES exist - hence the error.

If this is an external drive, do you have any sort of "caching" enabled ? Another "trick" might be to slow things down there, and put in a message box before that statement with a delay...

You can use the "wait" command before that line to see if that helps (i.e. before the IF test)... That may be enough to get you past this.

Good Luck and report back!

:cheers:
Scott

#3 Sensei

Sensei
  • Members
  • 9 posts
  •  
    United Kingdom

Posted 18 April 2012 - 02:15 AM

Thanks for reply,

What kind of a disk drive are you using for the "target" (the I: drive???)


Nah, I have 4 internal hard drives, two letters used by optical drives and plenty of external devices/hard drives. I: is just a normal hard drive though.


You can use the "wait" command before that line to see if that helps (i.e. before the IF test)... That may be enough to get you past this.

I did add wait,60 before and after that line. Didn't help.


I monitored the files being copied into target folder. Apparently DISM folder is created in System32 during the initial copy (stage 1) yet no such copy is created when making sysWoW64 (stage 5).

So which script actually is supposed to create this subfolder (and the files inside, of course)?

BTW, I've updated to 20120416, still same error. And even more interesting -- even after the error is raised, there's no dism subfolder in syswow64 target folder. Probably a script / script processor bug?

#4 ChrisR

ChrisR

    Silver Member

  • .script developer
  • 784 posts
  •  
    France

Posted 18 April 2012 - 11:24 AM

Strange, the test is just good in the script
If,Not,ExistDir,%TargetDir%WindowsSysWow64dism,DirMake,%TargetDir%WindowsSysWow64dism

Result for you with --> DirMake - Failed to create directory: [%BaseDir%TargetWin7PE_SEWindowsSysWow64dism]: Cannot create a file when that file already exists !!!
The same test, just before, Works well
If,Not,ExistDir,%TargetDir%WindowsSystem32dism,DirMake,%TargetDir%WindowsSystem32dism


Try to change, perhaps, to see in line 115
If,Not,ExistDir,%TargetDir%WindowsSysWow64dism,DirMake,%TargetDir%WindowsSysWow64dism

==>

If,ExistDir,%TargetDir%WindowsSysWow64dism,DirDelete,%TargetDir%WindowsSysWow64dism

DirMake,%TargetDir%WindowsSysWow64dism


#5 Sensei

Sensei
  • Members
  • 9 posts
  •  
    United Kingdom

Posted 18 April 2012 - 02:01 PM

Strange, the test is just good in the script

If,Not,ExistDir,%TargetDir%WindowsSysWow64dism,DirMake,%TargetDir%WindowsSysWow64dism

Result for you with --> DirMake - Failed to create directory: [%BaseDir%TargetWin7PE_SEWindowsSysWow64dism]: Cannot create a file when that file already exists !!!
The same test, just before, Works well
If,Not,ExistDir,%TargetDir%WindowsSystem32dism,DirMake,%TargetDir%WindowsSystem32dism


Yeah, but I did mention above that the critical difference between System32 and SysWoW64 is that DISM subfolder exists in system32 since stage1, and stage5 does not create such subfolder in syswow.
So the point is, such folder does not exists in syswow64 when it gets to driver intergration stage, and apparently, the way I'm looking at this, it fails when trying to create such a folder.

I'll try to update the code now and see how it works.

#6 ChrisR

ChrisR

    Silver Member

  • .script developer
  • 784 posts
  •  
    France

Posted 18 April 2012 - 04:19 PM

Yep, the folder dism is already created in step 1 "copy files" in System32 (x86 build) and in both System32, SysWOW64 (x64 build).
The script "driver integration", which may be independent, check again the 2 folders in your x64 build (belt and braces)

The trick is to understand why WB thinks that this folder doen't exist for you, no idea ! :confused1:

#7 Sensei

Sensei
  • Members
  • 9 posts
  •  
    United Kingdom

Posted 18 April 2012 - 08:17 PM

@ChrisR.

You are not though correct -- DISM folder and system32 are created in step1, but Syswow64 is created in step5, and DISM folder is not created in syswow64 in stage5. If it has to, you need to tell me how to achieve it. Though I reckon it is dully created during "drivers integration stage".

As for this problem, I've found the culprit -- that is USB3 script. I managed to find it by inserting waits with messageboxes in integration script at several key stages. And then I've seen THAT. The developer of USB3 in their infinite wisdom managed to create a file under name dism [sic] so obviously directory creation under same name in driver integration stage fails.

I can confirm that I can get thru by unchecking USB3 i can get thru that stage. Not that it completes, there's still plenty of funny things happening, but at least it gets thru driver integration.

actually I think this is self-explanatory:

[Process_Win7x64]

If,Not,ExistFile,%t32%dismdism.exe,FileCopy,%b32%dism.exe,%t32%dism

If,Not,ExistFile,%t32%dismwdscore.dll,FileCopy,%b32%wdscore.dll,%t32%dism

If,Not,ExistFile,%tWow%dismdism.exe,FileCopy,%Wow%dism.exe,%tWow%dism



#8 sbaeder

sbaeder

    Gold Member

  • .script developer
  • 1338 posts
  • Location:usa - massachusettes
  •  
    United States

Posted 18 April 2012 - 09:12 PM

So to help me clarify what you just said...there is a FILE called DISM iin that location, so the check for if a DIRECTORY exists fails, but also the create of a directory fails, since there is a file with that name already... Interesting :dubbio:

Would have to get opinions on if this is a BUG or not in the interpretation of the intent of the command...Clearly then to be 100% safe (belt, suspenders- a.k.a. brace and ???) we would have to check if no directory AND no file, then OK to create file...Is that overkill???


:cheers:
Scott

#9 Sensei

Sensei
  • Members
  • 9 posts
  •  
    United Kingdom

Posted 18 April 2012 - 09:40 PM

So to help me clarify what you just said...there is a FILE called DISM iin that location, so the check for if a DIRECTORY exists fails, but also the create of a directory fails, since there is a file with that name already... Interesting :dubbio:


You cannot have same filename for a file and a folder in same subfolder (filename including extension, of course). I.e. it you have text.txt file in a folder, then you won't be able to create a text.txt subfolder or copy it from another location.
The problem is not with drivers integration, the problem, the way I see it, is with the USB3 script. The code I posted above does exactly that, imo, as
FileCopy,%Wow%dism.exe,%tWow%dism
does exactly that, in case there's no such subfolder dism, then this line in fact creates a file w/o an extension, and copies dism.exe into it.

As a rule of thumb, before creating a file/folder with a path specified, one needs to make sure that path already exists.

Meanwhile, any idea about this:
http://i.imgur.com/c0mEq.png

Or should I create a new topic about this error?

#10 ChrisR

ChrisR

    Silver Member

  • .script developer
  • 784 posts
  •  
    France

Posted 18 April 2012 - 10:04 PM

What do you mean exactly by step1, step5 or stage 5,

In an x64 build, the dism folder are created in the script "1 - Copy Files" in system32 and SysWOW64, as follows:
==> For System32

line241 If,Not,ExistDir,%t32%dism,DirMake,%t32%dism

line351 If,ExistDir,%b32%Dism,FileCopy,%b32%Dism*,%t32%Dism

==> and for SysWOW64 (dism folder inside and copied with the filecopy *)

line376 If,ExistDir,%BootSRC%WindowsSysWOW64,DirMake,%TargetDir%WindowsSysWOW64

line377 If,ExistDir,%BootSRC%WindowsSysWOW64,FileCopy,%BootSRC%WindowsSysWOW64*,%TargetDir%WindowsSysWOW64

What USB3 script are you talking, if this the original "USB 3.0 Support" script, I do not see any attempt to create a dism file, even in the code posted (dism.exe, wdscore.dll but no dism) !
Check by reading the script and with breakpoint (Message,)
And If I want to manually create a file dism in SysWow64 at the end of "USB 3.0" script, I got a windows message : "A folder with that name already exists"

I do not see or I misunderstood.

For the 2 point, can you share your log (enable create support log in Main configuration), strange also, boot.wim is mounted before with the same ImageX tool without error !

:cheers:

#11 Sensei

Sensei
  • Members
  • 9 posts
  •  
    United Kingdom

Posted 18 April 2012 - 10:17 PM

What do you mean exactly by step1, step5 or stage 5,


Numbering in script names. I.e. files is 1 - Copy Files, WoW64 script: 5 - WoW64 Basic

I'm talking about driversRemovableDeviceUSB3.script

Section [Process_Win7x64], as follows:

[Process_Win7x64]

If,Not,ExistFile,%t32%dismdism.exe,FileCopy,%b32%dism.exe,%t32%dism

If,Not,ExistFile,%t32%dismwdscore.dll,FileCopy,%b32%wdscore.dll,%t32%dism

If,Not,ExistFile,%tWow%dismdism.exe,FileCopy,%Wow%dism.exe,%tWow%dism

If,Not,ExistFile,%tWow%dismwdscore.dll,FileCopy,%Wow%wdscore.dll,%tWow%dism

IF,%OSArch%,Equal,x64,Begin

IF,%Show%,Equal,0,ShellExecute,Open,%t32%dismdism.exe,"/image:#$q%TargetDir%#$q /Add-Driver /Driver:#$q%FExtract%#$q /recurse"

IF,%Show%,Equal,1,ShellExecute,Hide,%t32%dismdism.exe,"/image:#$q%TargetDir%#$q /Add-Driver /Driver:#$q%FExtract%#$q /recurse"

End

IF,%OSArch%,Equal,x86,Begin

IF,%Show%,Equal,0,ShellExecute,Open,%tWow%dismdism.exe,"/image:#$q%TargetDir%#$q /Add-Driver /Driver:#$q%FExtract%#$q /recurse"

IF,%Show%,Equal,1,ShellExecute,Hide,%tWow%dismdism.exe,"/image:#$q%TargetDir%#$q /Add-Driver /Driver:#$q%FExtract%#$q /recurse"

End


Also, I use drivers extracted from the most recent Driverpacks. some drivers fail to integrate during the integration stage, just a few but still. E.g. SB8xx and SB9xx for AMD chipsets. Is it important?

#12 ChrisR

ChrisR

    Silver Member

  • .script developer
  • 784 posts
  •  
    France

Posted 18 April 2012 - 10:27 PM

I'm talking about driversRemovableDeviceUSB3.script


ok we are talking about the same thing.
In the code, I see filecopy for dism.exe and wdscore.dll in System32dism and SysWow64dism folders, normal. So those folders dism already exist and it is not possible to create any dism file (without extension).
This does not explain your problem with : If,Not,ExistDir,%TargetDir%WindowsSysWow64dism,DirMake,%TargetDir%WindowsSysWow64dism in Driver Integration, the folder dism already exist as in the USB3 script, therefore normally No DirMake !!!

#13 Sensei

Sensei
  • Members
  • 9 posts
  •  
    United Kingdom

Posted 18 April 2012 - 10:31 PM

So those folders dism already exist and it is not possible to create any dism file (without extension).


this statement is true about system32 and not so true :) about syswow64 in my case. There's no dism folder in syswow64 after finishing "Build" stage.

#14 ChrisR

ChrisR

    Silver Member

  • .script developer
  • 784 posts
  •  
    France

Posted 18 April 2012 - 10:49 PM

this statement is true about system32 and not so true :) about syswow64 in my case. There's no dism folder in syswow64 after finishing "Build" stage.



This explains things, Are you sure about your Win7 x64 ! it should be here in System32dism and in SysWow64dism from install.wim or boot.wim. Check it please with Mount script in Utils folder button Mount source and Open Mount folder.
ps: In the first script, you have a List of Official Windows 7 ISO from Digital River.

#15 Sensei

Sensei
  • Members
  • 9 posts
  •  
    United Kingdom

Posted 20 April 2012 - 02:37 AM

Yeah, thanks. I've downloaded Ultimate x64 and it appears to work now. Had still to fix that finals/finalize as per other topic (the error of what screenshot was posted earlier).

So it appears Win7PE_SE is very sensitive to the source disc. My disc was used in three actual installations, all of them still working (and all of them in x64 mode). Does it make any difference if a disc contains several editions of windows like mine?

#16 MedEvil

MedEvil

    Platinum Member

  • .script developer
  • 7771 posts

Posted 20 April 2012 - 10:56 AM

It makes a difference, when it is not an original M$ one.

:cheers:





Also tagged with one or more of these keywords: win7pe_se

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users