Solved

asp.dll

Posted on 2002-04-15
11
506 Views
Last Modified: 2008-02-01
Does anybody know what functions the asp.dll has, and how the IIS interacts with the dll?
0
Comment
Question by:lar_jens
11 Comments
 
LVL 11

Expert Comment

by:thunderchicken
ID: 6942267
ASP .dll runs Active Server Pages, a VB Scripting language for web pages.
0
 
LVL 32

Expert Comment

by:jhance
ID: 6942278
If you want to know what functions ASP.DLL has, use the DUMPBIN utility in Visual Studio like:

DUMPBIN /EXPORT ASP.DLL

This will give you a list of all the EXPORT functions from this DLL.

Generally, you would NOT directly interact with ASP.DLL.  IIS interacts with it directly and automatically.

Perhaps if you explained what you are trying to do a better explanation could be offered.
0
 
LVL 1

Author Comment

by:lar_jens
ID: 6942315
Yes, but I want to create another engine (like php and asp), and if it is to be run as a dll, I need to know what functions the IIS is using to communicate with it...

-LJJ
0
Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

 
LVL 1

Author Comment

by:lar_jens
ID: 6942322
The dump of the dll is as follows:

Microsoft (R) COFF Binary File Dumper Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.


Dump of file c:\winnt\system32\inetsrv\asp.dll

File Type: DLL

  Section contains the following exports for asp.dll

           0 characteristics
    3AE8ADD2 time date stamp Fri Apr 27 01:22:58 2001
        0.00 version
           1 ordinal base
          61 number of functions
          61 number of names

    ordinal hint RVA      name

          1    0 0001672C ??0BUFFER@@QAE@I@Z
          2    1 00016761 ??0BUFFER@@QAE@PAEI@Z
          3    2 0001682D ??0BUFFER_CHAIN@@QAE@XZ
          4    3 000167D9 ??0BUFFER_CHAIN_ITEM@@QAE@I@Z
          5    4 000168B9 ??0STR@@QAE@ABV0@@Z
          6    5 00016884 ??0STR@@QAE@K@Z
          7    6 0001685F ??0STR@@QAE@PADK@Z
          8    7 0001689A ??0STR@@QAE@PBD@Z
          9    8 0001684D ??0STR@@QAE@XZ
         10    9 00016B0C ??0TS_RESOURCE@@QAE@XZ
         11    A 00016835 ??1BUFFER_CHAIN@@QAE@XZ
         12    B 000167F3 ??1BUFFER_CHAIN_ITEM@@QAE@XZ
         13    C 00016A86 ??1STR@@QAE@XZ
         14    D 00016B19 ??1TS_RESOURCE@@QAE@XZ
         15    E 00016AF8 ??4ALLOC_CACHE_HANDLER@@QAEAAV0@ABV0@@Z
         16    F 000167BD ??4BUFFER@@QAEAAV0@ABV0@@Z
         17   10 0001683A ??4BUFFER_CHAIN@@QAEAAV0@ABV0@@Z
         18   11 00016B59 ??4BUFFER_CHAIN_ITEM@@QAEAAV0@ABV0@@Z
         19   12 00016A72 ??4STR@@QAEAAV0@ABV0@@Z
         20   13 00016B59 ??4TS_RESOURCE@@QAEAAV0@ABV0@@Z
         21   14 000167D1 ??_FBUFFER@@QAEXXZ
         22   15 00016819 ??_FBUFFER_CHAIN_ITEM@@QAEXXZ
         23   16 0001694C ?Append@STR@@QAEHABV1@@Z
         24   17 00016902 ?Append@STR@@QAEHPBD@Z
         25   18 0001692F ?Append@STR@@QAEHPBDK@Z
         26   19 00016A22 ?Append@STR@@QAEXD@Z
         27   1A 00016A3A ?Append@STR@@QAEXDD@Z
         28   1B 00016A5A ?AppendCRLF@STR@@QAEXXZ
         29   1C 00016A02 ?Clone@STR@@QBEHPAV1@@Z
         30   1D 00016B3A ?Convert@TS_RESOURCE@@QAEXW4TSRES_CONV_TYPE@@@Z
         31   1E 000169CF ?Copy@STR@@QAEHABV1@@Z
         32   1F 00016969 ?Copy@STR@@QAEHPBD@Z
         33   20 000169A5 ?Copy@STR@@QAEHPBDK@Z
         34   21 00016700 ?IsDynAlloced@BUFFER@@ABEHXZ
         35   22 000168F6 ?IsEmpty@STR@@QBEHXZ
         36   23 00016782 ?IsValid@ALLOC_CACHE_HANDLER@@QBEHXZ
         37   24 00016723 ?IsValid@BUFFER@@IBEHXZ
         38   25 00016723 ?IsValid@STR@@QBEHXZ
         39   26 00016AE2 ?Lock@ALLOC_CACHE_HANDLER@@AAEXXZ
         40   27 00016B20 ?Lock@TS_RESOURCE@@QAEXW4TSRES_LOCK_TYPE@@@Z
         41   28 000169FE ?QueryCB@STR@@QBEIXZ
         42   29 000169FE ?QueryCCH@STR@@QBEIXZ
         43   2A 00016782 ?QueryPtr@BUFFER@@QBEPAXXZ
         44   2B 00016785 ?QuerySize@BUFFER@@QBEIXZ
         45   2C 00016782 ?QueryStr@STR@@QBEPADXZ
         46   2D 00016782 ?QueryStrA@STR@@QBEPADXZ
         47   2E 0001680B ?QueryUsed@BUFFER_CHAIN_ITEM@@QBEKXZ
         48   2F 0001695F ?Reset@STR@@QAEXXZ
         49   30 00016789 ?Resize@BUFFER@@QAEHI@Z
         50   31 000167A0 ?Resize@BUFFER@@QAEHII@Z
         51   32 000168DA ?SetLen@STR@@QAEHK@Z
         52   33 0001680F ?SetUsed@BUFFER_CHAIN_ITEM@@QAEXK@Z
         53   34 00016707 ?SetValid@BUFFER@@IAEXH@Z
         54   35 00016AED ?Unlock@ALLOC_CACHE_HANDLER@@AAEXXZ
         55   36 00016B52 ?Unlock@TS_RESOURCE@@QAEXXZ
         56   37 000278E6 AspStatusHtmlDump
         57   38 0002B2E4 DllRegisterServer
         58   39 0002B341 DllUnregisterServer
         59   3A 00020ACD GetExtensionVersion
         60   3B 000099C7 HttpExtensionProc
         61   3C 00020B38 TerminateExtension

  Summary

        3000 .data
        4000 .reloc
        F000 .rsrc
       40000 .text

