Juan Lang juan_lang@yahoo.com writes:
I'm still not getting it. Those two SMBs are SMBtrans SMBs, a single request and (typically) a single response. My NetShareEnum and NetServerEnum functions also use SMBtrans. What's hard? What does the kernel do for us that makes it easier?
Setting the message type was an example of things that require kernel support in the local case. Obviously you cannot send SMB requests on a socketpair.
In the remote case, what we need is for the kernel to manage the whole protocol, so that we can do read() and write() calls as if it were a normal socket. You cannot manage the protocol in the client process, it breaks down as soon as two threads (or worse, processes) share the same pipe.