How to add Zbuffer to Custom Surface Shader

I am New to Shader.
Zwrite ON not working with this Surface Shader

SubShader
{

	Tags
	{
		"Queue" = "Transparent"
		"IgnoreProjector" = "True"
		"RenderType" = "Background" 
	}
	LOD 200
		
		
	CGPROGRAM
	#pragma surface surf Lambert vertex:vert addshadow no alpha
            struct Input 
	{             };
            void vert(inout appdata_full v) {   };
           void surf(Input IN, inout SurfaceOutput o)   {   };

this is the Structure I am Using. Help me write Z depth for this Surface Shader

I tried with Render Queue Value its affecting overlaped and intersected mesh.
Also refer me study material for shader programing

You should use Geometry Queue instead of Transparent.