| 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 |

| 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.
|