aboutsummaryrefslogtreecommitdiff
path: root/src/windows/identity/doc/plugin_main.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/windows/identity/doc/plugin_main.h')
-rw-r--r--src/windows/identity/doc/plugin_main.h126
1 files changed, 126 insertions, 0 deletions
diff --git a/src/windows/identity/doc/plugin_main.h b/src/windows/identity/doc/plugin_main.h
new file mode 100644
index 0000000..ed8d038
--- /dev/null
+++ b/src/windows/identity/doc/plugin_main.h
@@ -0,0 +1,126 @@
+/*
+ * Copyright (c) 2004 Massachusetts Institute of Technology
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/* $Id$ */
+
+/*!
+
+\page plugins NetIDMgr Modules and Plugins
+
+Plugins and localization are handled by the NetIDMgr Module Manager
+API. Each plugin consists of a dynamically loadable library and zero
+or more associated resource libraries.
+
+For more information about NetIDMgr Plugins, see the following
+sections:
+
+- \subpage pi_framework
+- \subpage pi_pt
+- \subpage pi_structure
+- \subpage pi_localization
+*/
+
+/*! \page pi_pt Plugin Types
+
+The types of plugins that are currently supported by NetIDMgr are :
+
+\section pi_pt_cred Credential Provider
+
+A credential provider plugin essentially acts as an interface between
+NetIDMgr and some entity which defines the credentials for the purpose
+of managing those credentials.
+
+There can be more than one credential provider in a module.
+
+\subsection pi_pt_cred_comm Communication
+
+Communication between NetIDMgr and a credential provider occurs
+through a message processor. When registering a credential provider,
+the module initialization code in init_module() specifies
+::KHM_PITYPE_CRED as the \a type member and sets \a msg_proc member to
+a valid message processor in the ::khm_plugin record.
+
+\subsection pi_pt_cred_init Initialization
+
+Once init_module() has completed, the module manager sends a
+<::KMSG_SYSTEM,::KMSG_SYSTEM_INIT> message to the message processor.
+
+For credential provider plugins, <::KMSG_SYSTEM,::KMSG_SYSTEM_INIT> is
+guaranteed to be the first message it receives.
+
+The callback function should return KHM_ERROR_SUCCESS if it
+initializes properly or some other value otherwise. If the return
+value signals an error, then the plugin is assume to not be loaded and
+immediately unregistered.
+
+The message processor is automatically subscribed to the following
+message types:
+- ::KMSG_SYSTEM
+- ::KMSG_KCDB
+
+Although a plugin can use the <::KMSG_SYSTEM,::KMSG_SYSTEM_INIT>
+message enumerate existing credentials in the system, it should not
+obtain new credentials. This is because other plugins that may depend
+on the new credential messages may not be loaded at this time. See the
+section on \ref cred_msgs for more information.
+
+
+\subsection pi_pt_cred_exit Uninitialization
+
+When the plugin is to be removed, the module manager sends a
+<::KMSG_SYSTEM,::KMSG_SYSTEM_EXIT> to the message processor. The
+plugin must perform any necessary shutdown operations, free up
+resources and unsubscribe from any messages that it has subscribed to.
+
+This message is guaranteed to be the last message received by a
+credentials manager plugin if the plugin unsubsribes from all
+additional message classes that it subsribed to.
+
+The message types that the message processor is automatically
+subscribed to (See \ref pi_pt_cred_init) do not have to be
+unsubscribed from as they are automatically removed.
+
+\subsection pi_pt_cred_other Other Notes
+
+Since credential managers may receive privileged information, the
+signature requirements for credential managers are specially strict.
+
+\section pi_pt_conf Configuration Provider
+
+Provides configuration information.
+[TODO: fill in]
+
+\subsection pi_pt_conf_comm Communication
+[TODO: fill in]
+
+\subsection pi_pt_conf_init Initialization
+[TODO: fill in]
+
+\subsection pi_pt_conf_exit Uninitialization
+[TODO: fill in]
+
+\subsection pi_pt_conf_other Other Notes
+
+*/
+