This feature is entrenched in transaction log architecture, thus a lot of the metadata in CDC is related around the concept of a Log Sequence Number (LSN, every record in the transaction log is uniquely identified by a LSN.

LSNs are ordered such that if LSN2 is greater than LSN1, the change described by the log record referred to by LSN2 occurred after the change described by the log record LSN1).

Once enabled, each DML change to the tracked table is captured from the SQL Server transaction log and it writes changes to the CDC table that is accessed by using a set of table-valued functions.

By default, all of the columns in the tracked table are considered for capturing changes though you can specify only a subset of columns, for privacy or performance reasons, using the parameter of sys.sp_cdc_enable_table system stored procedure.

It means, CDC ignores any new columns that are not identified for capture when the source table was enabled for CDC for the current capture instance as it retains or preserves its shape when DDL changes are applied to its tracked table.

However, it is possible to create a second capture instance for the table that reflects the new column structure.

When CDC is enabled for a table, a CDC table (a table that keeps track of history of changes along with meta-data about changes) and one or two table-valued functions are generated along with capture and cleanup jobs for the database if this is the first table in the database to be enabled for CDC.

You can verify if the table is enabled for CDC by looking into the column of the sys.tables catalog view.

You can verify if the database is enabled for CDC or not by looking at the catalog view.

Next you can enable CDC for the required table using sys.sp_cdc_enable_table system stored procedure.

Also, by default, the CDC table is created in the default filegroup of the database though you can specify to create it on another filegroup using parameter.