VDD_Get_Mini_Dispatch_Table

Call With

None

Return Values

ECX contains the number of mini-VDD Hookable Functions in the table. EDI contains the 32 bit linear address of the mini-VDD dispatch table. All other registers are preserved.

Remarks

This function can only be called up to and including the Init_Complete phase of VxD initialization. It will cause a fatal page fault if called after Init_Complete.

This service is used by all mini-VDD's in order to hook the callouts that the Main VDD provides to the mini-VDD. The mini-VDD calls this service and then uses the MiniVDDDispatch macro (found in MINIVDD.INC) to install the addresses of the routines that it wants to hook. The mini-VDD that calls this service should check the value returned in ECX against the number of functions that it intends to hook. If the value returned in ECX is less than the number of functions that the mini-VDD intends to hook, the mini-VDD should fail to load since trying to set a hook that the Main VDD does not understand would cause a GP Fault. If the value returned in ECX is greater than or equal to the number of functions that the mini-VDD intends to hook, then the mini-VDD can proceed to hook functions safely. Thus, the value returned in ECX can be used as a version check against using a Main VDD that is older than the MINIVDD.INC that the mini-VDD was compiled with. Refer to any of the example mini-VDD's to see howa mini-VDD installs its hook functions.