NTSTATUS
CmpDoCreateChild(
  IN  PHHIVE Hive,
  IN  HCELL_INDEX ParentCell,
  IN  PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL,
  IN  PACCESS_STATE AccessState,
  IN  PUNICODE_STRING Name,
  IN  KPROCESSOR_MODE AccessMode,
  IN  PCM_PARSE_CONTEXT Context,
  IN  PCM_KEY_CONTROL_BLOCK ParentKcb,
  IN  USHORT Flags,
  OUT PHCELL_INDEX KeyCell,
  OUT PVOID *Object
  );

Routine Description:

    Creates a new sub-key.  This is called by CmpDoCreate to create child
    sub-keys and CmpCreateLinkNode to create root sub-keys.

Arguments:

    Hive - supplies a pointer to the hive control structure for the hive

    ParentCell - supplies cell index of parent cell

    ParentDescriptor - Supplies security descriptor of parent key, for use
           in inheriting ACLs.

    AccessState - Running security access state information for operation.

    Name - Supplies pointer to a UNICODE string which is the name of the
           child to be created.

    AccessMode - Access mode of the original caller.

    Context - Supplies pointer to CM_PARSE_CONTEXT structure passed through
           the object manager.

    BaseName - Name of object create is relative to

    KeyName - Relative name (to BaseName)

    Flags - Supplies any flags to be set in the newly created node

    KeyCell - Receives the cell index of the newly created sub-key, if any.

    Object - Receives a pointer to the created key object, if any.

Return Value:

    STATUS_SUCCESS - sub-key successfully created.  New object is returned in
            Object, and the new cell's cell index is returned in KeyCell.

    !STATUS_SUCCESS - appropriate error message.