PERWAPI.MetaDataOut.WriteMetaData C# (CSharp) Méthode

WriteMetaData() private méthode

private WriteMetaData ( PEWriter output ) : void
output PEWriter
Résultat void
        internal void WriteMetaData(PEWriter output)
        {
            this.output = output;
            if (Diag.DiagOn) {
                mdStart = output.Seek(0,SeekOrigin.Current);
                Console.WriteLine("Writing metaData at " + Hex.Long(mdStart));
            }
            output.Write(MetaDataSignature);
            output.Write(output.verInfo.mdMajVer);
            output.Write(output.verInfo.mdMinVer);
            output.Write(0);         // Reserved
            output.Write(output.verInfo.netVerString.Length);
            output.Write(output.verInfo.netVerString.ToCharArray());   // version string is already zero padded
            output.Write((short)0);  // Flags, reserved
            output.Write((ushort)numStreams);
            // write tilde header
            output.Write(tildeStart);
            output.Write(tildeTide + tildePadding);
            output.Write(tildeNameArray);
            for (int i=1; i < numStreams; i++) {
                if (Diag.DiagOn)
                    Console.WriteLine("Stream " + new String(streams[i].name) + " should start at " + Hex.Long(streams[i].Start+mdStart));
                streams[i].WriteHeader(output);
            }
            if (Diag.DiagOn) {
                Console.Write("Writing tilde stream at " + Hex.Long(output.Seek(0,SeekOrigin.Current)));
                Console.WriteLine(" should be at " + Hex.Long(tildeStart + mdStart));
            }
            WriteTildeStream(output);
            for (int i=1; i < numStreams; i++) {
                if (Diag.DiagOn)
                    Console.WriteLine("Writing stream " + new String(streams[i].name) + " at " + Hex.Long(output.Seek(0,SeekOrigin.Current)));
                streams[i].Write(output);
            }
            //Console.WriteLine("Finished Writing metaData at " + output.Seek(0,SeekOrigin.Current));
        }