Initial import
[samba] / docs / htmldocs / Samba3-Developers-Guide / index.html
1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>SAMBA Developers Guide</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><meta name="description" content="
2 Last Update : Fri Oct 10 00:59:58 CEST 2003
3  
4 This book is a collection of documents that might be useful for 
5 people developing samba or those interested in doing so.
6 It's nothing more than a collection of documents written by samba developers about 
7 the internals of various parts of samba and the SMB protocol. It's still (and will always be) incomplete.
8 The most recent version of this document
9 can be found at http://devel.samba.org/.
10  
11 This documentation is distributed under the GNU General Public License (GPL) 
12 version 2.  A copy of the license is included with the Samba source
13 distribution.  A copy can be found on-line at http://www.fsf.org/licenses/gpl.txt
14  This document is incomplete and unmaintained. It is merely a 
15         collection of development-related notes."><link rel="start" href="index.html" title="SAMBA Developers Guide"><link rel="next" href="pt01.html" title="Part I. The protocol"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">SAMBA Developers Guide</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="pt01.html">Next</a></td></tr></table><hr></div><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="Samba-Developers-Guide"></a>SAMBA Developers Guide</h1></div><div><div class="authorgroup"><h4 class="editedby">Edited by</h4><h3 class="editor"><span class="firstname">Jelmer</span> <span class="othername">R.</span> <span class="surname">Vernooij</span></h3></div></div><div><div class="abstract"><p class="title"><b>Abstract</b></p><p>
16 <span class="emphasis"><em>Last Update</em></span> : Fri Oct 10 00:59:58 CEST 2003
17 </p><p>
18 This book is a collection of documents that might be useful for 
19 people developing samba or those interested in doing so.
20 It's nothing more than a collection of documents written by samba developers about 
21 the internals of various parts of samba and the SMB protocol. It's still (and will always be) incomplete.
22 The most recent version of this document
23 can be found at <a href="http://devel.samba.org/" target="_top">http://devel.samba.org/</a>.
24 </p><p>
25 This documentation is distributed under the GNU General Public License (GPL) 
26 version 2.  A copy of the license is included with the Samba source
27 distribution.  A copy can be found on-line at <a href="http://www.fsf.org/licenses/gpl.txt" target="_top">http://www.fsf.org/licenses/gpl.txt</a>
28 </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>This document is incomplete and unmaintained. It is merely a 
29         collection of development-related notes.</p></div></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="part"><a href="pt01.html">I. The protocol</a></span></dt><dd><dl><dt><span class="chapter"><a href="unix-smb.html">1. NetBIOS in a Unix World</a></span></dt><dd><dl><dt><span class="sect1"><a href="unix-smb.html#id2468238">Introduction</a></span></dt><dt><span class="sect1"><a href="unix-smb.html#id2468258">Usernames</a></span></dt><dt><span class="sect1"><a href="unix-smb.html#id2466345">File Ownership</a></span></dt><dt><span class="sect1"><a href="unix-smb.html#id2466376">Passwords</a></span></dt><dt><span class="sect1"><a href="unix-smb.html#id2466414">Locking</a></span></dt><dt><span class="sect1"><a href="unix-smb.html#id2466473">Deny Modes</a></span></dt><dt><span class="sect1"><a href="unix-smb.html#id2466499">Trapdoor UIDs</a></span></dt><dt><span class="sect1"><a href="unix-smb.html#id2466520">Port numbers</a></span></dt><dt><span class="sect1"><a href="unix-smb.html#id2466565">Protocol Complexity</a></span></dt></dl></dd><dt><span class="chapter"><a href="ntdomain.html">2. NT Domain RPC's</a></span></dt><dd><dl><dt><span class="sect1"><a href="ntdomain.html#id2470637">Introduction</a></span></dt><dd><dl><dt><span class="sect2"><a href="ntdomain.html#id2466657">Sources</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2466685">Credits</a></span></dt></dl></dd><dt><span class="sect1"><a href="ntdomain.html#id2466717">Notes and Structures</a></span></dt><dd><dl><dt><span class="sect2"><a href="ntdomain.html#id2466722">Notes</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2466798">Enumerations</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2516421">Structures</a></span></dt></dl></dd><dt><span class="sect1"><a href="ntdomain.html#id2518786">MSRPC over Transact Named Pipe</a></span></dt><dd><dl><dt><span class="sect2"><a href="ntdomain.html#id2518796">MSRPC Pipes</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2518882">Header</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2519587">Tail</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2519624">RPC Bind / Bind Ack</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2519770">NTLSA Transact Named Pipe</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2519904">LSA Open Policy</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2520004">LSA Query Info Policy</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2520089">LSA Enumerate Trusted Domains</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2520163">LSA Open Secret</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2520250">LSA Close</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2520303">LSA Lookup SIDS</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2520471">LSA Lookup Names</a></span></dt></dl></dd><dt><span class="sect1"><a href="ntdomain.html#id2520652">NETLOGON rpc Transact Named Pipe</a></span></dt><dd><dl><dt><span class="sect2"><a href="ntdomain.html#id2520783">LSA Request Challenge</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2520892">LSA Authenticate 2</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2521010">LSA Server Password Set</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2521103">LSA SAM Logon</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2521186">LSA SAM Logoff</a></span></dt></dl></dd><dt><span class="sect1"><a href="ntdomain.html#id2521260">\\MAILSLOT\NET\NTLOGON</a></span></dt><dd><dl><dt><span class="sect2"><a href="ntdomain.html#id2521275">Query for PDC</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2521484">SAM Logon</a></span></dt></dl></dd><dt><span class="sect1"><a href="ntdomain.html#id2521744">SRVSVC Transact Named Pipe</a></span></dt><dd><dl><dt><span class="sect2"><a href="ntdomain.html#id2521780">Net Share Enum</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2521956">Net Server Get Info</a></span></dt></dl></dd><dt><span class="sect1"><a href="ntdomain.html#id2522050">Cryptographic side of NT Domain Authentication</a></span></dt><dd><dl><dt><span class="sect2"><a href="ntdomain.html#id2522056">Definitions</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2522185">Protocol</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2522267">Comments</a></span></dt></dl></dd><dt><span class="sect1"><a href="ntdomain.html#id2522309">SIDs and RIDs</a></span></dt><dd><dl><dt><span class="sect2"><a href="ntdomain.html#id2522342">Well-known SIDs</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id2522593">Well-known RIDS</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="pt02.html">II. Samba Basics</a></span></dt><dd><dl><dt><span class="chapter"><a href="architecture.html">3. Samba Architecture</a></span></dt><dd><dl><dt><span class="sect1"><a href="architecture.html#id2522836">Introduction</a></span></dt><dt><span class="sect1"><a href="architecture.html#id2522880">Multithreading and Samba</a></span></dt><dt><span class="sect1"><a href="architecture.html#id2522912">Threading smbd</a></span></dt><dt><span class="sect1"><a href="architecture.html#id2522974">Threading nmbd</a></span></dt><dt><span class="sect1"><a href="architecture.html#id2523031">nbmd Design</a></span></dt></dl></dd><dt><span class="chapter"><a href="debug.html">4. The samba DEBUG system</a></span></dt><dd><dl><dt><span class="sect1"><a href="debug.html#id2523090">New Output Syntax</a></span></dt><dt><span class="sect1"><a href="debug.html#id2523209">The DEBUG() Macro</a></span></dt><dt><span class="sect1"><a href="debug.html#id2523318">The DEBUGADD() Macro</a></span></dt><dt><span class="sect1"><a href="debug.html#id2523355">The DEBUGLVL() Macro</a></span></dt><dt><span class="sect1"><a href="debug.html#id2523448">New Functions</a></span></dt><dd><dl><dt><span class="sect2"><a href="debug.html#id2523454">dbgtext()</a></span></dt><dt><span class="sect2"><a href="debug.html#id2523470">dbghdr()</a></span></dt><dt><span class="sect2"><a href="debug.html#id2523490">format_debug_text()</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="internals.html">5. Samba Internals</a></span></dt><dd><dl><dt><span class="sect1"><a href="internals.html#id2523545">Character Handling</a></span></dt><dt><span class="sect1"><a href="internals.html#id2523566">The new functions</a></span></dt><dt><span class="sect1"><a href="internals.html#id2523697">Macros in byteorder.h</a></span></dt><dd><dl><dt><span class="sect2"><a href="internals.html#id2523708">CVAL(buf,pos)</a></span></dt><dt><span class="sect2"><a href="internals.html#id2523719">PVAL(buf,pos)</a></span></dt><dt><span class="sect2"><a href="internals.html#id2523731">SCVAL(buf,pos,val)</a></span></dt><dt><span class="sect2"><a href="internals.html#id2523742">SVAL(buf,pos)</a></span></dt><dt><span class="sect2"><a href="internals.html#id2523755">IVAL(buf,pos)</a></span></dt><dt><span class="sect2"><a href="internals.html#id2523766">SVALS(buf,pos)</a></span></dt><dt><span class="sect2"><a href="internals.html#id2523778">IVALS(buf,pos)</a></span></dt><dt><span class="sect2"><a href="internals.html#id2523790">SSVAL(buf,pos,val)</a></span></dt><dt><span class="sect2"><a href="internals.html#id2523802">SIVAL(buf,pos,val)</a></span></dt><dt><span class="sect2"><a href="internals.html#id2523814">SSVALS(buf,pos,val)</a></span></dt><dt><span class="sect2"><a href="internals.html#id2523825">SIVALS(buf,pos,val)</a></span></dt><dt><span class="sect2"><a href="internals.html#id2523837">RSVAL(buf,pos)</a></span></dt><dt><span class="sect2"><a href="internals.html#id2523849">RIVAL(buf,pos)</a></span></dt><dt><span class="sect2"><a href="internals.html#id2523861">RSSVAL(buf,pos,val)</a></span></dt><dt><span class="sect2"><a href="internals.html#id2523873">RSIVAL(buf,pos,val)</a></span></dt></dl></dd><dt><span class="sect1"><a href="internals.html#id2523886">LAN Manager Samba API</a></span></dt><dd><dl><dt><span class="sect2"><a href="internals.html#id2523915">Parameters</a></span></dt><dt><span class="sect2"><a href="internals.html#id2524040">Return value</a></span></dt></dl></dd><dt><span class="sect1"><a href="internals.html#id2524112">Code character table</a></span></dt></dl></dd><dt><span class="chapter"><a href="CodingSuggestions.html">6. Coding Suggestions</a></span></dt><dt><span class="chapter"><a href="contributing.html">7. Contributing code</a></span></dt><dt><span class="chapter"><a href="modules.html">8. Modules</a></span></dt><dd><dl><dt><span class="sect1"><a href="modules.html#id2524784">Advantages</a></span></dt><dt><span class="sect1"><a href="modules.html#id2524823">Loading modules</a></span></dt><dd><dl><dt><span class="sect2"><a href="modules.html#id2524849">Static modules</a></span></dt><dt><span class="sect2"><a href="modules.html#id2524883">Shared modules</a></span></dt></dl></dd><dt><span class="sect1"><a href="modules.html#id2524907">Writing modules</a></span></dt><dd><dl><dt><span class="sect2"><a href="modules.html#id2524958">Static/Shared selection in configure.in</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="pt03.html">III. Samba Subsystems</a></span></dt><dd><dl><dt><span class="chapter"><a href="rpc-plugin.html">9. RPC Pluggable Modules</a></span></dt><dd><dl><dt><span class="sect1"><a href="rpc-plugin.html#id2525129">About</a></span></dt><dt><span class="sect1"><a href="rpc-plugin.html#id2525145">General Overview</a></span></dt></dl></dd><dt><span class="chapter"><a href="vfs.html">10. VFS Modules</a></span></dt><dd><dl><dt><span class="sect1"><a href="vfs.html#id2525317">The Samba (Posix) VFS layer</a></span></dt><dd><dl><dt><span class="sect2"><a href="vfs.html#id2525323">The general interface</a></span></dt><dt><span class="sect2"><a href="vfs.html#id2525419">Possible VFS operation layers</a></span></dt></dl></dd><dt><span class="sect1"><a href="vfs.html#id2525480">The Interaction between the Samba VFS subsystem and the modules</a></span></dt><dd><dl><dt><span class="sect2"><a href="vfs.html#id2525487">Initialization and registration</a></span></dt><dt><span class="sect2"><a href="vfs.html#id2525637">How the Modules handle per connection data</a></span></dt></dl></dd><dt><span class="sect1"><a href="vfs.html#id2525842">Upgrading to the New VFS Interface</a></span></dt><dd><dl><dt><span class="sect2"><a href="vfs.html#id2525848">Upgrading from 2.2.* and 3.0aplha modules</a></span></dt></dl></dd><dt><span class="sect1"><a href="vfs.html#id2526400">Some Notes</a></span></dt><dd><dl><dt><span class="sect2"><a href="vfs.html#id2526406">Implement TRANSPARENT functions</a></span></dt><dt><span class="sect2"><a href="vfs.html#id2526426">Implement OPAQUE functions</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="parsing.html">11. The smb.conf file</a></span></dt><dd><dl><dt><span class="sect1"><a href="parsing.html#id2526486">Lexical Analysis</a></span></dt><dd><dl><dt><span class="sect2"><a href="parsing.html#id2526562">Handling of Whitespace</a></span></dt><dt><span class="sect2"><a href="parsing.html#id2526607">Handling of Line Continuation</a></span></dt><dt><span class="sect2"><a href="parsing.html#id2526660">Line Continuation Quirks</a></span></dt></dl></dd><dt><span class="sect1"><a href="parsing.html#id2526741">Syntax</a></span></dt><dd><dl><dt><span class="sect2"><a href="parsing.html#id2526801">About params.c</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="wins.html">12. Samba WINS Internals</a></span></dt><dd><dl><dt><span class="sect1"><a href="wins.html#id2526842">WINS Failover</a></span></dt></dl></dd><dt><span class="chapter"><a href="pwencrypt.html">13. LanMan and NT Password Encryption</a></span></dt><dd><dl><dt><span class="sect1"><a href="pwencrypt.html#id2526965">Introduction</a></span></dt><dt><span class="sect1"><a href="pwencrypt.html#id2526986">How does it work?</a></span></dt><dt><span class="sect1"><a href="pwencrypt.html#id2527070">The smbpasswd file</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="pt04.html">IV. Debugging and tracing</a></span></dt><dd><dl><dt><span class="chapter"><a href="tracing.html">14. Tracing samba system calls</a></span></dt><dt><span class="chapter"><a href="devprinting.html">15. Samba Printing Internals</a></span></dt><dd><dl><dt><span class="sect1"><a href="devprinting.html#id2527588">Abstract</a></span></dt><dt><span class="sect1"><a href="devprinting.html#id2527601">
30 Printing Interface to Various Back ends
31 </a></span></dt><dt><span class="sect1"><a href="devprinting.html#id2527680">
32 Print Queue TDB's
33 </a></span></dt><dt><span class="sect1"><a href="devprinting.html#id2527856">
34 ChangeID and Client Caching of Printer Information
35 </a></span></dt><dt><span class="sect1"><a href="devprinting.html#id2527868">
36 Windows NT/2K Printer Change Notify
37 </a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="pt05.html">V. Appendices</a></span></dt><dd><dl><dt><span class="chapter"><a href="Packaging.html">16. Notes to packagers</a></span></dt><dd><dl><dt><span class="sect1"><a href="Packaging.html#id2528187">Versioning</a></span></dt><dt><span class="sect1"><a href="Packaging.html#id2528215">Modules</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="pt01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Part I. The protocol</td></tr></table></div></body></html>