W32_DEVICEIOCONTROL

include VMM.INC 
 
mov ebx, VMHandle
mov eax, W32_DEVICEIOCONTROL 
mov esi, OFFSET32 dioparams
VMMCall System_Control 
 

Passes a control code and related information to a virtual device driver.

Parameters

VMHandle
Handle of the virtual machine.
dioparams
Address of a DIOCParams structure containing a control code and information that the VxD needs to process the control code.

Return Values

Returns one of the following values in the EAX register:

0 The control code processed successfully.
– 1 An asynchronous operation is in progress. A VxD must return this value only if the lpoOverlapped member of the DIOCParams structure is not NULL.
Error code An error occurred.

Remarks

This message is sent to a VxD when an application specifies the name of a VxD in the CreateFile function and when an application specifies the device handle of the VxD in a call to the DeviceIoControl or CloseHandle function. This message uses the ESI register. If the I/O control code is DIOC_Open, then you may return 0 to allow the handle to be opened or a nonzero value to disallow the operation, in which case the application will receive the error ERROR_NOT_SUPPORTED. The VxD cannot return a special error code in response to DIOC_Open.Chapter 30. VMM Structures