+ case FileRenameInformation: {
+FILE_RENAME_INFORMATION *RenameInformation=(FILE_RENAME_INFORMATION *)FileInformation;
+OBJECT_ATTRIBUTES file_ObjectAttributes;
+UNICODE_STRING file_ObjectAttributes_ObjectName_UnicodeString;
+IO_STATUS_BLOCK file_IoStatusBlock;
+
+ /* Create target 'StackPtr->Parameters.SetFile.FileObject'
+ * by a special way below to open the target directory
+ * from the given full pathname by 'SL_OPEN_TARGET_DIRECTORY'.
+ */
+ RtlInitUnicodeString(&file_ObjectAttributes_ObjectName_UnicodeString, RenameInformation->FileName);
+ InitializeObjectAttributes(
+ &file_ObjectAttributes, /* InitializedAttributes */
+ &file_ObjectAttributes_ObjectName_UnicodeString, /* ObjectName */
+ OBJ_KERNEL_HANDLE | (0/* FIXME: when to use it? */ ? 0x2000/* FIXME: meaning? */ : 0), /* Attributes */
+ RenameInformation->RootDir, /* RootDirectory */
+ NULL); /* SecurityDescriptor; ignored */
+ Status=IoCreateFile(
+ &RootDir_FileHandle, /* FileHandle */
+ FILE_ADD_FILE | 0x100000/* FIXME: meaning? */, /* DesiredAccess */
+ &file_ObjectAttributes, /* ObjectAttributes */
+ &file_IoStatusBlock, /* IoStatusBlock */
+ NULL, /* AllocationSize; ignored for open */
+ 0, /* FileAttributes; ignored for open */
+ FILE_SHARE_READ|FILE_SHARE_WRITE, /* ShareAccess; 0 means exclusive */
+ FILE_OPEN, /* CreateDisposition */
+ FILE_OPEN_FOR_BACKUP_INTENT/* FIXME: why? meaning? */, /* CreateOptions */
+ NULL, /* EaBuffer */
+ 0, /* EaLength */
+ CreateFileTypeNone, /* CreateFileType */
+ NULL, /* ExtraCreateParameters */
+ IO_NO_PARAMETER_CHECKING|IO_FORCE_ACCESS_CHECK|SL_OPEN_TARGET_DIRECTORY); /* Options */
+ if (!NT_SUCCESS(Status))