1. A method for assisting multi-threaded command execution by a driver in a multi-core computer system, the method comprising: separating asynchronous commands from synchronous commands by a device driver interface (DDI); buffering the asynchronous commands with corresponding event tags in a buffer, wherein the buffering further comprises: searching for resources provided to the buffered asynchronous commands by the DDI; changing the resources by issuing DDI returns; copying the changed resources to a driver allocated memory; and modifying the buffered asynchronous commands by the DDI to refer the modified and buffered asynchronous commands to the driver allocated memory; processing the asynchronous commands from the buffer by a first CPU thread; and processing the synchronous commands by a second CPU thread, wherein the step of processing the synchronous commands is finished before issuing the DDI returns.