• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/samba-3.0.25b/docs/htmldocs/Samba3-Developers-Guide/
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.71.0"><meta name="description" content="Last Update : Fri Oct 10 00:59:58 CEST 2003 This book is a collection of documents that might be useful for people developing samba or those interested in doing so. It's nothing more than a collection of documents written by samba developers about the internals of various parts of samba and the SMB protocol. It's still (and will always be) incomplete. The most recent version of this document can be found at http://devel.samba.org/. This documentation is distributed under the GNU General Public License (GPL) version 2. A copy of the license is included with the Samba source distribution. A copy can be found on-line at http://www.fsf.org/licenses/gpl.txt This document is incomplete and unmaintained. It is merely a collection of development-related notes."><link rel="start" href="index.html" title="SAMBA Developers Guide"><link rel="next" href="pr01.html" title="Attribution"></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="pr01.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"><div class="editor"><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 class="affiliation"><span class="orgname">The Samba Team<br></span><div class="address"><p><code class="email">&lt;<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>&gt;</code></p></div></div></div></div></div><div><div class="abstract"><p class="title"><b>Abstract</b></p><p>
2<span class="emphasis"><em>Last Update</em></span> : Fri Oct 10 00:59:58 CEST 2003
3</p><p>
4This book is a collection of documents that might be useful for 
5people developing samba or those interested in doing so.
6It's nothing more than a collection of documents written by samba developers about 
7the internals of various parts of samba and the SMB protocol. It's still (and will always be) incomplete.
8The most recent version of this document
9can be found at <a href="http://devel.samba.org/" target="_top">http://devel.samba.org/</a>.
10</p><p>
11This documentation is distributed under the GNU General Public License (GPL) 
12version 2.  A copy of the license is included with the Samba source
13distribution.  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>
14</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 
15	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="preface"><a href="pr01.html">Attribution</a></span></dt><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#id315544">Introduction</a></span></dt><dt><span class="sect1"><a href="unix-smb.html#id315562">Usernames</a></span></dt><dt><span class="sect1"><a href="unix-smb.html#id315604">File Ownership</a></span></dt><dt><span class="sect1"><a href="unix-smb.html#id315628">Passwords</a></span></dt><dt><span class="sect1"><a href="unix-smb.html#id315657">Locking</a></span></dt><dt><span class="sect1"><a href="unix-smb.html#id315697">Deny Modes</a></span></dt><dt><span class="sect1"><a href="unix-smb.html#id315716">Trapdoor UIDs</a></span></dt><dt><span class="sect1"><a href="unix-smb.html#id315733">Port numbers</a></span></dt><dt><span class="sect1"><a href="unix-smb.html#id315764">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#id315877">Introduction</a></span></dt><dd><dl><dt><span class="sect2"><a href="ntdomain.html#id316019">Sources</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id316046">Credits</a></span></dt></dl></dd><dt><span class="sect1"><a href="ntdomain.html#id316075">Notes and Structures</a></span></dt><dd><dl><dt><span class="sect2"><a href="ntdomain.html#id316080">Notes</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id274022">Enumerations</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id316368">Structures</a></span></dt></dl></dd><dt><span class="sect1"><a href="ntdomain.html#id318665">MSRPC over Transact Named Pipe</a></span></dt><dd><dl><dt><span class="sect2"><a href="ntdomain.html#id318674">MSRPC Pipes</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id318743">Header</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id319418">Tail</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id319454">RPC Bind / Bind Ack</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id319591">NTLSA Transact Named Pipe</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id319720">LSA Open Policy</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id319818">LSA Query Info Policy</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id319901">LSA Enumerate Trusted Domains</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id319973">LSA Open Secret</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id320059">LSA Close</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id320111">LSA Lookup SIDS</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id320275">LSA Lookup Names</a></span></dt></dl></dd><dt><span class="sect1"><a href="ntdomain.html#id320451">NETLOGON rpc Transact Named Pipe</a></span></dt><dd><dl><dt><span class="sect2"><a href="ntdomain.html#id320576">LSA Request Challenge</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id320679">LSA Authenticate 2</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id320792">LSA Server Password Set</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id320879">LSA SAM Logon</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id320956">LSA SAM Logoff</a></span></dt></dl></dd><dt><span class="sect1"><a href="ntdomain.html#id321027">\\MAILSLOT\NET\NTLOGON</a></span></dt><dd><dl><dt><span class="sect2"><a href="ntdomain.html#id321039">Query for PDC</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id321244">SAM Logon</a></span></dt></dl></dd><dt><span class="sect1"><a href="ntdomain.html#id321500">SRVSVC Transact Named Pipe</a></span></dt><dd><dl><dt><span class="sect2"><a href="ntdomain.html#id321535">Net Share Enum</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id321706">Net Server Get Info</a></span></dt></dl></dd><dt><span class="sect1"><a href="ntdomain.html#id321798">Cryptographic side of NT Domain Authentication</a></span></dt><dd><dl><dt><span class="sect2"><a href="ntdomain.html#id321804">Definitions</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id321928">Protocol</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id321992">Comments</a></span></dt></dl></dd><dt><span class="sect1"><a href="ntdomain.html#id322025">SIDs and RIDs</a></span></dt><dd><dl><dt><span class="sect2"><a href="ntdomain.html#id322056">Well-known SIDs</a></span></dt><dt><span class="sect2"><a href="ntdomain.html#id322305">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#id322541">Introduction</a></span></dt><dt><span class="sect1"><a href="architecture.html#id322580">Multithreading and Samba</a></span></dt><dt><span class="sect1"><a href="architecture.html#id322605">Threading smbd</a></span></dt><dt><span class="sect1"><a href="architecture.html#id322658">Threading nmbd</a></span></dt><dt><span class="sect1"><a href="architecture.html#id322690">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#id322739">New Output Syntax</a></span></dt><dt><span class="sect1"><a href="debug.html#id322834">The DEBUG() Macro</a></span></dt><dt><span class="sect1"><a href="debug.html#id322926">The DEBUGADD() Macro</a></span></dt><dt><span class="sect1"><a href="debug.html#id322958">The DEBUGLVL() Macro</a></span></dt><dt><span class="sect1"><a href="debug.html#id323036">New Functions</a></span></dt><dd><dl><dt><span class="sect2"><a href="debug.html#id323042">dbgtext()</a></span></dt><dt><span class="sect2"><a href="debug.html#id323055">dbghdr()</a></span></dt><dt><span class="sect2"><a href="debug.html#id323071">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#id323122">Character Handling</a></span></dt><dt><span class="sect1"><a href="internals.html#id323142">The new functions</a></span></dt><dt><span class="sect1"><a href="internals.html#id323249">Macros in byteorder.h</a></span></dt><dd><dl><dt><span class="sect2"><a href="internals.html#id323259">CVAL(buf,pos)</a></span></dt><dt><span class="sect2"><a href="internals.html#id323269">PVAL(buf,pos)</a></span></dt><dt><span class="sect2"><a href="internals.html#id323280">SCVAL(buf,pos,val)</a></span></dt><dt><span class="sect2"><a href="internals.html#id323290">SVAL(buf,pos)</a></span></dt><dt><span class="sect2"><a href="internals.html#id323302">IVAL(buf,pos)</a></span></dt><dt><span class="sect2"><a href="internals.html#id323313">SVALS(buf,pos)</a></span></dt><dt><span class="sect2"><a href="internals.html#id323323">IVALS(buf,pos)</a></span></dt><dt><span class="sect2"><a href="internals.html#id323334">SSVAL(buf,pos,val)</a></span></dt><dt><span class="sect2"><a href="internals.html#id323345">SIVAL(buf,pos,val)</a></span></dt><dt><span class="sect2"><a href="internals.html#id323356">SSVALS(buf,pos,val)</a></span></dt><dt><span class="sect2"><a href="internals.html#id323367">SIVALS(buf,pos,val)</a></span></dt><dt><span class="sect2"><a href="internals.html#id323377">RSVAL(buf,pos)</a></span></dt><dt><span class="sect2"><a href="internals.html#id323388">RIVAL(buf,pos)</a></span></dt><dt><span class="sect2"><a href="internals.html#id323399">RSSVAL(buf,pos,val)</a></span></dt><dt><span class="sect2"><a href="internals.html#id323410">RSIVAL(buf,pos,val)</a></span></dt></dl></dd><dt><span class="sect1"><a href="internals.html#id323422">LAN Manager Samba API</a></span></dt><dd><dl><dt><span class="sect2"><a href="internals.html#id323447">Parameters</a></span></dt><dt><span class="sect2"><a href="internals.html#id323556">Return value</a></span></dt></dl></dd><dt><span class="sect1"><a href="internals.html#id323614">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#id324208">Advantages</a></span></dt><dt><span class="sect1"><a href="modules.html#id324243">Loading modules</a></span></dt><dd><dl><dt><span class="sect2"><a href="modules.html#id324266">Static modules</a></span></dt><dt><span class="sect2"><a href="modules.html#id324295">Shared modules</a></span></dt></dl></dd><dt><span class="sect1"><a href="modules.html#id324315">Writing modules</a></span></dt><dd><dl><dt><span class="sect2"><a href="modules.html#id324358">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#id324517">About</a></span></dt><dt><span class="sect1"><a href="rpc-plugin.html#id324530">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#id324691">The Samba (Posix) VFS layer</a></span></dt><dd><dl><dt><span class="sect2"><a href="vfs.html#id324696">The general interface</a></span></dt><dt><span class="sect2"><a href="vfs.html#id324766">Possible VFS operation layers</a></span></dt></dl></dd><dt><span class="sect1"><a href="vfs.html#id324811">The Interaction between the Samba VFS subsystem and the modules</a></span></dt><dd><dl><dt><span class="sect2"><a href="vfs.html#id324817">Initialization and registration</a></span></dt><dt><span class="sect2"><a href="vfs.html#id324954">How the Modules handle per connection data</a></span></dt></dl></dd><dt><span class="sect1"><a href="vfs.html#id325112">Upgrading to the New VFS Interface</a></span></dt><dd><dl><dt><span class="sect2"><a href="vfs.html#id325117">Upgrading from 2.2.* and 3.0aplha modules</a></span></dt></dl></dd><dt><span class="sect1"><a href="vfs.html#id325448">Some Notes</a></span></dt><dd><dl><dt><span class="sect2"><a href="vfs.html#id325454">Implement TRANSPARENT functions</a></span></dt><dt><span class="sect2"><a href="vfs.html#id325472">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#id325526">Lexical Analysis</a></span></dt><dd><dl><dt><span class="sect2"><a href="parsing.html#id325594">Handling of Whitespace</a></span></dt><dt><span class="sect2"><a href="parsing.html#id325635">Handling of Line Continuation</a></span></dt><dt><span class="sect2"><a href="parsing.html#id325680">Line Continuation Quirks</a></span></dt></dl></dd><dt><span class="sect1"><a href="parsing.html#id325754">Syntax</a></span></dt><dd><dl><dt><span class="sect2"><a href="parsing.html#id325806">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#id325844">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#id325949">Introduction</a></span></dt><dt><span class="sect1"><a href="pwencrypt.html#id325966">How does it work?</a></span></dt><dt><span class="sect1"><a href="pwencrypt.html#id326031">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#id326484">Abstract</a></span></dt><dt><span class="sect1"><a href="devprinting.html#id326495">
16Printing Interface to Various Back ends
17</a></span></dt><dt><span class="sect1"><a href="devprinting.html#id326569">
18Print Queue TDB's
19</a></span></dt><dt><span class="sect1"><a href="devprinting.html#id326708">
20ChangeID and Client Caching of Printer Information
21</a></span></dt><dt><span class="sect1"><a href="devprinting.html#id326718">
22Windows NT/2K Printer Change Notify
23</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#id326975">Versioning</a></span></dt><dt><span class="sect1"><a href="Packaging.html#id327000">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="pr01.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">�Attribution</td></tr></table></div></body></html>
24