Guenter wrote:
> Hi Chuck,
>
> Chuck Chopp <chuckchopp@rtfmcsi.com> wrote in
> news:iusMi.6173$NG7.3075@kovat.provo.novell.com:
>
> I had forwarded you question to the developer, and here's what I got back:
>
> I had to look around a refresh my self. Hear is how it works.
>
> When the plugin registers their method, they need to set the
> InfoReadBodyOnDemand bit as part of the fifth parameter along with any other
> bit values they may be using. When this is done the method that calls
> HttpReturnPostDataBuffer will be given the data in 64k chunks. If the method
> is not registered using this bit then the stack will try to pass the entire
> buffer to the method the first time the call to HttpReturnPostDataBuffer is
> called. If they are using the InfoBodyOnDemand method they can just continue
> to read until they get an error.
>
> The defined value for InfoReadBodyOnDemand is:
>
> #define INFO_READ_BODY_ON_DEMAND_BIT 0x00000200
> That define is in httpexp.h.
>
> I hope that covers all that is needed to answer this email question.
Guenter,
Yes, that matches what was dragged out of Novell. I was surprised to learn
it, but somehow they did slip some virtual memory into the CLib ring-0
environment, and the NRM HTTP stack does make use of it. When handling the
uploads of large amounts of data, of course, it ends up thrashing the
virtual memory on the server, which is why we needed to read things
on-demand rather than waiting for the entire transmission to be received
before having our URI handler invoked by the stack. Fortunately, that's all
working well, now.
We discovered some interesting side-effects that occur, too, after you
unload your NLM that had registered a URI handler. If PORTAL.NLM remains
loaded after you de-register your URI handler and a client application
attempts to send a relatively large HTTP transmission to the server....
Bang! Your server abends. Neat, huh?
--
Chuck Chopp
ChuckChopp (at) rtfmcsi (dot) com
http://www.rtfmcsi.com
RTFM Consulting Services Inc.
103 Autumn Hill Road
Greer, SC 29651
Do not send me unsolicited commercial email.