How am I supposed to see what to write myself, to get IIS to interact with my own DLL?
0
 
LVL 1

Author Comment

by:lar_jens
ID: 6942329
jhance,

do you have some sort of utility that interprets the C++ naming convention from DLLs?
0
 
LVL 1

Author Comment

by:lar_jens
ID: 6942335
the dumpbin utility does not tell me the signature of the funtions either... Should I dissassemble the file? That would involve a lot of work...
0
 
LVL 32

Expert Comment

by:jhance
ID: 6942459
You might want to look at the key export from above, namely HttpExtensionProc.
0
 
LVL 49

Accepted Solution

by:
DanRollins earned 200 total points
ID: 6943071
asp.dll is an ISAPI Http Extension.  These topics are covered in depth by MSDN.  Here is a weblink to get you started:

http://search.microsoft.com/gomsuri.asp?n=1&c=rp_Results&siteid=us/dev&target=http://msdn.microsoft.com/library/en-us/vccore98/HTML/_core_internet_first_steps.3a_.isapi_server_extensions_and_filters.asp

Even if you don't want to write your own ISAP Extension, the information there will help you see what asp.dll is doing (how it is used by IIS).

-- Dan
0
 
LVL 15

Expert Comment

by:Tommy Hui
ID: 6943369
There's also a book called ASP Internals that describes how to rewrite ASP.DLL.
0
 
LVL 22

Expert Comment

by:ambience
ID: 6944033
i guess only the un-decorated exports are important to IIS, excluding ofcourse DllRegisterServer and DllUnRegisterServer etc.

asp.dll is a COM dll, you might be interested in viewing it with object browser, and see what Objects and interfaces there are, for e.g. IRequest etc.

But i guess these are relevant to the inner workings of asp runtime and not important to the webserver. So for your ASP you might have a different rumtime environment altogether. HttpExtension seems to the only logical communication medium between the two.

correct me if am wrong ..
0
 
LVL 1

Author Comment

by:lar_jens
ID: 6944218
you're right :)
HttpExtensionProc helped me out.. Thnx..
Points goes to DanRollins for pointing it out to me first.
0

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Written by John Humphreys C++ Threading and the POSIX Library This article will cover the basic information that you need to know in order to make use of the POSIX threading library available for C and C++ on UNIX and most Linux systems.   [s…
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
The goal of the video will be to teach the user the difference and consequence of passing data by value vs passing data by reference in C++. An example of passing data by value as well as an example of passing data by reference will be be given. Bot…
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.

786 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question