Begin_Service_Table


include vmm.inc

Begin_Service_Table DeviceName
Begin_Service_Table DeviceName, DefSegment

Marks the start of the service table for a virtual device. A virtual device uses the service table to export the names and addresses of its services. Other virtual devices can use the VxDCall macro to call these services.

DeviceName

Name of the virtual device. This name is used to create a macro, named DeviceName_Service, that is used in the table to define each exported service. For more information about the macro, see below.

DefSegment

Not used with Windows95 VxDs. This parameter exists solely for compatibility with Windows 3.1 VxDs.

A virtual device exports its services by defining the symbol Create_DeviceName_Service_Table before using the Begin_Service_Table macro. Virtual devices that call these service also use the Begin_Service_Table macro but must not define the Create_DeviceName_Service_Table symbol.

The complete service table has the following form:

Begin_Service_Table DeviceName

DeviceName_Service Procedure, LocalSeg

.

.

.

End_Service_Table DeviceName

The DeviceName_Service macro, created by Begin_Service_Table, adds the specified service to the table. A table may have any number of these macros.

The Procedure parameter specifies the name of the service to add to the table. If RESERVED is given, the macro reserves an entry in the table instead of adding a procedure.

The LocalSeg parameter specifies which segment contains the procedure. This parameter is optional and exists for compatibility with Windows 3.1. You shouldn't need to provide a local segment.

See also End_Service_Table, VxD_LOCKED_DATA_SEG