Before calling any protected-mode API functions, an application must retrieve VXDLDR's protected-mode API address by using Interrupt 2Fh function 1684h (Get Device API Entry Point Address).
xor di, di
mov es, di ;es:di = 0 on entry
mov ax, 1684h ;function number
mov bx, VXDLDR_Device_ID ;device ID
int 2Fh ;get protected-mode API address
mov ax, es ;if es:di=0:0, VXDLDR
or ax, di ; was not loaded (by default,
jz vxdldr_not_there ; it is loaded under Windows 95)
mov word ptr [_VXDLDRCallAddr], di ;segment in high-order word
mov word ptr [_VXDLDRCallAddr+2], es ;offset in low-order word
This example stores the selector:offset address used to call VXDLDR in a doubleword variable called _VXDLDRCallAddr. To call protected-mode API functions, an application calls this address after placing the command code in AX. The function names corresponding to these command codes are Get VXDLDR Version, Load Device, and Unload Device.