OUT PVOID *Object)\r
{\r
DbgPrint("ParseProc() called\n");\r
- return STATUS_SUCCESS;\r
+ *Object = NULL;\r
+ return STATUS_OBJECT_NAME_NOT_FOUND;//STATUS_SUCCESS;\r
}\r
\r
VOID\r
PVOID DirObject;\r
NTSTATUS Status;\r
//PVOID TypeObject;\r
- //USHORT i;\r
+ USHORT i;\r
//UNICODE_STRING ObPathName[NUM_OBTYPES];\r
\r
// Close what we have opened and free what we allocated\r
"Failed to close handle with status=0x%lX", Status);\r
\r
// Now delete the last piece - object types\r
- // FIXME: How to do this correctly?\r
- /*\r
+ // In fact, it's weird to get rid of object types, especially the way,\r
+ // how it's done in the commented section below\r
for (i=0; i<NUM_OBTYPES; i++)\r
- {\r
ObDereferenceObject(ObTypes[i]);\r
- }*/\r
- /*\r
+/*\r
RtlInitUnicodeString(&ObPathName[0], L"\\ObjectTypes\\MyObjectType1");\r
RtlInitUnicodeString(&ObPathName[1], L"\\ObjectTypes\\MyObjectType2");\r
\r
ObDereferenceObject(TypeObject);\r
DPRINT("Reference Name %S = %p, ObTypes[%d] = %p\n",\r
ObPathName[i], TypeObject, i, ObTypes[i]);\r
- }*/\r
+ }\r
+*/\r
}\r
\r
VOID\r
OBJ_CASE_INSENSITIVE, NULL, 0L, ObTypes[i], KernelMode, NULL,\r
&ObBody[0]);\r
\r
- DPRINT("Ref by name %S = %p\n", ObPathName[i], ObBody[i]);\r
+ DPRINT("Ref by name %wZ = %p\n", &ObPathName[i], ObBody[i]);\r
}\r
\r
// Dereference now all of them\r
DPRINT("ObtCreateObjects() done\n");\r
\r
// Reference them in a variety of ways\r
- // FIXME: Disabled due to ParseProcedure call\r
//ObtReferenceTests();\r
\r
// Clean up\r
- // FIXME: Disabled to see results of creating objects in usermode\r
- // and also due to problems with object types removal\r
+ // FIXME: Disable to see results of creating objects in usermode.\r
+ // Also it has problems with object types removal\r
ObtClose();\r
DPRINT("Cleanup done\n");\r
\r