Escribir un archivo que tiene el nombre de un dispositivo

Me he encontrado con algo curioso. Tengo un descompilador que extrae información de un archivo binario. Extraigo una serie de objetos que necesito escribir por separado en el disco como archivos binarios. Estos objetos son modelos gráficos compilados en una biblioteca. Los objetos tienen nombres incrustados en ellos y necesito usar ese nombre como nombre de archivo.

Estoy usando

try {
            // Open file for reading . 
            using (var fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write)) {
                // Writes a block of bytes to this stream using data from a byte array. . 
                fileStream.Write(byteArray, 0, byteArray.Length);
                // close file stream . 
                fileStream.Close();
            }
            return true;
        }

        catch (Exception exception) {
            return false;
        }

¡Me doy cuenta de que mi manejo de excepciones no es excelente! Sin embargo, el problema apareció cuando uno de los objetos para guardar tenía el nombre COM2 Esto causó una excepción:

FileStream no abrirá dispositivos Win32 como particiones de disco y unidades de cinta.

Así que, en mi ejemplo, estoy tratando de escribir un archivo llamado COM2.mdl y obtengo este error. Realmente no quiero tener que cambiar estos nombres ya que están incrustados por el desarrollador.

Pensé en probar los nombres en una lista de dispositivos que pueden causar el error, pero realmente no sé cuál podría ser esa lista y también significaría cambiar el nombre del archivo que no quiero hacer.

Así que mi pregunta: ¿Hay alguna forma de escribir una matriz de bytes como un archivo binario que no sea FileStream que pueda superar este problema?

Muchas gracia

Respuestas a la pregunta(2)

Su respuesta a la pregunta