Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1896 lines
50 KiB

  1. Here is a breakdown of what each module exports
  2. obinit.c KMUTANT ObpInitKillMutant;
  3. UNICODE_STRING ObpDosDevicesShortName;
  4. ULARGE_INTEGER ObpDosDevicesShortNamePrefix;
  5. ULARGE_INTEGER ObpDosDevicesShortNameRoot
  6. PDEVICE_MAP ObSystemDeviceMap
  7. ObInitSystem (
  8. ObDupHandleProcedure (
  9. ObAuditInheritedHandleProcedure (
  10. ObInitProcess (
  11. ObInitProcess2 (
  12. ObDestroyHandleProcedure (
  13. ObKillProcess (
  14. ObFindHandleForObject (
  15. obcreate.c ObCreateObject (
  16. ObDeleteCapturedInsertInfo (
  17. ObFreeObjectCreateInfoBuffer (
  18. ObpCaptureObjectCreateInformation (
  19. ObpCaptureObjectName (
  20. ObpFreeObjectNameBuffer (
  21. ObpAllocateObject (
  22. ObpFreeObject (
  23. obhandle.c NtDuplicateObject (
  24. ObGetHandleInformation (
  25. ObpIncrPointerCount (
  26. ObpDecrPointerCountWithResult (
  27. ObpIncrementHandleCount (
  28. ObpDecrementHandleCount (
  29. ObpCreateHandle (
  30. ObpCreateUnnamedHandle (
  31. ObpTranslateGrantedAccessIndex (
  32. obinsert.c ObInsertObject (
  33. obref.c ObOpenObjectByName (
  34. ObOpenObjectByPointer (
  35. ObReferenceObjectByHandle (
  36. ObReferenceObjectByName (
  37. ObReferenceObjectByPointer (
  38. ObDereferenceObject (
  39. ObfReferenceObject (
  40. ObpDeleteNameCheck (
  41. obse.c NtSetSecurityObject (
  42. NtQuerySecurityObject (
  43. ObCheckObjectAccess (
  44. ObCheckCreateObjectAccess (
  45. ObAssignObjectSecurityDescriptor (
  46. ObGetObjectSecurity (
  47. ObReleaseObjectSecurity (
  48. ObValidateSecurityQuota (
  49. ObAssignSecurity (
  50. ObSetSecurityDescriptorInfo (
  51. ObpCheckObjectReference (
  52. ObpCheckTraverseAccess (
  53. ObpValidateAccessMask (
  54. obtype.c ObCreateObjectType (
  55. ObEnumerateObjectsByType(
  56. ObGetObjectInformation(
  57. obdir.c NtCreateDirectoryObject (
  58. NtOpenDirectoryObject (
  59. NtQueryDirectoryObject (
  60. ObpLookupDirectoryEntry (
  61. ObpInsertDirectoryEntry (
  62. ObpDeleteDirectoryEntry (
  63. ObpLookupObjectName (
  64. obdevmap.c ObSetDeviceMap (
  65. ObQueryDeviceMapInformation (
  66. ObInheritDeviceMap (
  67. ObDereferenceDeviceMap (
  68. oblink.c NtCreateSymbolicLinkObject (
  69. NtOpenSymbolicLinkObject (
  70. NtQuerySymbolicLinkObject (
  71. ObpParseSymbolicLink (
  72. ObpDeleteSymbolicLinkName (
  73. ObpCreateSymbolicLinkName (
  74. obclose.c NtClose (
  75. NtMakeTemporaryObject (
  76. ObMakeTemporaryObject (
  77. obquery.c NtQueryObject (
  78. NtSetInformationObject (
  79. ObGetObjectName (
  80. ObQueryNameString (
  81. ObQueryTypeName (
  82. ObQueryTypeInfo (
  83. ObQueryObjectAuditingByHandle (
  84. obsdata.c ObpInitSecurityDescriptorCache (
  85. ObpLogSecurityDescriptor (
  86. ObpReferenceSecurityDescriptor (
  87. ObDeassignSecurity (
  88. ObpDereferenceSecurityDescriptor (
  89. ObpAcquireDescriptorCacheReadLock (
  90. ObpReleaseDescriptorCacheLock (
  91. obwait.c NtSignalAndWaitForSingleObject (
  92. NtWaitForSingleObject (
  93. NtWaitForMultipleObjects (
  94. ObWaitForSingleObject (
  95. Module Name:
  96. obinit.c
  97. Global variables and who references them
  98. GENERIC_MAPPING ObpTypeMapping = ...
  99. obinit.c\ObInitSystem
  100. GENERIC_MAPPING ObpDirectoryMapping = ...
  101. obinit.c\ObInitSystem
  102. GENERIC_MAPPING ObpSymbolicLinkMapping = ...
  103. obinit.c\ObInitSystem
  104. extern EPROCESS_QUOTA_BLOCK PspDefaultQuotaBlock;
  105. obinit.c\ObInitSystem
  106. KMUTANT ObpInitKillMutant;
  107. obhandle.c\NtDuplicateObject
  108. obinit.c\ObInitSystem
  109. obinit.c\ObInitProcess
  110. obinit.c\ObKillProcess
  111. obinit.c\ObFindHandleForObject
  112. ULONG ObpProtectionMode;
  113. obinit.c\ObpGetDosDevicesProtection
  114. ULONG ObpAuditBaseDirectories;
  115. obinit.c\ObInitSystem
  116. ULONG ObpAuditBaseObjects
  117. obinit.c\ObInitSystem
  118. UNICODE_STRING ObpDosDevicesShortName;
  119. obdir.c\ObpLookupObjectName
  120. obinit.c\ObpCreateDosDevicesDirectory
  121. ULARGE_INTEGER ObpDosDevicesShortNamePrefix;
  122. obdir.c\ObpLookupObjectName
  123. obinit.c\ObpCreateDosDevicesDirectory
  124. ULARGE_INTEGER ObpDosDevicesShortNameRoot
  125. obdir.c\ObpLookupObjectName
  126. obinit.c\ObpCreateDosDevicesDirectory
  127. PDEVICE_MAP ObSystemDeviceMap
  128. obdevmap.c\ObSetDeviceMap
  129. obdevmap.c\ObQueryDeviceMapInformation
  130. obdevmap.c\ObInheritDeviceMap
  131. Procedures
  132. BOOLEAN
  133. ObInitSystem (
  134. VOID
  135. )
  136. Called By:
  137. It calls: GENERIC_MAPPING ObpTypeMapping = ...
  138. GENERIC_MAPPING ObpDirectoryMapping = ...
  139. GENERIC_MAPPING ObpSymbolicLinkMapping = ...
  140. extern EPROCESS_QUOTA_BLOCK PspDefaultQuotaBlock;
  141. KMUTANT ObpInitKillMutant;
  142. ULONG ObpAuditBaseDirectories;
  143. ULONG ObpAuditBaseObjects;
  144. obinit.c\ObpCreateDosDevicesDirectory (
  145. obref.c\ObReferenceObjectByHandle (
  146. obtype.cObCreateObjectType (
  147. obdir.c\NtCreateDirectoryObject (
  148. obdir.c\ObpLookupDirectoryEntry (
  149. obdir.c\ObpInsertDirectoryEntry (
  150. oblink.c\ObpParseSymbolicLink (
  151. obclose.c\NtClose (
  152. obsdata.c\ObpInitSecurityDescriptorCache (
  153. BOOLEAN
  154. ObDupHandleProcedure (
  155. PEPROCESS Process,
  156. PVOID HandleTableEntry
  157. )
  158. Called By: obinit.c\ObInitProcess
  159. It calls: obhandle.c\ObpIncrPointerCount (
  160. obhandle.c\ObpIncrementHandleCount (
  161. obhandle.c\ObpTranslateGrantedAccessIndex (
  162. BOOLEAN
  163. ObAuditInheritedHandleProcedure (
  164. IN PVOID HandleTableEntry,
  165. IN PVOID HandleId,
  166. IN PVOID EnumParameter
  167. )
  168. Called By: obinit.c\ObInitProcess
  169. It Calls:
  170. NTSTATUS
  171. ObInitProcess (
  172. PEPROCESS ParentProcess OPTIONAL,
  173. PEPROCESS NewProcess
  174. )
  175. Called By:
  176. It Calls: obinit.c\KMUTANT ObpInitKillMutant;
  177. obinit.c\ObDupHandleProcedure (
  178. obinit.c\ObAuditInheritedHandleProcedure (
  179. VOID
  180. ObInitProcess2 (
  181. PEPROCESS NewProcess
  182. )
  183. Called By:
  184. It Calls:
  185. VOID
  186. ObDestroyHandleProcedure (
  187. IN HANDLE HandleIndex,
  188. IN PVOID HandleTableEntry
  189. )
  190. Called By: obinit.c\ObKillProcess
  191. It Calls:
  192. VOID
  193. ObKillProcess (
  194. BOOLEAN AcquireLock,
  195. PEPROCESS Process
  196. )
  197. Called By:
  198. It Calls: obinit.c\KMUTANT ObpInitKillMutant;
  199. obinit.c\ObDestroyHandleProcedure (
  200. BOOLEAN
  201. ObpEnumFindHandleProcedure (
  202. PVOID HandleTableEntry,
  203. PVOID HandleId,
  204. PVOID EnumParameter
  205. )
  206. Called By: obinit.c\ObFindHandleForObject
  207. It Calls: obhandle.c\ObpTranslateGrantedAccessIndex (
  208. BOOLEAN
  209. ObFindHandleForObject (
  210. IN PEPROCESS Process,
  211. IN PVOID Object OPTIONAL,
  212. IN POBJECT_TYPE ObjectType OPTIONAL,
  213. IN POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL,
  214. OUT PHANDLE Handle
  215. )
  216. Called By:
  217. It Calls: obinit.c\KMUTANT ObpInitKillMutant;
  218. obinit.c\ObpEnumFindHandleProcedure (
  219. NTSTATUS
  220. ObpCreateDosDevicesDirectory (
  221. VOID
  222. )
  223. Called By: obinit.c\ObInitSystem
  224. It Calls: obinit.c\UNICODE_STRING ObpDosDevicesShortName;
  225. obinit.c\ULARGE_INTEGER ObpDosDevicesShortNamePrefix;
  226. obinit.c\ULARGE_INTEGER ObpDosDevicesShortNameRoot;
  227. obinit.c\ObpGetDosDevicesProtection (
  228. obinit.c\ObpFreeDosDevicesProtection (
  229. obdir.c\NtCreateDirectoryObject (
  230. obdevmap.c\ObSetDeviceMap (
  231. oblink.c\NtCreateSymbolicLinkObject (
  232. obclose.c\NtClose (
  233. NTSTATUS
  234. ObpGetDosDevicesProtection (
  235. PSECURITY_DESCRIPTOR SecurityDescriptor
  236. )
  237. Called By: obinit.c\ObpCreateDosDevicesDirectory
  238. It Calls: ULONG ObpProtectionMode;
  239. VOID
  240. ObpFreeDosDevicesProtection (
  241. PSECURITY_DESCRIPTOR SecurityDescriptor
  242. )
  243. Called By: obinit.c\ObpCreateDosDevicesDirectory
  244. It Calls:
  245. Module Name:
  246. obcreate.c
  247. Global variables and who references them
  248. BOOLEAN ObpShowAllocAndFree;
  249. obcreate.c\ObpAllocateObject
  250. obcreate.c\ObpFreeObject
  251. ULONG ObpObjectsCreated;
  252. obcreate.c\ObpAllocateObject
  253. ULONG ObpObjectsWithPoolQuota;
  254. obcreate.c\ObpAllocateObject
  255. ULONG ObpObjectsWithHandleDB;
  256. obcreate.c\ObpAllocateObject
  257. ULONG ObpObjectsWithName;
  258. obcreate.c\ObpAllocateObject
  259. ULONG ObpObjectsWithCreatorInfo;
  260. obcreate.c\ObpAllocateObject
  261. Procedures
  262. NTSTATUS
  263. ObCreateObject (
  264. IN KPROCESSOR_MODE ProbeMode,
  265. IN POBJECT_TYPE ObjectType,
  266. IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
  267. IN KPROCESSOR_MODE OwnershipMode,
  268. IN OUT PVOID ParseContext OPTIONAL,
  269. IN ULONG ObjectBodySize,
  270. IN ULONG PagedPoolCharge,
  271. IN ULONG NonPagedPoolCharge,
  272. OUT PVOID *Object
  273. )
  274. Called By: obdir.c\NtCreateDirectoryObject
  275. oblink.c\NtCreateSymbolicLinkObject
  276. It Calls: obcreate.c\ObpCaptureObjectCreateInformation (
  277. obcreate.c\ObpFreeObjectNameBuffer (
  278. obcreate.c\ObpAllocateObject (
  279. obcreate.c\ObpFreeObject (
  280. NTSTATUS
  281. ObpCaptureObjectCreateInformation (
  282. IN POBJECT_TYPE ObjectType OPTIONAL,
  283. IN KPROCESSOR_MODE ProbeMode,
  284. IN POBJECT_ATTRIBUTES ObjectAttributes,
  285. IN OUT PUNICODE_STRING CapturedObjectName,
  286. IN POBJECT_CREATE_INFORMATION ObjectCreateInfo,
  287. IN LOGICAL UseLookaside
  288. )
  289. Called By: obcreate.c\ObCreateObject
  290. obref.c\ObOpenObjectByName
  291. It Calls: obcreate.c\ObpCaptureObjectName (
  292. NTSTATUS
  293. ObpCaptureObjectName (
  294. IN KPROCESSOR_MODE ProbeMode,
  295. IN PUNICODE_STRING ObjectName,
  296. IN OUT PUNICODE_STRING CapturedObjectName,
  297. IN LOGICAL UseLookaside
  298. )
  299. Called By: obcreate.c\ObpCaptureObjectCreateInformation
  300. obref.c\ObReferenceObjectByName
  301. It Calls: obcreate.c\ObpAllocateObjectNameBuffer (
  302. PWCHAR
  303. ObpAllocateObjectNameBuffer (
  304. IN ULONG Length,
  305. IN LOGICAL UseLookaside,
  306. IN OUT PUNICODE_STRING ObjectName
  307. )
  308. Called By: obcreate.c\ObpCaptureObjectName
  309. It Calls:
  310. VOID
  311. FASTCALL
  312. ObpFreeObjectNameBuffer (
  313. OUT PUNICODE_STRING ObjectName
  314. )
  315. Called By: obcreate.c\ObCreateObject
  316. obref.c\ObOpenObjectByName
  317. obref.c\ObReferenceObjectByName
  318. It Calls:
  319. NTKERNELAPI
  320. VOID
  321. ObDeleteCapturedInsertInfo (
  322. IN PVOID Object
  323. )
  324. Called By:
  325. It Calls:
  326. NTSTATUS
  327. ObpAllocateObject (
  328. IN POBJECT_CREATE_INFORMATION ObjectCreateInfo,
  329. IN KPROCESSOR_MODE OwnershipMode,
  330. IN POBJECT_TYPE ObjectType OPTIONAL,
  331. IN PUNICODE_STRING ObjectName,
  332. IN ULONG ObjectBodySize,
  333. OUT POBJECT_HEADER *ReturnedObjectHeader
  334. )
  335. Called By: obcreate.c\ObCreateObject
  336. obtype.c\ObCreateObjectType
  337. It Calls: obcreate.c\BOOLEAN ObpShowAllocAndFree;
  338. obcreate.c\ULONG ObpObjectsCreated;
  339. obcreate.c\ULONG ObpObjectsWithPoolQuota;
  340. obcreate.c\ULONG ObpObjectsWithHandleDB;
  341. obcreate.c\ULONG ObpObjectsWithName;
  342. obcreate.c\ULONG ObpObjectsWithCreatorInfo;
  343. VOID
  344. FASTCALL
  345. ObpFreeObject (
  346. IN PVOID Object
  347. )
  348. Called By: obcreate.c\ObCreateObject
  349. obref.c\ObRemoveObjectRoutine
  350. It Calls: obcreate.c\BOOLEAN ObpShowAllocAndFree;
  351. VOID
  352. FASTCALL
  353. ObFreeObjectCreateInfoBuffer (
  354. IN POBJECT_CREATE_INFORMATION ObjectCreateInfo
  355. )
  356. Called By:
  357. It Calls:
  358. Module Name:
  359. obhandle.c
  360. Global variables and who references them
  361. extern KMUTANT ObpInitKillMutant;
  362. Procedures
  363. LONG
  364. FASTCALL
  365. ObpIncrPointerCount (
  366. IN POBJECT_HEADER ObjectHeader
  367. )
  368. Called By: obdir.c\ObpLookupObjectName
  369. obhandle.c\ObpCreateHandle
  370. obhandle.c\ObpCreateUnnamedHandle
  371. obinit.c\ObDupHandleProcedure
  372. obref.c\ObReferenceObjectByHandle
  373. obref.c\ObfReferenceObject
  374. obref.c\ObReferenceObjectByPointer
  375. obwait.c\NtWaitForMultipleObjects
  376. It Calls:
  377. LONG
  378. FASTCALL
  379. ObpDecrPointerCount (
  380. IN POBJECT_HEADER ObjectHeader
  381. )
  382. Called By: obhandle.c\ObpCreateHandle
  383. obhandle.c\ObpCreateUnnamedHandle
  384. It Calls:
  385. BOOLEAN
  386. FASTCALL
  387. ObpDecrPointerCountWithResult (
  388. IN POBJECT_HEADER ObjectHeader
  389. )
  390. Called By: obref.c\ObfDereferenceObject
  391. It Calls:
  392. VOID
  393. FASTCALL
  394. ObpIncrHandleCount (
  395. IN POBJECT_HEADER ObjectHeader
  396. )
  397. Called By: obhandle.c\ObpIncrementHandleCount
  398. obhandle.c\ObpIncrementUnnamedHandleCount
  399. It Calls:
  400. BOOLEAN
  401. FASTCALL
  402. ObpDecrHandleCount (
  403. IN POBJECT_HEADER ObjectHeader
  404. )
  405. Called By: obhandle.c\ObpDecrementHandleCount
  406. It Calls:
  407. POBJECT_HANDLE_COUNT_ENTRY
  408. ObpInsertHandleCount (
  409. POBJECT_HEADER ObjectHeader
  410. )
  411. Called By: obhandle.c\ObpIncrementHandleDataBase
  412. It Calls:
  413. NTSTATUS
  414. ObpIncrementHandleDataBase (
  415. IN POBJECT_HEADER ObjectHeader,
  416. IN PEPROCESS Process,
  417. OUT PULONG NewProcessHandleCount
  418. )
  419. Called By: obhandle.c\ObpIncrementHandleCount
  420. obhandle.c\ObpIncrementUnnamedHandleCount
  421. It Calls: obhandle.c\ObpInsertHandleCount (
  422. NTSTATUS
  423. ObpIncrementHandleCount (
  424. OB_OPEN_REASON OpenReason,
  425. PEPROCESS Process,
  426. PVOID Object,
  427. POBJECT_TYPE ObjectType,
  428. PACCESS_STATE AccessState OPTIONAL,
  429. KPROCESSOR_MODE AccessMode,
  430. ULONG Attributes
  431. )
  432. Called By: obhandle.c\ObpCreateHandle
  433. obhandle.c\NtDuplicateObject
  434. obinit.c\ObDupHandleProcedure
  435. It Calls: obhandle.c\ObpIncrHandleCount (
  436. obhandle.c\ObpIncrementHandleDataBase (
  437. obhandle.c\ObpChargeQuotaForObject (
  438. obse.c\ObCheckObjectAccess (
  439. NTSTATUS
  440. ObpIncrementUnnamedHandleCount (
  441. PACCESS_MASK DesiredAccess,
  442. PEPROCESS Process,
  443. PVOID Object,
  444. POBJECT_TYPE ObjectType,
  445. KPROCESSOR_MODE AccessMode,
  446. ULONG Attributes
  447. )
  448. Called By: obhandle.c\ObpCreateUnnamedHandle
  449. It Calls: obhandle.c\ObpIncrHandleCount (
  450. obhandle.c\ObpIncrementHandleDataBase (
  451. obhandle.c\ObpChargeQuotaForObject (
  452. NTSTATUS
  453. ObpChargeQuotaForObject (
  454. IN POBJECT_HEADER ObjectHeader,
  455. IN POBJECT_TYPE ObjectType,
  456. OUT PBOOLEAN NewObject
  457. )
  458. Called By: obhandle.c\ObpIncrementHandleCount
  459. obhandle.c\ObpIncrementUnnamedHandleCount
  460. It Calls:
  461. VOID
  462. ObpDecrementHandleCount (
  463. PEPROCESS Process,
  464. POBJECT_HEADER ObjectHeader,
  465. POBJECT_TYPE ObjectType,
  466. ACCESS_MASK GrantedAccess
  467. )
  468. Called By: obclose.c\NtClose
  469. obhandle.c\ObpCreateHandle
  470. obhandle.c\ObpCreateUnnamedHandle
  471. obhandle.c\NtDuplicateObject
  472. It Calls: obhandle.c\ObpDecrHandleCount (
  473. obref.c\ObpDeleteNameCheck (
  474. NTSTATUS
  475. ObpCreateHandle (
  476. IN OB_OPEN_REASON OpenReason,
  477. IN PVOID Object,
  478. IN POBJECT_TYPE ExpectedObjectType OPTIONAL,
  479. IN PACCESS_STATE AccessState,
  480. IN ULONG ObjectPointerBias OPTIONAL,
  481. IN ULONG Attributes,
  482. IN BOOLEAN DirectoryLocked,
  483. IN KPROCESSOR_MODE AccessMode,
  484. OUT PVOID *ReferencedNewObject OPTIONAL,
  485. OUT PHANDLE Handle
  486. )
  487. Called By: obinsert.c\ObInsertObject
  488. obref.c\ObOpenObjectByName
  489. obref.c\ObOpenObjectByPointer
  490. It Calls: obhandle.c\ObpIncrPointerCount (
  491. obhandle.c\ObpDecrPointerCount (
  492. obhandle.c\ObpIncrementHandleCount (
  493. obhandle.c\ObpDecrementHandleCount (
  494. obhandle.c\ObpComputeGrantedAccessIndex (
  495. NTSTATUS
  496. ObpCreateUnnamedHandle (
  497. IN PVOID Object,
  498. IN ACCESS_MASK DesiredAccess,
  499. IN ULONG ObjectPointerBias OPTIONAL,
  500. IN ULONG Attributes,
  501. IN KPROCESSOR_MODE AccessMode,
  502. OUT PVOID *ReferencedNewObject OPTIONAL,
  503. OUT PHANDLE Handle
  504. )
  505. Called By: obinsert.c\ObInsertObject
  506. It Calls: obhandle.c\ObpIncrPointerCount (
  507. obhandle.c\ObpDecrPointerCount (
  508. obhandle.c\ObpIncrementUnnamedHandleCount (
  509. obhandle.c\ObpDecrementHandleCount (
  510. obhandle.c\ObpComputeGrantedAccessIndex (
  511. NTSTATUS
  512. NtDuplicateObject (
  513. IN HANDLE SourceProcessHandle,
  514. IN HANDLE SourceHandle,
  515. IN HANDLE TargetProcessHandle OPTIONAL,
  516. OUT PHANDLE TargetHandle OPTIONAL,
  517. IN ACCESS_MASK DesiredAccess,
  518. IN ULONG HandleAttributes,
  519. IN ULONG Options
  520. )
  521. Called By:
  522. It Calls: obinit.c\KMUTANT ObpInitKillMutant;
  523. obhandle.c\ObpIncrementHandleCount (
  524. obhandle.c\ObpDecrementHandleCount (
  525. obhandle.c\ObpValidateDesiredAccess (
  526. obhandle.c\ObpComputeGrantedAccessIndex (
  527. obref.c\ObReferenceObjectByHandle (
  528. obref.c\ObDereferenceObject (
  529. obclose.c\NtClose (
  530. NTSTATUS
  531. ObpValidateDesiredAccess (
  532. IN ACCESS_MASK DesiredAccess
  533. )
  534. Called By: obhandle.c\NtDuplicateObject
  535. It Calls:
  536. NTSTATUS
  537. ObpCaptureHandleInformation (
  538. IN OUT PSYSTEM_HANDLE_TABLE_ENTRY_INFO *HandleEntryInfo,
  539. IN HANDLE UniqueProcessId,
  540. IN PVOID HandleTableEntry,
  541. IN HANDLE HandleIndex,
  542. IN ULONG Length,
  543. IN OUT PULONG RequiredLength
  544. )
  545. Called By: obhandle.c\ObGetHandleInformation
  546. It Calls: obhandle.c\ObpTranslateGrantedAccessIndex (
  547. NTSTATUS
  548. ObGetHandleInformation (
  549. OUT PSYSTEM_HANDLE_INFORMATION HandleInformation,
  550. IN ULONG Length,
  551. OUT PULONG ReturnLength OPTIONAL
  552. )
  553. Called By:
  554. It Calls: obhandle.c\ObpCaptureHandleInformation (
  555. Global variables and who references them
  556. ULONG ObpXXX1;
  557. obhandle.c\ObpComputeGrantedAccessIndex
  558. ULONG ObpXXX2;
  559. obhandle.c\ObpComputeGrantedAccessIndex
  560. ULONG ObpXXX3;
  561. obhandle.c\ObpTranslateGrantedAccessIndex
  562. Procedures
  563. USHORT
  564. ObpComputeGrantedAccessIndex (
  565. ACCESS_MASK GrantedAccess
  566. )
  567. Called By: obhandle.c\ObpCreateHandle
  568. obhandle.c\ObpCreateUnnamedHandle
  569. obhandle.c\NtDuplicateObject
  570. It Calls: obhandle.c\ULONG ObpXXX1;
  571. obhandle.c\ULONG ObpXXX2;
  572. ACCESS_MASK
  573. ObpTranslateGrantedAccessIndex (
  574. USHORT GrantedAccessIndex
  575. )
  576. Called By: obclose.c\NtClose
  577. obhandle.c\ObpCaptureHandleInformation
  578. obinit.c\ObDupHandleProcedure
  579. obinit.c\ObpEnumFindHandleProcedure
  580. obref.c\ObReferenceObjectByHandle
  581. obwait.c\NtWaitForMultipleObjects
  582. It Calls: obhandle.c\ULONG ObpXXX3;
  583. Module Name:
  584. obinsert.c
  585. Procedures
  586. NTSTATUS
  587. ObInsertObject (
  588. IN PVOID Object,
  589. IN PACCESS_STATE AccessState OPTIONAL,
  590. IN ACCESS_MASK DesiredAccess OPTIONAL,
  591. IN ULONG ObjectPointerBias,
  592. OUT PVOID *NewObject OPTIONAL,
  593. OUT PHANDLE Handle
  594. )
  595. Called By: obdir.c\NtCreateDirectoryObject
  596. oblink.c\NtCreateSymbolicLinkObject
  597. It Calls: obhandle.c\ObpCreateHandle (
  598. obhandle.c\ObpCreateUnnamedHandle (
  599. obref.c\ObpDeleteNameCheck (
  600. obref.c\ObDereferenceObject (
  601. obse.c\ObGetObjectSecurity (
  602. obse.c\ObReleaseObjectSecurity (
  603. obse.c\ObAssignSecurity (
  604. obse.c\ObpValidateAccessMask (
  605. obdir.c\ObpDeleteDirectoryEntry (
  606. obdir.c\ObpLookupObjectName (
  607. oblink.c\ObpCreateSymbolicLinkName (
  608. Module Name:
  609. obref.c
  610. Global variables and who references them
  611. BOOLEAN ObpRemoveQueueActive;
  612. obref.c\ObfDereferenceObject
  613. obref.c\ObpProcessRemoveObjectQueue
  614. Procedures
  615. ULONG
  616. ObGetObjectPointerCount (
  617. IN PVOID Object
  618. )
  619. Called By:
  620. It Calls:
  621. NTSTATUS
  622. ObOpenObjectByName (
  623. IN POBJECT_ATTRIBUTES ObjectAttributes,
  624. IN POBJECT_TYPE ObjectType OPTIONAL,
  625. IN KPROCESSOR_MODE AccessMode,
  626. IN OUT PACCESS_STATE AccessState OPTIONAL,
  627. IN ACCESS_MASK DesiredAccess OPTIONAL,
  628. IN OUT PVOID ParseContext OPTIONAL,
  629. OUT PHANDLE Handle
  630. )
  631. Called By: obdir.c\NtOpenDirectoryObject
  632. oblink.c\NtOpenSymbolicLinkObject
  633. It Calls: obcreate.c\ObpCaptureObjectCreateInformation (
  634. obcreate.c\ObpFreeObjectNameBuffer (
  635. obhandle.c\ObpCreateHandle (
  636. obref.c\ObDereferenceObject (
  637. obse.c\ObpValidateAccessMask (
  638. obdir.c\ObpLookupObjectName (
  639. NTSTATUS
  640. ObOpenObjectByPointer (
  641. IN PVOID Object,
  642. IN ULONG HandleAttributes,
  643. IN PACCESS_STATE PassedAccessState OPTIONAL,
  644. IN ACCESS_MASK DesiredAccess,
  645. IN POBJECT_TYPE ObjectType OPTIONAL,
  646. IN KPROCESSOR_MODE AccessMode,
  647. OUT PHANDLE Handle
  648. )
  649. Called By:
  650. It Calls: obhandle.c\ObpCreateHandle (
  651. obref.c\ObReferenceObjectByPointer (
  652. obref.c\ObDereferenceObject (
  653. NTSTATUS
  654. ObReferenceObjectByHandle (
  655. IN HANDLE Handle,
  656. IN ACCESS_MASK DesiredAccess,
  657. IN POBJECT_TYPE ObjectType OPTIONAL,
  658. IN KPROCESSOR_MODE AccessMode,
  659. OUT PVOID *Object,
  660. OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL
  661. )
  662. Called By: obclose.c\NtMakeTemporaryObject
  663. obdevmap.c\ObSetDeviceMap
  664. obdir.c\ObpLookupObjectName
  665. obdir.c\NtQueryDirectoryObject
  666. obhandle.c\NtDuplicateObject
  667. obinit.c\ObInitSystem
  668. oblink.c\NtQuerySymbolicLinkObject
  669. obquery.c\NtQueryObject
  670. obse.c\NtSetSecurityObject
  671. obse.c\NtQuerySecurityObject
  672. obwait.c\NtSignalAndWaitForSingleObject
  673. obwait.c\NtWaitForSingleObject
  674. obwait.c\ObWaitForSingleObject
  675. It Calls: obhandle.c\ObpIncrPointerCount (
  676. obhandle.c\ObpTranslateGrantedAccessIndex (
  677. NTSTATUS
  678. ObReferenceObjectByName (
  679. IN PUNICODE_STRING ObjectName,
  680. IN ULONG Attributes,
  681. IN PACCESS_STATE AccessState OPTIONAL,
  682. IN ACCESS_MASK DesiredAccess OPTIONAL,
  683. IN POBJECT_TYPE ObjectType,
  684. IN KPROCESSOR_MODE AccessMode,
  685. IN OUT PVOID ParseContext OPTIONAL,
  686. OUT PVOID *Object
  687. )
  688. Called By:
  689. It Calls: obcreate.c\ObpCaptureObjectName (
  690. obcreate.c\ObpFreeObjectNameBuffer (
  691. obse.c\ObpCheckObjectReference (
  692. obdir.c\ObpLookupObjectName (
  693. LONG
  694. FASTCALL
  695. ObfReferenceObject (
  696. IN PVOID Object
  697. )
  698. Called By:
  699. It Calls: obhandle.c\ObpIncrPointerCount (
  700. NTSTATUS
  701. ObReferenceObjectByPointer (
  702. IN PVOID Object,
  703. IN ACCESS_MASK DesiredAccess,
  704. IN POBJECT_TYPE ObjectType,
  705. IN KPROCESSOR_MODE AccessMode
  706. )
  707. Called By: obdir.c\ObpLookupObjectName
  708. oblink.c\ObpParseSymbolicLink
  709. obref.c\ObOpenObjectByPointer
  710. It Calls: obhandle.c\ObpIncrPointerCount (
  711. LONG
  712. FASTCALL
  713. ObfDereferenceObject (
  714. IN PVOID Object
  715. )
  716. Called By: obref.c\ObDereferenceObject
  717. It Calls: obref.c\BOOLEAN ObpRemoveQueueActive;
  718. obhandle.c\ObpDecrPointerCountWithResult (
  719. obref.c\ObpProcessRemoveObjectQueue (
  720. obref.c\ObpRemoveObjectRoutine (
  721. VOID
  722. ObpProcessRemoveObjectQueue (
  723. PVOID Parameter
  724. )
  725. Called By: obref.c\ObfDereferenceObject
  726. It Calls: obref.c\BOOLEAN ObpRemoveQueueActive;
  727. obref.c\ObpRemoveObjectRoutine (
  728. VOID
  729. ObpRemoveObjectRoutine (
  730. PVOID Object
  731. )
  732. Called By: obref.c\ObfDereferenceObject
  733. obref.c\ObpProcessRemoveObjectQueue
  734. It Calls:
  735. VOID
  736. ObpDeleteNameCheck (
  737. IN PVOID Object,
  738. IN BOOLEAN TypeMutexHeld
  739. )
  740. Called By: obclose.c\ObMakeTemporaryObject
  741. obhandle.c\ObpDecrementHandleCount
  742. obinsert.c\ObInsertObject
  743. It Calls: obref.c\ObDereferenceObject (
  744. obdir.c\ObpLookupDirectoryEntry (
  745. obdir.c\ObpDeleteDirectoryEntry (
  746. oblink.c\ObpDeleteSymbolicLinkName (
  747. LONG
  748. ObDereferenceObject (
  749. IN PVOID Object
  750. )
  751. Called By: obclose.c\NtClose
  752. obclose.c\NtMakeTemporaryObject
  753. obdevmap.c\ObSetDeviceMap
  754. obdevmap.c\ObDereferenceDeviceMap
  755. obdir.c\ObpLookupObjectName
  756. obdir.c\NtQueryDirectoryObject
  757. obhandle.c\NtDuplicateObject
  758. obinsert.c\ObInsertObject
  759. oblink.c\ObpProcessDosDeviceSymbolicLink
  760. oblink.c\NtCreateSymbolicLinkObject
  761. oblink.c\NtQuerySymbolicLinkObject
  762. obquery.c\NtQueryObject
  763. obref.c\ObOpenObjectByName
  764. obref.c\ObOpenObjectByPointer
  765. obref.c\ObpDeleteNameCheck
  766. obse.c\NtSetSecurityObject
  767. obse.c\NtQuerySecurityObject
  768. obwait.c\NtSignalAndForSingleObject
  769. obwait.c\NtWaitForSingleObject
  770. obwait.c\NtWaitForMultipleObjects
  771. obwait.c\ObWaitForSingleObject
  772. It Calls: obref.c\ObfDereferenceObject (
  773. Module Name:
  774. obse.c
  775. Procedures
  776. NTSTATUS
  777. NtSetSecurityObject (
  778. IN HANDLE Handle,
  779. IN SECURITY_INFORMATION SecurityInformation,
  780. IN PSECURITY_DESCRIPTOR SecurityDescriptor
  781. )
  782. Called By:
  783. It Calls: obref.c\ObReferenceObjectByHandle (
  784. obref.c\ObDereferenceObject (
  785. NTSTATUS
  786. NtQuerySecurityObject (
  787. IN HANDLE Handle,
  788. IN SECURITY_INFORMATION SecurityInformation,
  789. OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
  790. IN ULONG Length,
  791. OUT PULONG LengthNeeded
  792. )
  793. Called By:
  794. It Calls: obref.c\ObReferenceObjectByHandle (
  795. obref.c\ObDereferenceObject (
  796. BOOLEAN
  797. ObCheckObjectAccess (
  798. IN PVOID Object,
  799. IN OUT PACCESS_STATE AccessState,
  800. IN BOOLEAN TypeMutexLocked,
  801. IN KPROCESSOR_MODE AccessMode,
  802. OUT PNTSTATUS AccessStatus
  803. )
  804. Called By: obhandle.c\ObpIncrementHandleCount
  805. It Calls: obse.c\ObGetObjectSecurity (
  806. obse.c\ObReleaseObjectSecurity (
  807. BOOLEAN
  808. ObpCheckObjectReference (
  809. IN PVOID Object,
  810. IN OUT PACCESS_STATE AccessState,
  811. IN BOOLEAN TypeMutexLocked,
  812. IN KPROCESSOR_MODE AccessMode,
  813. OUT PNTSTATUS AccessStatus
  814. )
  815. Called By: obref.c\ObReferenceObjectByName
  816. It Calls: obse.c\ObGetObjectSecurity (
  817. obse.c\ObReleaseObjectSecurity (
  818. BOOLEAN
  819. ObpCheckTraverseAccess (
  820. IN PVOID DirectoryObject,
  821. IN ACCESS_MASK TraverseAccess,
  822. IN PACCESS_STATE AccessState OPTIONAL,
  823. IN BOOLEAN TypeMutexLocked,
  824. IN KPROCESSOR_MODE PreviousMode,
  825. OUT PNTSTATUS AccessStatus
  826. )
  827. Called By: obdir.c\ObpLookupObjectName
  828. It Calls: obse.c\ObGetObjectSecurity (
  829. obse.c\ObReleaseObjectSecurity (
  830. BOOLEAN
  831. ObCheckCreateObjectAccess (
  832. IN PVOID DirectoryObject,
  833. IN ACCESS_MASK CreateAccess,
  834. IN PACCESS_STATE AccessState,
  835. IN PUNICODE_STRING ComponentName,
  836. IN BOOLEAN TypeMutexLocked,
  837. IN KPROCESSOR_MODE PreviousMode,
  838. OUT PNTSTATUS AccessStatus
  839. )
  840. Called By: obdir.c\ObpLookupObjectName
  841. It Calls: obse.c\ObGetObjectSecurity (
  842. obse.c\ObReleaseObjectSecurity (
  843. NTSTATUS
  844. ObAssignObjectSecurityDescriptor (
  845. IN PVOID Object,
  846. IN PSECURITY_DESCRIPTOR SecurityDescriptor OPTIONAL,
  847. IN POOL_TYPE PoolType
  848. )
  849. Called By:
  850. It Calls: obsdata.c\ObpLogSecurityDescriptor (
  851. NTSTATUS
  852. ObGetObjectSecurity (
  853. IN PVOID Object,
  854. OUT PSECURITY_DESCRIPTOR *SecurityDescriptor,
  855. OUT PBOOLEAN MemoryAllocated
  856. )
  857. Called By: obinsert.c\ObInsertObject
  858. oblink.c\ObpProcessDosDeviceSymbolicLink
  859. obse.c\ObCheckObjectAccess
  860. obse.c\ObpCheckObjectReference
  861. obse.c\ObpCheckTraverseAccess
  862. obse.c\ObCheckCreateObjectAccess
  863. It Calls: obsdata.c\ObpReferenceSecurityDescriptor (
  864. VOID
  865. ObReleaseObjectSecurity (
  866. IN PSECURITY_DESCRIPTOR SecurityDescriptor,
  867. IN BOOLEAN MemoryAllocated
  868. )
  869. Called By: obinsert.c\ObInsertObject
  870. obse.c\ObCheckObjectAccess
  871. obse.c\ObpCheckObjectReference
  872. obse.c\ObpCheckTraverseAccess
  873. obse.c\ObCheckCreateObjectAccess
  874. It Calls: obsdata.c\ObpDereferenceSecurityDescriptor (
  875. NTSTATUS
  876. ObValidateSecurityQuota (
  877. IN PVOID Object,
  878. IN ULONG NewSize
  879. )
  880. Called By:
  881. It Calls:
  882. NTSTATUS
  883. ObAssignSecurity (
  884. IN PACCESS_STATE AccessState,
  885. IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL,
  886. IN PVOID Object,
  887. IN POBJECT_TYPE ObjectType
  888. )
  889. Called By: obinsert.c\ObInsertObject
  890. It Calls:
  891. NTSTATUS
  892. ObSetSecurityDescriptorInfo (
  893. IN PVOID Object,
  894. IN PSECURITY_INFORMATION SecurityInformation,
  895. IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
  896. IN OUT PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
  897. IN POOL_TYPE PoolType,
  898. IN PGENERIC_MAPPING GenericMapping
  899. )
  900. Called By:
  901. It Calls: obsdata.c\ObpLogSecurityDescriptor (
  902. obsdata.c\ObpDereferenceSecurityDescriptor (
  903. obsdata.c\ObpAcquireDescriptorCacheReadLock (
  904. obsdata.c\ObpReleaseDescriptorCacheLock (
  905. NTSTATUS
  906. ObpValidateAccessMask (
  907. PACCESS_STATE AccessState
  908. )
  909. Called By: obinsert.c\ObInsertObject
  910. obref.c\ObOpenObjectByName
  911. It Calls:
  912. Module Name:
  913. obtype.c
  914. Procedures
  915. NTSTATUS
  916. ObCreateObjectType (
  917. IN PUNICODE_STRING TypeName,
  918. IN POBJECT_TYPE_INITIALIZER ObjectTypeInitializer,
  919. IN PSECURITY_DESCRIPTOR SecurityDescriptor OPTIONAL,
  920. OUT POBJECT_TYPE *ObjectType
  921. )
  922. Called By: obinit.c\ObInitSystem
  923. It Calls: obcreate.c\ObpAllocateObject (
  924. obdir.c\ObpLookupDirectoryEntry (
  925. obdir.c\ObpInsertDirectoryEntry (
  926. NTSTATUS
  927. ObEnumerateObjectsByType(
  928. IN POBJECT_TYPE ObjectType,
  929. IN OB_ENUM_OBJECT_TYPE_ROUTINE EnumerationRoutine,
  930. IN PVOID Parameter
  931. )
  932. Called By:
  933. It Calls:
  934. NTSTATUS
  935. ObGetObjectInformation(
  936. IN PCHAR UserModeBufferAddress,
  937. OUT PSYSTEM_OBJECTTYPE_INFORMATION ObjectInformation,
  938. IN ULONG Length,
  939. OUT PULONG ReturnLength OPTIONAL
  940. )
  941. Called By:
  942. It Calls: obquery.c\ObQueryNameString (
  943. Module Name:
  944. obdir.c
  945. Procedures
  946. NTSTATUS
  947. NtCreateDirectoryObject (
  948. OUT PHANDLE DirectoryHandle,
  949. IN ACCESS_MASK DesiredAccess,
  950. IN POBJECT_ATTRIBUTES ObjectAttributes
  951. )
  952. Called By: obinit.c\ObInitSystem
  953. obinit.c\ObpCreateDosDevicesDirectory
  954. It Calls: obcreate.c\ObCreateObject (
  955. obinsert.c\ObInsertObject (
  956. NTSTATUS
  957. NtOpenDirectoryObject (
  958. OUT PHANDLE DirectoryHandle,
  959. IN ACCESS_MASK DesiredAccess,
  960. IN POBJECT_ATTRIBUTES ObjectAttributes
  961. )
  962. Called By:
  963. It Calls: obref.c\ObOpenObjectByName (
  964. PVOID
  965. ObpLookupDirectoryEntry (
  966. IN POBJECT_DIRECTORY Directory,
  967. IN PUNICODE_STRING Name,
  968. IN ULONG Attributes
  969. )
  970. Called By: obdir.c\ObpLookupObjectName
  971. obinit.c\ObInitSystem
  972. oblink.c\ObpProcessDosDeviceSymbolicLink
  973. obref.c\ObpDeleteNameCheck
  974. obtype.c\ObCreateObjectType
  975. It Calls:
  976. BOOLEAN
  977. ObpInsertDirectoryEntry (
  978. IN POBJECT_DIRECTORY Directory,
  979. IN PVOID Object
  980. )
  981. Called By: obdir.c\ObpLookupObjectName
  982. obinit.c\ObInitSystem
  983. obtype.c\ObCreateObjectType
  984. It Calls: obinit.c\ObInitSystem (
  985. BOOLEAN
  986. ObpDeleteDirectoryEntry (
  987. IN POBJECT_DIRECTORY Directory
  988. )
  989. Called By: obinsert.c\ObInsertObject
  990. obref.c\ObpDeleteNameCheck
  991. It Calls:
  992. NTSTATUS
  993. ObpLookupObjectName (
  994. IN HANDLE RootDirectoryHandle,
  995. IN PUNICODE_STRING ObjectName,
  996. IN ULONG Attributes,
  997. IN POBJECT_TYPE ObjectType,
  998. IN KPROCESSOR_MODE AccessMode,
  999. IN PVOID ParseContext OPTIONAL,
  1000. IN PSECURITY_QUALITY_OF_SERVICE SecurityQos OPTIONAL,
  1001. IN PVOID InsertObject OPTIONAL,
  1002. IN OUT PACCESS_STATE AccessState,
  1003. OUT PBOOLEAN DirectoryLocked,
  1004. OUT PVOID *FoundObject
  1005. )
  1006. Called By: obinsert.c\ObInsertObject
  1007. obref.c\ObOpenObjectByName
  1008. obref.c\ObReferenceObjectByName
  1009. It Calls: obinit.c\UNICODE_STRING ObpDosDevicesShortName;
  1010. obinit.c\ULARGE_INTEGER ObpDosDevicesShortNamePrefix;
  1011. obinit.c\ULARGE_INTEGER ObpDosDevicesShortNameRoot
  1012. obhandle.c\ObpIncrPointerCount (
  1013. obref.c\ObReferenceObjectByHandle (
  1014. obref.c\ObReferenceObjectByPointer (
  1015. obref.c\ObDereferenceObject (
  1016. obse.c\ObpCheckTraverseAccess (
  1017. obse.c\ObCheckCreateObjectAccess (
  1018. obdir.c\ObpLookupDirectoryEntry (
  1019. obdir.c\ObpInsertDirectoryEntry (
  1020. NTSTATUS
  1021. NtQueryDirectoryObject (
  1022. IN HANDLE DirectoryHandle,
  1023. OUT PVOID Buffer,
  1024. IN ULONG Length,
  1025. IN BOOLEAN ReturnSingleEntry,
  1026. IN BOOLEAN RestartScan,
  1027. IN OUT PULONG Context,
  1028. OUT PULONG ReturnLength OPTIONAL
  1029. )
  1030. Called By:
  1031. It Calls: obref.c\ObReferenceObjectByHandle (
  1032. obref.c\ObDereferenceObject (
  1033. Module Name:
  1034. obdevmap.c
  1035. Procedures
  1036. NTSTATUS
  1037. ObSetDeviceMap (
  1038. IN PEPROCESS TargetProcess,
  1039. IN HANDLE DirectoryHandle
  1040. )
  1041. Called By: obinit.c\ObpCreateDosDevicesDirectory
  1042. It Calls: obinit.c\PDEVICE_MAP ObSystemDeviceMap
  1043. obref.c\ObReferenceObjectByHandle (
  1044. obref.c\ObDereferenceObject (
  1045. NTSTATUS
  1046. ObQueryDeviceMapInformation (
  1047. IN PEPROCESS TargetProcess,
  1048. OUT PPROCESS_DEVICEMAP_INFORMATION DeviceMapInformation
  1049. )
  1050. Called By:
  1051. It Calls: obinit.c\PDEVICE_MAP ObSystemDeviceMap
  1052. VOID
  1053. ObInheritDeviceMap (
  1054. IN PEPROCESS NewProcess,
  1055. IN PEPROCESS ParentProcess
  1056. )
  1057. Called By:
  1058. It Calls: obinit.c\PDEVICE_MAP ObSystemDeviceMap
  1059. VOID
  1060. ObDereferenceDeviceMap (
  1061. IN PEPROCESS Process
  1062. )
  1063. Called By:
  1064. It Calls: obref.c\ObDereferenceObject (
  1065. Module Name:
  1066. oblink.c
  1067. Global variables and who references them
  1068. extern POBJECT_TYPE IoDeviceObjectType;
  1069. oblink.c\ObpProcessDosDeviceSymbolicLink
  1070. Procedures
  1071. NTSTATUS
  1072. ObpParseSymbolicLink (
  1073. IN PVOID ParseObject,
  1074. IN PVOID ObjectType,
  1075. IN PACCESS_STATE AccessState,
  1076. IN KPROCESSOR_MODE AccessMode,
  1077. IN ULONG Attributes,
  1078. IN OUT PUNICODE_STRING CompleteName,
  1079. IN OUT PUNICODE_STRING RemainingName,
  1080. IN OUT PVOID Context OPTIONAL,
  1081. IN PSECURITY_QUALITY_OF_SERVICE SecurityQos OPTIONAL,
  1082. OUT PVOID *Object
  1083. )
  1084. Called By: obinit.c\ObInitSystem
  1085. It Calls: obref.c\ObReferenceObjectByPointer (
  1086. VOID
  1087. ObpProcessDosDeviceSymbolicLink (
  1088. POBJECT_SYMBOLIC_LINK SymbolicLink,
  1089. ULONG Action
  1090. )
  1091. Called By: oblink.c\ObpDeleteSymbolicLinkName
  1092. oblink.c\ObpCreateSymbolicLinkName
  1093. It Calls: oblink.c\extern POBJECT_TYPE IoDeviceObjectType;
  1094. obref.c\ObDereferenceObject (
  1095. obse.c\ObGetObjectSecurity (
  1096. obdir.c\ObpLookupDirectoryEntry (
  1097. VOID
  1098. ObpDeleteSymbolicLinkName (
  1099. POBJECT_SYMBOLIC_LINK SymbolicLink
  1100. )
  1101. Called By: obref.c\ObpDeleteNameCheck
  1102. It Calls: oblink.c\ObpProcessDosDeviceSymbolicLink (
  1103. VOID
  1104. ObpCreateSymbolicLinkName (
  1105. POBJECT_SYMBOLIC_LINK SymbolicLink
  1106. )
  1107. Called By: obinsert.c\ObInsertObject
  1108. It Calls: oblink.c\ObpProcessDosDeviceSymbolicLink (
  1109. NTSTATUS
  1110. NtCreateSymbolicLinkObject (
  1111. OUT PHANDLE LinkHandle,
  1112. IN ACCESS_MASK DesiredAccess,
  1113. IN POBJECT_ATTRIBUTES ObjectAttributes,
  1114. IN PUNICODE_STRING LinkTarget
  1115. )
  1116. Called By: obinit.c\ObpCreateDosDevicesDirectory
  1117. It Calls: obcreate.c\ObCreateObject (
  1118. obinset.c\ObInsertObject (
  1119. obref.c\ObDereferenceObject (
  1120. NTSTATUS
  1121. NtOpenSymbolicLinkObject (
  1122. OUT PHANDLE LinkHandle,
  1123. IN ACCESS_MASK DesiredAccess,
  1124. IN POBJECT_ATTRIBUTES ObjectAttributes
  1125. )
  1126. Called By:
  1127. It Calls: obref.c\ObOpenObjectByName (
  1128. NTSTATUS
  1129. NtQuerySymbolicLinkObject (
  1130. IN HANDLE LinkHandle,
  1131. IN OUT PUNICODE_STRING LinkTarget,
  1132. OUT PULONG ReturnedLength OPTIONAL
  1133. )
  1134. Called By:
  1135. It Calls: obref.c\ObReferenceObjectByHandle (
  1136. obref.c\ObDereferenceObject (
  1137. Module Name:
  1138. obclose.c
  1139. Global variables and who references them
  1140. extern BOOLEAN SepAdtAuditingEnabled;
  1141. obclose.c\NtClose
  1142. Procedures
  1143. NTSTATUS
  1144. NtClose (
  1145. IN HANDLE Handle
  1146. )
  1147. Called By: obhandle.c\NtDuplicateObject
  1148. obinit.c\ObInitSystem
  1149. obinit.c\ObpCreateDosDevicesDirectory
  1150. It Calls: obclose.c\extern BOOLEAN SepAdtAuditingEnabled;
  1151. obhandle.c\ObpDecrementHandleCount (
  1152. obhandle.c\ObpTranslateGrantedAccessIndex (
  1153. obref.c\ObDereferenceObject (
  1154. NTSTATUS
  1155. NtMakeTemporaryObject (
  1156. IN HANDLE Handle
  1157. )
  1158. Called By:
  1159. It Calls: obref.c\ObReferenceObjectByHandle (
  1160. obref.c\ObDereferenceObject (
  1161. obclose.c\ObMakeTemporaryObject (
  1162. VOID
  1163. ObMakeTemporaryObject (
  1164. IN PVOID Object
  1165. )
  1166. Called By: obclose.c\NtMakeTemporaryObject
  1167. It Calls: obref.c\ObpDeleteNameCheck (
  1168. Module Name:
  1169. obquery.c
  1170. Procedures
  1171. NTSTATUS
  1172. NtQueryObject (
  1173. IN HANDLE Handle,
  1174. IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
  1175. OUT PVOID ObjectInformation,
  1176. IN ULONG ObjectInformationLength,
  1177. OUT PULONG ReturnLength OPTIONAL
  1178. )
  1179. Called By:
  1180. It Calls: obref.c\ObReferenceObjectByHandle (
  1181. obref.c\ObDereferenceObject (
  1182. obquery.c\ObQueryNameString (
  1183. obquery.c\ObQueryTypeInfo (
  1184. PUNICODE_STRING
  1185. ObGetObjectName (
  1186. IN PVOID Object
  1187. )
  1188. Called By:
  1189. It Calls:
  1190. NTSTATUS
  1191. ObQueryNameString (
  1192. IN PVOID Object,
  1193. OUT POBJECT_NAME_INFORMATION ObjectNameInfo,
  1194. IN ULONG Length,
  1195. OUT PULONG ReturnLength
  1196. )
  1197. Called By: obquery.c\NtQueryObject
  1198. obtype.c\ObGetObjectInformation
  1199. It Calls:
  1200. NTSTATUS
  1201. ObQueryTypeName (
  1202. IN PVOID Object,
  1203. PUNICODE_STRING ObjectTypeName,
  1204. IN ULONG Length,
  1205. OUT PULONG ReturnLength
  1206. )
  1207. Called By: obtype.c\ObGetObjectInformation
  1208. It Calls:
  1209. NTSTATUS
  1210. ObQueryTypeInfo (
  1211. IN POBJECT_TYPE ObjectType,
  1212. OUT POBJECT_TYPE_INFORMATION ObjectTypeInfo,
  1213. IN ULONG Length,
  1214. OUT PULONG ReturnLength
  1215. )
  1216. Called By: obquery.c\NtQueryObject
  1217. It Calls:
  1218. NTSTATUS
  1219. ObQueryObjectAuditingByHandle (
  1220. IN HANDLE Handle,
  1221. OUT PBOOLEAN GenerateOnClose
  1222. )
  1223. Called By:
  1224. It Calls:
  1225. BOOLEAN
  1226. ObpSetHandleAttributes (
  1227. IN OUT PVOID TableEntry,
  1228. IN ULONG Parameter
  1229. )
  1230. Called By: obquery.c\NtSetInformationObject
  1231. It Calls:
  1232. NTSTATUS
  1233. NTAPI
  1234. NtSetInformationObject (
  1235. IN HANDLE Handle,
  1236. IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
  1237. IN PVOID ObjectInformation,
  1238. IN ULONG ObjectInformationLength
  1239. )
  1240. Called By: obquery.c\ObpSetHandleAttributes (
  1241. It Calls:
  1242. Module Name:
  1243. obsdata.c
  1244. Global variables and who references them
  1245. ULONG ObsDebugFlags = 0;
  1246. ULONG ObsTotalCacheEntries = 0;
  1247. PLIST_ENTRY *ObsSecurityDescriptorCache = NULL;
  1248. ERESOURCE ObsSecurityDescriptorCacheLock;
  1249. Procedures
  1250. NTSTATUS
  1251. ObpInitSecurityDescriptorCache (
  1252. VOID
  1253. )
  1254. Called By: obinit.c\ObInitSystem
  1255. It Calls:
  1256. ULONG
  1257. ObpHashSecurityDescriptor (
  1258. PSECURITY_DESCRIPTOR SecurityDescriptor
  1259. )
  1260. Called By: obsdata.c\ObpLogSecurityDescriptor
  1261. It Calls: obsdata.c\ObpHashBuffer (
  1262. ULONG
  1263. ObpHashBuffer (
  1264. PVOID Data,
  1265. ULONG Length
  1266. )
  1267. Called By: obsdata.c\ObpHashSecurityDescriptor
  1268. It Calls:
  1269. NTSTATUS
  1270. ObpLogSecurityDescriptor (
  1271. IN PSECURITY_DESCRIPTOR InputSecurityDescriptor,
  1272. OUT PSECURITY_DESCRIPTOR *OutputSecurityDescriptor
  1273. )
  1274. Called By: obse.c\ObAssignObjectSecurityDescriptor
  1275. obse.c\ObSetSecurityDescriptorInfo
  1276. It Calls: obsdata.c\ObpHashSecurityDescriptor (
  1277. obsdata.c\ObpCreateCacheEntry (
  1278. obsdata.c\ObpCompareSecurityDescriptors (
  1279. obsdata.c\ObpAcquireDescriptorCacheWriteLock (
  1280. obsdata.c\ObpReleaseDescriptorCacheLock (
  1281. PSECURITY_DESCRIPTOR_HEADER
  1282. ObpCreateCacheEntry (
  1283. PSECURITY_DESCRIPTOR InputSecurityDescriptor,
  1284. ULONG FullHash
  1285. )
  1286. Called By: obsdata.c\ObpLogSecurityDescriptor
  1287. It Calls:
  1288. PSECURITY_DESCRIPTOR
  1289. ObpReferenceSecurityDescriptor (
  1290. PVOID Object
  1291. )
  1292. Called By: obse.c\ObGetObjectSecurity
  1293. It Calls: obsdata.c\ObpAcquireDescriptorCacheWriteLock (
  1294. obsdata.c\ObpReleaseDescriptorCacheLock (
  1295. NTSTATUS
  1296. ObDeassignSecurity (
  1297. IN OUT PSECURITY_DESCRIPTOR *SecurityDescriptor
  1298. )
  1299. Called By:
  1300. It Calls: obsdata.c\ObpDereferenceSecurityDescriptor (
  1301. VOID
  1302. ObpDereferenceSecurityDescriptor (
  1303. PSECURITY_DESCRIPTOR SecurityDescriptor
  1304. )
  1305. Called By: obsdata.c\ObDeassignSecurity
  1306. obse.c\ObReleaseObjectSecurity
  1307. obse.c\ObSetSecurityDescriptorInfo
  1308. It Calls: obsdata.c\ObpDestroySecurityDescriptorHeader (
  1309. obsdata.c\ObpAcquireDescriptorCacheWriteLock (
  1310. obsdata.c\ObpReleaseDescriptorCacheLock (
  1311. VOID
  1312. ObpDestroySecurityDescriptorHeader (
  1313. IN PSECURITY_DESCRIPTOR_HEADER Header
  1314. )
  1315. Called By: obsdata.c\ObpDereferenceSecurityDescriptor
  1316. It Calls:
  1317. BOOLEAN
  1318. ObpCompareSecurityDescriptors (
  1319. IN PSECURITY_DESCRIPTOR SD1,
  1320. IN PSECURITY_DESCRIPTOR SD2
  1321. )
  1322. Called By: obsdata.c\ObpLogSecurityDescriptor
  1323. It Calls:
  1324. VOID
  1325. ObpAcquireDescriptorCacheWriteLock (
  1326. VOID
  1327. )
  1328. Called By: obsdata.c\ObpLogSecurityDescriptor
  1329. obsdata.c\ObpReferenceSecurityDescriptor
  1330. obsdata.c\ObpDereferenceSecurityDescriptor
  1331. It Calls:
  1332. VOID
  1333. ObpAcquireDescriptorCacheReadLock (
  1334. VOID
  1335. )
  1336. Called By: obse.c\ObSetSecurityDescriptorInfo
  1337. It Calls:
  1338. VOID
  1339. ObpReleaseDescriptorCacheLock (
  1340. VOID
  1341. )
  1342. Called By: obsdata.c\ObpLogSecurityDescriptor
  1343. obsdata.c\ObpReferenceSecurityDescriptor
  1344. obsdata.c\ObpDereferenceSecurityDescriptor
  1345. obse.c\ObSetSecurityDescriptorInfo
  1346. It Calls:
  1347. Module Name:
  1348. obwait.c
  1349. Global variables and who references them
  1350. extern POBJECT_TYPE ExEventObjectType;
  1351. obwait.c\NtSignalAndWaitForSingleObject
  1352. extern POBJECT_TYPE ExMutantObjectType;
  1353. obwait.c\NtSignalAndWaitForSingleObject
  1354. extern POBJECT_TYPE ExSemaphoreObjectType;
  1355. obwait.c\NtSignalAndWaitForSingleObject
  1356. Procedures
  1357. NTSTATUS
  1358. NtSignalAndWaitForSingleObject (
  1359. IN HANDLE SignalHandle,
  1360. IN HANDLE WaitHandle,
  1361. IN BOOLEAN Alertable,
  1362. IN PLARGE_INTEGER Timeout OPTIONAL
  1363. )
  1364. Called By:
  1365. It Calls: obwait.c\extern POBJECT_TYPE ExEventObjectType;
  1366. obwait.c\extern POBJECT_TYPE ExSemaphoreObjectType;
  1367. obwait.c\extern POBJECT_TYPE ExMutantObjectType;
  1368. obref.c\ObReferenceObjectByHandle (
  1369. obref.c\ObDereferenceObject (
  1370. NTSTATUS
  1371. NtWaitForSingleObject (
  1372. IN HANDLE Handle,
  1373. IN BOOLEAN Alertable,
  1374. IN PLARGE_INTEGER Timeout OPTIONAL
  1375. )
  1376. Called By:
  1377. It Calls: obref.c\ObReferenceObjectByHandle (
  1378. obref.c\ObDereferenceObject (
  1379. NTSTATUS
  1380. NtWaitForMultipleObjects (
  1381. IN ULONG Count,
  1382. IN HANDLE Handles[],
  1383. IN WAIT_TYPE WaitType,
  1384. IN BOOLEAN Alertable,
  1385. IN PLARGE_INTEGER Timeout OPTIONAL
  1386. )
  1387. Called By:
  1388. It Calls: obhandle.c\ObpIncrPointerCount (
  1389. obhandle.c\ObpTranslateGrantedAccessIndex (
  1390. obref.c\ObDereferenceObject (
  1391. NTSTATUS
  1392. ObWaitForSingleObject (
  1393. IN HANDLE Handle,
  1394. IN BOOLEAN Alertable,
  1395. IN PLARGE_INTEGER Timeout OPTIONAL
  1396. )
  1397. Called By:
  1398. It Calls: obref.c\ObReferenceObjectByHandle (
  1399. obref.c\ObDereferenceObject (