I found the problem. The following description maybe of use if other
people have similar problems.
The first DHCP disconnection seems to be normal. The first time a
connection is made is within the function
CWZCQuickCfg::ConnectAsGuestToDiscoverWisp which disconnects once a
WISP has been discovered. The second connection is within the function
CWZCQuickCfg::ConnectAsGuestAndDownloadWispPackage which will actually
attempt to download.
The second disconnection was a problem however. The immediate reason
for the second disconnection was that the Network Provisioning Service
seemed to be confused after an earlier failure. After an earlier
download had failed, the registry key was set for the WISP under
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\xmlprov\Parameters\Domains\
www.foo.com.
However, no XML files had been downloaded successfully into
C:\Documents and Settings\All Users\Application
Data\Microsoft\Provisioning\Master\
www.foo.com. So when it came time
to get the provisioning data, the Provisioning Service seemed to think
it had the data (since the registry key was set) and hence wouldn't
attempt to download it again. But when it went to read the data the
files weren't there so it bailed out and disconnected (which in turn
caused the DHCP error).
The root cause of this problem was that the certificate had expired on
the web server containing the provisioning XML files and this caused
the the download to fail. However I had trouble finding out that this
was the error.
The first places I looked were the event viewer and the logs:
- The error reported by the Network Provisioning Server in the Event
Viewer was 40004 "Maximum file size constraints for domain
www.foo.com
have been exceeded. The reason is 'One or more maximum file size
constraints were exceeded.'".
- The error in WZCDLG was "CWZCQuickCfg ERROR

0x80004005):Connection
Failed
Unspecified error".
- The error in XMLProv was
[208] 09:50:14: /---CXmlProvJob::JobError
[208] 09:50:14: | BITS Job : {123456-1234-ABCD-DCBA-123456789AB}
[208] 09:50:14: | Invalid state [current BG_JOB_STATE : (4)]
[208] 09:50:14: | /---CXmlProvDomain::RemoveJobFromJob
[208] 09:50:14: || Queued a domain work item to remove a job!
[208] 09:50:14: | \___CXmlProvDomain::RemoveJobFromJob
[208] 09:50:14: \___CXmlProvJob::JobError
which at least prompted me to investigate BITS.
I eventually found out the error using the BITSAdmin tool since BITS is
used to manage the download. The following command showed the problem:
C:\Documents and Settings\demo>bitsadmin /list /allusers /verbose
BITSADMIN version 2.0 [ 6.6.2600.2180 ]
BITS administration utility.
(C) Copyright 2000-2004 Microsoft Corp.
GUID: {123456-1234-ABCD-DCBA-123456789AB} DISPLAY:
www.foo.com
TYPE: DOWNLOAD STATE: ERROR OWNER: NT AUTHORITY\SYSTEM
PRIORITY: FOREGROUND FILES: 0 / 1 BYTES: 0 / UNKNOWN
CREATION TIME: 1/06/2005 10:43:19 AM MODIFICATION TIME: 2/06/2005
1:24:04 PM
COMPLETION TIME: UNKNOWN ACL FLAGS:
NOTIFY INTERFACE: UNREGISTERED NOTIFICATION FLAGS: 11
RETRY DELAY: 600 NO PROGRESS TIMEOUT: 1209600 ERROR COUNT: 24
PROXY USAGE: NO_PROXY PROXY LIST: NULL PROXY BYPASS LIST: NULL
ERROR FILE:
https://www.foo.com/provisioning/master.xml ->
C:\Documents and Settings\All Users\Application
Data\Microsoft\Provisioning\Temp\
www.foo.com.xml
ERROR CODE: 0x80072f05 - The date in the certificate is invalid or
has expired
ERROR CONTEXT: 0x00000005 - The error occurred while the remote file
was being processed.
DESCRIPTION:
JOB FILES:
0 / UNKNOWN WORKING
https://www.foo.com/portal/provisioning/master.xml -> C:\Documents and
Settings\All Users\Application
Data\Microsoft\Provisioning\Temp\
www.foo.com.xml
NOTIFICATION COMMAND LINE: none
Once I updated the certificate the download workd fine and I got the
signup wizard and could make progress.