ekohl(a)cvs.reactos.com wrote:
CVSROOT: /CVS/ReactOS
Module name: reactos
Repository: reactos/drivers/fs/np/
Changes by: ekohl(a)mok.osexperts.com 04/12/30 04:34:27
Modified files:
reactos/drivers/fs/np/: create.c fsctrl.c
Log message:
Use a new passive pipe state (0) to ensure that client ends don't connect to server
ends in calls to WaitNamed Pipe().
This change breaks services.exe. Now it stops loading auto-start drivers
because it ends up waiting in ConnectNamedPipe call.
Trace w/ old version (CVS 29/12):
(database.c:729) Group 'Event log'
(database.c:532) ScmStartService() called
(database.c:535) Service->Type: 16
(database.c:568) ImagePath: 'C:\ReactOS\system32\eventlog.exe'
(database.c:569) Type: 10
(create.c:224) NpfsCreateNamedPipe(DeviceObject c03ac950 Irp c04cb228)
(create.c:229) FileObject c04cb038
(create.c:230) Pipe name \net\NtControlPipe
(database.c:580) CreateNamedPipeW() done
(database.c:621) Process Id: 7 Handle 8c
(database.c:624) Thread Id: 44 Handle 90
database.c:633
(fsctrl.c:391) NpfsFileSystemContol(DeviceObject c03ac950 Irp c04cf870)
(fsctrl.c:395) IoStack: c04cf8e0
(fsctrl.c:397) FileObject: c04cb038
(fsctrl.c:399) Fcb: c04cbe70
(fsctrl.c:401) Pipe: c04cbef0
(fsctrl.c:402) PipeName: \net\NtControlPipe
(fsctrl.c:417) Connecting pipe \net\NtControlPipe
(fsctrl.c:29) NpfsConnectPipe()
(fsctrl.c:40) Waiting for connection...
(fsctrl.c:84) No listening client fcb found -- waiting for client
(create.c:81) NpfsCreate(DeviceObject c03ac950 Irp c05e3528)
(create.c:87) FileObject c05e3440
(create.c:88) FileName \net\NtControlPipe
(create.c:36) <\net\NtControlPipe> = <\net\NtControlPipe>
(create.c:59) Server found! Fcb c04cbe70
(create.c:195) Setting the ConnectEvent for c04cbe70
(create.c:206) Success!
(fsctrl.c:391) NpfsFileSystemContol(DeviceObject c03ac950 Irp c05e3528)
(fsctrl.c:395) IoStack: c05e3598
(fsctrl.c:397) FileObject: c05e3440
(fsctrl.c:399) Fcb: c05dc788
(fsctrl.c:401) Pipe: c04cbef0
(fsctrl.c:402) PipeName: \net\NtControlPipe
(fsctrl.c:437) Waitin(fsctrl.c:101) Client Fcb: c05dc788
(database.c:638) Control pipe connected!
Trace w/ new version (CVS frozen):
(database.c:729) Group 'Event log'
(database.c:532) ScmStartService() called
(database.c:535) Service->Type: 16
(database.c:568) ImagePath: 'C:\ReactOS\system32\eventlog.exe'
(database.c:569) Type: 10
(create.c:237) NpfsCreateNamedPipe(DeviceObject c03aa9b0 Irp c04cb098)
(create.c:242) FileObject c04caef8
(create.c:243) Pipe name \net\NtControlPipe
(database.c:580) CreateNamedPipeW() done
(database.c:621) Process Id: 7 Handle 8c
(database.c:624) Thread Id: 44 Handle 90
database.c:633
(fsctrl.c:406) NpfsFileSystemContol(DeviceObject c03aa9b0 Irp c04cf870)
(fsctrl.c:410) IoStack: c04cf8e0
(fsctrl.c:412) FileObject: c04caef8
(fsctrl.c:414) Fcb: c04cb158
(fsctrl.c:416) Pipe: c04cbe38
(fsctrl.c:417) PipeName: \net\NtControlPipe
(fsctrl.c:432) Connecting pipe \net\NtControlPipe
(fsctrl.c:29) NpfsConnectPipe()
(fsctrl.c:40) Waiting for connection...
(fsctrl.c:95) No listening client fcb found -- waiting for client
(create.c:81) NpfsCreate(DeviceObject c03aa9b0 Irp c05e3728)
(create.c:86) FileObject c05e3640
(create.c:87) FileName \net\NtControlPipe
(create.c:94) NpfsCreate() open client end for special use!
(create.c:36) <\net\NtControlPipe> = <\net\NtControlPipe>
<<-- Here is doesn't connect because the server pipe is not in listening state.
(create.c:219) Success!
(fsctrl.c:406) NpfsFileSystemContol(DeviceObject c03aa9b0 Irp c05e3728)
(fsctrl.c:410) IoStack: c05e3798
(fsctrl.c:412) FileObject: c05e3640
(fsctrl.c:414) Fcb: c05e77a0
(fsctrl.c:416) Pipe: c04cbe38
(fsctrl.c:417) PipeName: \net\NtControlPipe
(fsctrl.c:452) Waiting for pipe \net\NtControlPipe
(fsctrl.c:166) NpfsWaitPipe
(fsctrl.c:188) Listening server fcb found -- connecting
(create.c:451) NpfsClose(DeviceObject c03aa9b0 Irp c05e3728)
(create.c:466) Fcb c05e77a0
(create.c:469) Closing pipe \net\NtControlPipe
(create.c:483) Client
(create.c:81) NpfsCreate(DeviceObject c03aa9b0 Irp c05e3618)
(create.c:86) FileObject c05e7ef0
(create.c:87) FileName \net\NtControlPipe
(create.c:94) NpfsCreate() open client end for special use!
(create.c:36) <\net\NtControlPipe> = <\net\NtControlPipe>
(create.c:219) Success!
(fsctrl.c:406) NpfsFileSystemContol(DeviceObject c03aa9b0 Irp c05e3618)
(fsctrl.c:410) IoStack: c05e3688
(fsctrl.c:412) FileObject: c05e7ef0
(fsctrl.c:414) Fcb: c05e9070
(fsctrl.c:416) Pipe: c04cbe38
(fsctrl.c:417) PipeName: \net\NtControlPipe
(fsctrl.c:472) Get state
(fsctrl.c:276) Status (0x0).
(fsctrl.c:406) NpfsFileSystemContol(DeviceObject c03aa9b0 Irp c05e3618)
(fsctrl.c:410) IoStack: c05e3688
(fsctrl.c:412) FileObject: c05e7ef0
(fsctrl.c:414) Fcb: c05e9070
(fsctrl.c:416) Pipe: c04cbe38
(fsctrl.c:417) PipeName: \net\NtControlPipe
(fsctrl.c:477) Set state
(fsctrl.c:349) Status (0x0).
(rw.c:278) NpfsWrite()
(rw.c:282) FileObject c05e7ef0
(rw.c:283) Pipe name \net\NtControlPipe
(rw.c:302) Pipe is NOT connected!
(rw.c:432) NpfsWrite done (Status c0000001)