VDDInstallIOHook

BOOL VDDInstallIOHook(hVDD, cPortRange, pPortRange, 10handler)
IN HANDLE hVDD;
IN WORD cPortRange;
IN PVDD_IO_PORTRANGE pPortRange;
IN PVDD_IO_HANDLERS 10handler;

VDDInstallIOHook hooks the I/O Ports for the responsible VDD.

Parameters

hVdd

Identifies the VDD.

cPortRange

Specifies the number of VDD_IO_PORTRANGE structures.

pPortRange

Points to the VDD_IO_PORTRANGE array.

10handler

Points to the handler array pointer.

Return Value

VDDInstallIOHook returns TRUE if successful. Otherwise, this function returns FALSE and logs one of the following errors:

Value Meaning
ERROR_ACCESS_EXISTS The VDD already has active I/O port handlers.
ERROR_OUTOFMEMORY There are insufficient resources for additional VDD port handler sets.
ERROR_INVALID_ADDRESS One of the I/O port handlers has an invalid address.

Comments

The last VDD to hook a port will always get control of the port. There is no concept of chaining hooks.

plOFn must provide the byte read and write handlers. Others can be NULL.

If word or string handlers are not provided, their effect will be emulated using byte handlers.

VDDs must not hook DMA ports. The Win32 VDM component manages this for all the clients and services provided to perform DMA operations. This includes any attempt to access and modify DMA data.

VDDs should not hook video ports. A video port can be successfully hooked but there is no guarantee that the I/O handler will get called.

Each VDD is allowed to install only one set of I/O hooks at a time.

See Also

VDDDeInstalllOHook