1. In a computer system having a kernel providing a mapping between virtual and physical memory address space, a method for performing an input/output operation comprising: a) registering a physical memory buffer with a subsystem, wherein said physical memory buffer is associated with a first virtual address, a size and a key; b) dynamically associating said physical memory buffer with a second virtual address which is different from said first virtual address; c) as part of an application program requesting an input/output operation regarding said second virtual address, using an application table to obtain said first virtual address, said key and said size and supplying said first virtual address, said key and said size to said subsystem; and d) said subsystem, using said first virtual address, said key and said size, determining said physical memory buffer and performing said input/output operation using said physical memory buffer without intervention of said kernel.