Int 2F/AX=1684h/BX=28A0h

Prev Next Ralf Interrups Categories Contents

------

MS Windows - PHARLAPX - GET API ENTRY POINT

AX = 1684h
BX = 28A0h (virtual device ID for PHARLAPX device) (see #02642)
ES:DI = 0000h:0000h

Return:
ES:DI -> VxD API entry point (see #02694) 0000h:0000h if the VxD does not support an API

(Table 02694) Call PHARLAPX VxD entry point with: AX = function 0001h get PHARLAP.386 version

Return:
AX = version number (AH = major, AL = minor). ---queue functions--- 0101h allocate a new message queue CX = size of queue data buffer in bytes

Return:
DX:AX = handle for new queue, or 0000h:0000h on error 0102h allocate a new key queue CX = size of queue data buffer in bytes EDX = VM handle into which keys will be pasted

Return:
DX:AX = handle for new queue, or 0000h:0000h on error 0103h free message queue EDX = queue handle

Return:
AX = status (0000h,0003h,0007h) (see #02695) 0104h free key queue EDX = queue handle

Return:
AX = status (0000h,0003h,0005h) (see #02695) 0105h add message to communications queue EDX = queue handle BX = length of message data in bytes CX = length of message header in bytes ES:(E)SI -> message header GS:(E)DI -> message data

Return:
AX = status (0000h-0003h,0007h) (see #02695) 0106h remove message from queue EDX = queue handle CX = length of buffer in bytes ES:(E)SI -> buffer for message

Return:
AX = status (0000h,0003h,0006h,0007h,0008h) (see #02695) CX = length of returned message (if AX=0000h or 0008h) 0107h flush queue (remove all data) EDX = queue handle

Return:
AX = status (0000h,0003h) (see #02695) 0108h add PasteKey structure(s) to key queue EDX = queue handle CX = number of PasteKey structures in buffer ES:(E)SI -> PasteKey array (see #02696)

Return:
AX = status (0000h-0003h) (see #02695) 0109h register enqueueing callback function EDX = queue handle ECX = function argument ES:(E)SI -> callback function

Return:
AX = status (0000h,0003h,0009h) (see #02695) 010Ah register dequeueing callback function EDX = queue handle ECX = function argument ES:(E)SI -> callback function

Return:
AX = status (0000h,0003h,0009h) (see #02695) 010Bh unregister enqueueing callback function EDX = queue handle

Return:
AX = status (0000h,0003h,0009h) (see #02695) 010Ch unregister dequeueing callback function EDX = queue handle

Return:
AX = status (0000h,0003h,0009h) (see #02695) 010Dh get message queue status EDX = queue handle

Return:
AX = status (0000h,0003h) (see #02695) CX = number of pending messages 010Eh peek at message in queue EDX = queue handle BX = number of message in queue (0000h = first) CX = size of buffer in bytes ES:(E)SI -> buffer for message

Return:
AX = status (0000h,0003h,0006h,0008h) (see #02695) CX = length of returned message (if AX=0000h or 0008h) 010Fh peek at last message in queue EDX = queue handle CX = size of buffer in bytes ES:(E)SI -> buffer for message

Return:
AX = status (0000h,0003h,0006h,0008h) (see #02695) CX = length of returned message (if AX=0000h or 0008h) 0110h replace last message in queue EDX = queue handle CX = length of message header in bytes BX = length of message data in bytes ES:(E)SI -> message header GS:(E)DI -> message data

Return:
AX = status (0000h,0002h,0003h) (see #02695) 0111h set permitted message count for queue EDX = queue handle CX = maximum number of messages to enqueue (FFFFh = unlimited)

Return:
AX = status (0000h,0003h) (see #02695). ---generalized VxD services--- 0202h call VxD function ES:(E)BX -> in/out register-set buffer

Return:
Buffer updated 0203h map flat ???. --system register functions--- 0301h read system registers into buffer ES:(E)SI -> 512-byte buffer

Return:
AX = 0000h buffer filled (mostly zeros) 0302h copy linear memory into buffer EDX = linear address CX = number of bytes to copy ES:(E)SI -> buffer

Return:
AX = 0000h 0303h copy data into linear memory EDX = linear address CX = number of bytes to copy ES:(E)SI -> buffer

Return:
AX = 0000h 0304h freeze VM ??? 0305h unfreeze VM ???. ---name registration functions--- 0401h register name EDX = magic number to associate with name ES:(E)SI -> name to register

Return:
AX = status (0000h,0009h) (see #02695) 0402h unregister name ES:(E)SI -> name to be unregistered

Return:
AX = status (0000h,0009h) (see #02695) 0403h look up name ES:(E)SI -> name to look up

Return:
DX:AX = magic number or 0000h:0000h if not registered 0404h get name list handle

Return:
DX:AX = name list handle 0000h:0000h if not initialized. ---special DOS server routines (undocumented)--- 0501h register 0502h unregister 0503h validate VM 0504h get INT9 count 0505h get screen line 0506h get shift status 0507h get server PB pointer 0508h initialize DOS shell 0509h get last VM handle

(Table 02695) Values for PHARLAPX function status: 00h successful 01h data is too large to fit in queue 02h queue is full 03h invalid queue handle 04h invalid VM handle for queue 05h error starting a paste operation 06h queue is empty 07h a VM is blocked waiting on the queue 08h message was too long (truncated) 09h unable to register or unregister specified callback

See Also: #02694

Format of PHARLAPX PasteKey structure: Offset Size Description (Table 02696) 00h BYTE ASCII code 01h BYTE scan code (see #00006) 02h WORD shift states

See Also: #02694

Format of PHARLAPX VxD-call register structure: Offset Size Description (Table 02697) 00h DWORD call number 04h WORD input register map (see #02698) 06h WORD output register map (see #02698) 08h 7 DWORDs values for EAX, EBX, ECX, EDX, EBP, ESI, EDI on call 24h 4 WORDs values for DS, ES, FG, GS on call 2Ch DWORD EFLAGS on call 30h 7 DWORDs returned values of EAX, EBX, ECX, EDX, EBP, ESI, EDI 4Ch 4 WORDs returned values of DS, ES, FS, GS 54h DWORD returned EFLAGS

See Also: #02694

Bitfields for PHARLAPX VxD-call register map: Bit(s) Description (Table 02698) 0 value in EAX field is valid 1 value in EBX field is valid 2 value in ECX field is valid 3 value in EDX field is valid 4 value in EBP field is valid 5 value in ESI field is valid 6 value in EDI field is valid 7 value in DS field is valid 8 value in ES field is valid 9 value in FS field is valid 10 value in GS field is valid 11 value in EFLAGS field is valid

See Also: #02697

Category: Windows - Int 2Fh - M

------

Prev Next Ralf Interrups Categories Contents