US 7,539,999 B2
Kernel-level transactions
Jon Cargille, Bellevue, Wash. (US); Surendra Verma, Bellevue, Wash. (US); Mark J. Zbikowski, Woodinville, Wash. (US); Dexter P. Bradshaw, Duvall, Wash. (US); James E. Johnson, Bellevue, Wash. (US); Muhunthan Sivapragasam, Kirkland, Wash. (US); and Steven J. Malan, Sammamish, Wash. (US)
Assigned to Microsoft Corporation, Redmond, Wash. (US)
Filed on Oct. 23, 2003, as Appl. No. 10/692,264.
Prior Publication US 2005/0091668 A1, Apr. 28, 2005
Int. Cl. G06F 3/00 (2006.01); G06F 9/46 (2006.01)
U.S. Cl. 719—328  [718/101] 27 Claims
OG exemplary drawing
 
1. Interfaces, stored on one or more computer-readable storage media, to be called on kernel transaction management objects, comprising:
application program interfaces (APIs) local with the transaction manager located in a kernel to implement operations in the kernel on a kernel transaction object (TX), the TX representing a transaction and being accessible by at least one process participating in the transaction, the APIs to implement operations in the kernel on the TX including:
a CreateTransaction API to create a new TX and return a handle to the new TX, wherein if the handle of the new TX closes without requesting that the TX be committed, then the transaction implicitly rolls back;
the APIs local with the transaction manager to implement kernel-level operations on a kernel resource management object (RMO), the RMO representing a relationship between a TX associated with the transaction manager and at least one resource that participates in the transaction, the resource capable of storing data in a durable state; and
the APIs local with the transaction manager to implement kernel-level operations on a kernel enlistment (EN) object, the EN representing a relationship between a resource manager and the transaction, wherein each of the APIs to implement operations on the TX, the RMO, and the EN utilize handles to refer to objects, wherein each of the handles is an opaque reference to a unique object.