include vmm.inc GetDeviceServiceOrdinal eax, Service mov esi, HookProc VMMCall Unhook_Device_Service
Unhooks a device service that was previously hooked with the Hook_Device_Service service. Uses Flags.
The service number is invalid.
The hook procedure could not be found in the chain.
A non-HookProc hook existed in the chain.
ServiceOrdinal
The highword is the VxD ID and the low word is the service number. If the VxD ID is UNDEFINED_DEVICE_ID, then the EDI register should contain the address of the eight character space-padded VxDName.
Service
Name of the service being unhooked.
HookProc
Hook procedure to remove from the list.
In order for Hook_Device_Service to succeed, the hook to be unhooked and all hooks that were made after the specified hook must have been declared as Hook_Proc's using the BeginProc macro. This macro is provided to correctly generate the procedure header necessary for creating a hook chain that can be processed quickly and still allows hooks to be removed from the chain.
See also BeginProc, Hook_Device_Service