从这里开始
先是一个 对Com接口的导入。
/// <internalonly/>
/// <devdoc>
/// </devdoc>
[ComImport, Guid("7297744b-e188-40bf-b7e9-56698d25cf44"), System.Runtime.InteropServices.InterfaceTypeAttribute(System.Runtime.InteropServices.ComInterfaceType.InterfaceIsIUnknown)]
public interface IStateRuntime {
两个 ProcessReqest重载。
}
2,
public sealed class StateRuntime : IStateRuntime {
实现 接口中的Request.
……
/*
* Process one ISAPI request
*
* @param ecb ECB
*/
/// <devdoc>
/// <para>[To be supplied.]</para>
/// </devdoc>
public void ProcessRequest(
IntPtr tracker,
int verb,
string uri,
int exclusive,
int extraFlags,
int timeout,
int lockCookieExists,
int lockCookie,
int contentLength,
IntPtr content
) {
StateHttpWorkerRequest wr;
wr = new StateHttpWorkerRequest(
tracker, (UnsafeNativeMethods.StateProtocolVerb) verb, uri,
(UnsafeNativeMethods.StateProtocolExclusive) exclusive, extraFlags, timeout,
lockCookieExists, lockCookie, contentLength, content);
HttpRuntime.ProcessRequest(wr);
}
…..
}
HttpRuntime
private void ProcessRequestInternal(HttpWorkerRequest wr)
{
……
}
后面的就是各种处理了