latest version of ArchBlackmann
authorRoyce Mitchell III <royce3@ev1.net>
Wed, 20 Apr 2005 18:16:32 +0000 (18:16 +0000)
committerRoyce Mitchell III <royce3@ev1.net>
Wed, 20 Apr 2005 18:16:32 +0000 (18:16 +0000)
svn path=/trunk/; revision=14717

13 files changed:
irc/ArchBlackmann/ArchBlackmann.cpp
irc/ArchBlackmann/IRCClient.cpp
irc/ArchBlackmann/IRCClient.h
irc/ArchBlackmann/curse.txt [new file with mode: 0644]
irc/ArchBlackmann/cursecop.txt [new file with mode: 0644]
irc/ArchBlackmann/dev.txt
irc/ArchBlackmann/func.txt [new file with mode: 0644]
irc/ArchBlackmann/grovel.txt [new file with mode: 0644]
irc/ArchBlackmann/irql.txt [new file with mode: 0644]
irc/ArchBlackmann/nogrovel.txt [new file with mode: 0644]
irc/ArchBlackmann/status.txt [new file with mode: 0644]
irc/ArchBlackmann/tech.txt
irc/ArchBlackmann/type.txt [new file with mode: 0644]

index 5d9898d..382e14a 100644 (file)
 
 #include "File.h"
 #include "ssprintf.h"
 
 #include "File.h"
 #include "ssprintf.h"
+#include "trim.h"
 
 #include "IRCClient.h"
 
 using std::string;
 using std::vector;
 
 
 #include "IRCClient.h"
 
 using std::string;
 using std::vector;
 
-const char* ArchBlackmann = "ArchBlackmann";
+#if defined(_DEBUG) && 0
+const char* BOTNAME = "RoyBot";
+const char* CHANNEL = "#RoyBotTest";
+#else
+const char* BOTNAME = "ArchBlackmann";
+const char* CHANNEL = "#ReactOS";
+#endif
 
 
-vector<string> tech, module, dev, stru, period;
+//vector<string> tech, module, dev, stru, period, status, type, func, irql, curse, cursecop;
 
 
-void ImportList ( vector<string>& list, const char* filename )
+class List
 {
 {
-       File f ( filename, "r" );
+public:
+       string name;
+       bool macro;
+       std::vector<std::string> list;
+       string tag;
+       int last;
+       List() { last = -1; }
+       List ( const char* _name, bool _macro ) : name(_name), macro(_macro)
+       {
+               tag = ssprintf("%%%s%%",_name);
+               last = -1;
+       }
+};
+
+vector<List> lists;
+vector<string> ops;
+
+void ImportList ( const char* listname, bool macro )
+{
+       lists.push_back ( List ( listname, macro ) );
+       List& list = lists.back();
+       File f ( ssprintf("%s.txt",listname).c_str(), "r" );
        string line;
        while ( f.next_line ( line, true ) )
        string line;
        while ( f.next_line ( line, true ) )
-               list.push_back ( line );
+               list.list.push_back ( line );
 }
 
 }
 
-const char* ListRand ( const vector<string>& list )
+const char* ListRand ( List& list )
 {
 {
-       return list[rand()%list.size()].c_str();
+       vector<string>& l = list.list;
+       if ( !l.size() )
+       {
+               static string nothing;
+               nothing = ssprintf ( "<list '%s' empty>", list.name.c_str() );
+               return nothing.c_str();
+       }
+       else if ( l.size() == 1 )
+               return l[0].c_str();
+       int sel = list.last;
+       while ( sel == list.last )
+               sel = rand()%l.size();
+       list.last = sel;
+       return l[sel].c_str();
 }
 
 }
 
-string TechReply()
+const char* ListRand ( int i )
 {
 {
-       string t = ListRand(tech);
+       return ListRand ( lists[i] );
+}
+
+int GetListIndex ( const char* listname )
+{
+       for ( int i = 0; i < lists.size(); i++ )
+       {
+               if ( !stricmp ( lists[i].name.c_str(), listname ) )
+                       return i;
+       }
+       return -1;
+}
+
+List& GetList ( const char* listname )
+{
+       return lists[GetListIndex(listname)];
+}
+
+const char* ListRand ( const char* list )
+{
+       int i = GetListIndex ( list );
+       if ( i < 0 )
+               return NULL;
+       return ListRand(i);
+}
+
+string TaggedReply ( const char* listname )
+{
+       string t = ListRand(listname);
        string out;
        const char* p = t.c_str();
        while ( *p )
        {
                if ( *p == '%' )
                {
        string out;
        const char* p = t.c_str();
        while ( *p )
        {
                if ( *p == '%' )
                {
-                       if ( !strnicmp ( p, "%dev%", 5 ) )
-                       {
-                               out += ListRand(dev);
-                               p += 5;
-                       }
-                       else if ( !strnicmp ( p, "%period%", 8 ) )
-                       {
-                               out += ListRand(period);
-                               p += 8;
-                       }
-                       else if ( !strnicmp ( p, "%module%", 8 ) )
-                       {
-                               out += ListRand(module);
-                               p += 8;
-                       }
-                       else if ( !strnicmp ( p, "%stru%", 6 ) )
+                       bool found = false;
+                       for ( int i = 0; i < lists.size() && !found; i++ )
                        {
                        {
-                               out += ListRand(stru);
-                               p += 6;
+                               if ( lists[i].macro && !strnicmp ( p, lists[i].tag.c_str(), lists[i].tag.size() ) )
+                               {
+                                       out += ListRand(i);
+                                       p += lists[i].tag.size();
+                                       found = true;
+                               }
                        }
                        }
-                       else
+                       if ( !found )
                                out += *p++;
                }
                const char* p2 = strchr ( p, '%' );
                                out += *p++;
                }
                const char* p2 = strchr ( p, '%' );
@@ -76,6 +135,28 @@ string TechReply()
        return out;
 }
 
        return out;
 }
 
+string gobble ( string& s, const char* delim )
+{
+       const char* p = s.c_str();
+       p += strspn ( p, delim );
+       const char* p2 = strpbrk ( p, delim );
+       if ( !p2 ) p2 = p + strlen(p);
+       string out ( p, p2-p );
+       p2 += strspn ( p2, delim );
+       s = string ( p2 );
+       return out;
+}
+
+bool isop ( const string& who )
+{
+       for ( int i = 0; i < ops.size(); i++ )
+       {
+               if ( ops[i] == who )
+                       return true;
+       }
+       return false;
+}
+
 // do custom stuff with the IRCClient from your subclass via the provided callbacks...
 class MyIRCClient : public IRCClient
 {
 // do custom stuff with the IRCClient from your subclass via the provided callbacks...
 class MyIRCClient : public IRCClient
 {
@@ -92,6 +173,32 @@ public:
        }
        bool OnJoin ( const string& user, const string& channel )
        {
        }
        bool OnJoin ( const string& user, const string& channel )
        {
+               printf ( "user '%s' joined channel '%s'\n", user.c_str(), channel.c_str() );
+               return true;
+       }
+       bool OnPart ( const std::string& user, const std::string& channel )
+       {
+               for ( int i = 0; i < ops.size(); i++ )
+               {
+                       if ( ops[i] == user )
+                       {
+                               printf ( "remove '%s' to ops list\n", user.c_str() );
+                               ops.erase ( &ops[i] );
+                       }
+               }
+               return true;
+       }
+       bool OnNick ( const std::string& oldNick, const std::string& newNick )
+       {
+               for ( int i = 0; i < ops.size(); i++ )
+               {
+                       if ( ops[i] == oldNick )
+                       {
+                               printf ( "op '%s' changed nick to '%s'\n", oldNick.c_str(), newNick.c_str() );
+                               ops[i] = newNick;
+                               return true;
+                       }
+               }
                return true;
        }
        bool OnEndChannelUsers ( const string& channel )
                return true;
        }
        bool OnEndChannelUsers ( const string& channel )
@@ -102,19 +209,168 @@ public:
        {
                printf ( "<%s> %s\n", from.c_str(), text.c_str() );
                flog.printf ( "<%s> %s\n", from.c_str(), text.c_str() );
        {
                printf ( "<%s> %s\n", from.c_str(), text.c_str() );
                flog.printf ( "<%s> %s\n", from.c_str(), text.c_str() );
-               return PrivMsg ( from, "hey, your tongue doesn't belong there!" );
+               if ( strnicmp ( text.c_str(), "!say ", 5 ) || !isop(from) )
+                       return PrivMsg ( from, "hey, your tongue doesn't belong there!" );
+               string say = trim(&text[5]);
+               if ( !strnicmp ( say.c_str(), "/me ", 4 ) )
+                       return Action ( CHANNEL, trim(&say[4]) );
+               else
+                       return PrivMsg ( CHANNEL, trim(say) );
        }
        bool OnChannelMsg ( const string& channel, const string& from, const string& text )
        {
                printf ( "%s <%s> %s\n", channel.c_str(), from.c_str(), text.c_str() );
                flog.printf ( "%s <%s> %s\n", channel.c_str(), from.c_str(), text.c_str() );
        }
        bool OnChannelMsg ( const string& channel, const string& from, const string& text )
        {
                printf ( "%s <%s> %s\n", channel.c_str(), from.c_str(), text.c_str() );
                flog.printf ( "%s <%s> %s\n", channel.c_str(), from.c_str(), text.c_str() );
-               string text2(text);
+               bool found_name = false;
+               string text2 ( text );
                strlwr ( &text2[0] );
                strlwr ( &text2[0] );
-               if ( !strnicmp ( text2.c_str(), ArchBlackmann, strlen(ArchBlackmann) ) )
+
+               if ( !strnicmp ( text.c_str(), BOTNAME, strlen(BOTNAME) ) )
+                       found_name = true;
+               else if ( !strnicmp ( text.c_str(), "arch ", 5 ) )
+                       found_name = true;
+
+               if ( found_name )
                {
                {
-                       string reply = ssprintf("%s: %s", from.c_str(), TechReply().c_str());
-                       flog.printf ( "TECH-REPLY: %s\n", reply.c_str() );
-                       return PrivMsg ( channel, reply );
+                       string s ( text );
+                       gobble ( s, " \t" ); // remove bot name
+                       found_name = true;
+                       if ( s[0] == '!' )
+                       {
+                               bool from_op = isop(from);
+                               string cmd = gobble ( s, " \t" );
+                               if ( !from_op )
+                               {
+                                       if ( cmd == "!grovel" )
+                                       {
+                                               string out = ssprintf(TaggedReply("nogrovel").c_str(),from.c_str());
+                                               if ( !strnicmp ( out.c_str(), "/me ", 4 ) )
+                                                       return Action ( channel, &out[4] );
+                                               else
+                                                       return PrivMsg ( channel, out );
+                                       }
+                                       return PrivMsg ( channel, ssprintf("%s: I don't take commands from non-ops",from.c_str()) );
+                               }
+                               if ( cmd == "!add" )
+                               {
+                                       string listname = gobble ( s, " \t" );
+                                       int i = GetListIndex ( listname.c_str() );
+                                       if ( i == -1 )
+                                               return PrivMsg ( channel, ssprintf("%s: I don't have a list named '%s'",from.c_str(),listname.c_str()) );
+                                       List& list = lists[i];
+                                       if ( s[0] == '\"' || s[0] == '\'' )
+                                       {
+                                               char delim = s[0];
+                                               const char* p = &s[1];
+                                               const char* p2 = strchr ( p, delim );
+                                               if ( !p2 )
+                                                       return PrivMsg ( channel, ssprintf("%s: Couldn't add, unmatched quotes",from.c_str()) );
+                                               s = string ( p, p2-p );
+                                       }
+                                       for ( i = 0; i < list.list.size(); i++ )
+                                       {
+                                               if ( list.list[i] == s )
+                                                       return PrivMsg ( channel, ssprintf("%s: entry already exists in list '%s'",from.c_str(),listname.c_str()) );
+                                       }
+                                       if ( !stricmp ( listname.c_str(), "curse" ) )
+                                               strlwr ( &s[0] );
+                                       list.list.push_back ( s );
+                                       {
+                                               File f ( ssprintf("%s.txt",list.name.c_str()), "w" );
+                                               for ( i = 0; i < list.list.size(); i++ )
+                                                       f.printf ( "%s\n", list.list[i].c_str() );
+                                       }
+                                       return PrivMsg ( channel, ssprintf("%s: entry added to list '%s'",from.c_str(),listname.c_str()) );
+                               }
+                               else if ( cmd == "!remove" )
+                               {
+                                       string listname = gobble ( s, " \t" );
+                                       int i = GetListIndex ( listname.c_str() );
+                                       if ( i == -1 )
+                                               return PrivMsg ( channel, ssprintf("%s: I don't have a list named '%s'",from.c_str(),listname.c_str()) );
+                                       List& list = lists[i];
+                                       if ( s[0] == '\"' || s[0] == '\'' )
+                                       {
+                                               char delim = s[0];
+                                               const char* p = &s[1];
+                                               const char* p2 = strchr ( p, delim );
+                                               if ( !p2 )
+                                                       return PrivMsg ( channel, ssprintf("%s: Couldn't add, unmatched quotes",from.c_str()) );
+                                               s = string ( p, p2-p );
+                                       }
+                                       for ( i = 0; i < list.list.size(); i++ )
+                                       {
+                                               if ( list.list[i] == s )
+                                               {
+                                                       list.list.erase ( &list.list[i] );
+                                                       {
+                                                               File f ( ssprintf("%s.txt",list.name.c_str()), "w" );
+                                                               for ( i = 0; i < list.list.size(); i++ )
+                                                                       f.printf ( "%s\n", list.list[i].c_str() );
+                                                       }
+                                                       return PrivMsg ( channel, ssprintf("%s: entry removed from list '%s'",from.c_str(),listname.c_str()) );
+                                               }
+                                       }
+                                       return PrivMsg ( channel, ssprintf("%s: entry doesn't exist in list '%s'",from.c_str(),listname.c_str()) );
+                               }
+                               else if ( cmd == "!grovel" )
+                               {
+                                       string out = ssprintf(TaggedReply("grovel").c_str(),from.c_str());
+                                       if ( !strnicmp ( out.c_str(), "/me ", 4 ) )
+                                               return Action ( channel, &out[4] );
+                                       else
+                                               return PrivMsg ( channel, out );
+                               }
+                               else if ( cmd == "!kiss" )
+                               {
+                                       if ( s.size() )
+                                               return Action ( channel, ssprintf("kisses %s",s.c_str()) );
+                                       else
+                                               return PrivMsg ( channel, ssprintf("%s: huh?",from.c_str()) );
+                               }
+                               else if ( cmd == "!hug" )
+                               {
+                                       if ( s.size() )
+                                               return Action ( channel, ssprintf("hugs %s",s.c_str()) );
+                                       else
+                                               return PrivMsg ( channel, ssprintf("%s: huh?",from.c_str()) );
+                               }
+                               else if ( cmd == "!give" )
+                               {
+                                       string who = gobble(s," \t");
+                                       if ( who.size() && s.size() )
+                                               return Action ( channel, ssprintf("gives %s a %s",who.c_str(),s.c_str()) );
+                                       else
+                                               return PrivMsg ( channel, ssprintf("%s: huh?",from.c_str()) );
+                               }
+                               else
+                               {
+                                       return PrivMsg ( channel, ssprintf("%s: huh?",from.c_str()) );
+                               }
+                       }
+               }
+
+               bool found_curse = false;
+               static vector<string>& curse = GetList("curse").list;
+               text2 = ssprintf(" %s ",text2.c_str());
+               for ( int i = 0; i < curse.size() && !found_curse; i++ )
+               {
+                       if ( strstr ( text2.c_str(), curse[i].c_str() ) )
+                               found_curse = true;
+               }
+               if ( found_curse )
+               {
+                       static List& cursecop = GetList("cursecop");
+                       return PrivMsg ( channel, ssprintf("%s: %s", from.c_str(), ListRand(cursecop)) );
+               }
+               else if ( found_name )
+               {
+                       string out = ssprintf("%s: %s", from.c_str(), TaggedReply("tech").c_str());
+                       flog.printf ( "TECH-REPLY: %s\n", out.c_str() );
+                       if ( !strnicmp ( out.c_str(), "/me ", 4 ) )
+                               return Action ( channel, &out[4] );
+                       else
+                               return PrivMsg ( channel, out );
                }
                return true;
        }
                }
                return true;
        }
@@ -123,9 +379,45 @@ public:
                //printf ( "OnChannelMode(%s,%s)\n", channel.c_str(), mode.c_str() );
                return true;
        }
                //printf ( "OnChannelMode(%s,%s)\n", channel.c_str(), mode.c_str() );
                return true;
        }
-       bool OnUserModeInChannel ( const string& src, const string& channel, const string& user, const string& mode )
+       bool OnUserModeInChannel ( const string& src, const string& channel, const string& mode, const string& target )
        {
        {
-               //printf ( "OnUserModeInChannel(%s,%s%s,%s)\n", src.c_str(), channel.c_str(), user.c_str(), mode.c_str() );
+               printf ( "OnUserModeInChannel(%s,%s,%s,%s)\n", src.c_str(), channel.c_str(), mode.c_str(), target.c_str() );
+               const char* p = mode.c_str();
+               if ( !p )
+                       return true;
+               while ( *p )
+               {
+                       switch ( *p++ )
+                       {
+                       case '+':
+                               while ( *p != 0 && *p != ' ' )
+                               {
+                                       if ( *p == 'o' )
+                                       {
+                                               printf ( "adding '%s' to ops list\n", target.c_str() );
+                                               ops.push_back ( target );
+                                       }
+                                       break;
+                               }
+                               break;
+                       case '-':
+                               while ( *p != 0 && *p != ' ' )
+                               {
+                                       if ( *p == 'o' )
+                                       {
+                                               for ( int i = 0; i < ops.size(); i++ )
+                                               {
+                                                       if ( ops[i] == target )
+                                                       {
+                                                               printf ( "remove '%s' to ops list\n", target.c_str() );
+                                                               ops.erase ( &ops[i] );
+                                                       }
+                                               }
+                                               break;
+                                       }
+                               }
+                       }
+               }
                return true;
        }
        bool OnMode ( const string& user, const string& mode )
                return true;
        }
        bool OnMode ( const string& user, const string& mode )
@@ -135,14 +427,16 @@ public:
        }
        bool OnChannelUsers ( const string& channel, const vector<string>& users )
        {
        }
        bool OnChannelUsers ( const string& channel, const vector<string>& users )
        {
-               printf ( "[%s has %i users]: ", channel.c_str(), users.size() );
+               //printf ( "[%s has %i users]: ", channel.c_str(), users.size() );
                for ( int i = 0; i < users.size(); i++ )
                {
                for ( int i = 0; i < users.size(); i++ )
                {
-                       if ( i )
+                       if ( users[i][0] == '@' )
+                               ops.push_back ( &users[i][1] );
+                       /*if ( i )
                                printf ( ", " );
                                printf ( ", " );
-                       printf ( "%s", users[i].c_str() );
+                       printf ( "%s", users[i].c_str() );*/
                }
                }
-               printf ( "\n" );
+               //printf ( "\n" );
                return true;
        }
 };
                return true;
        }
 };
@@ -150,32 +444,50 @@ public:
 int main ( int argc, char** argv )
 {
        srand ( time(NULL) );
 int main ( int argc, char** argv )
 {
        srand ( time(NULL) );
-       ImportList ( tech, "tech.txt" );
-       ImportList ( stru, "stru.txt" );
-       ImportList ( dev, "dev.txt" );
-       ImportList ( period, "period.txt" );
-       ImportList ( module, "module.txt" );
 
 
+       ImportList ( "dev", true );
+       ImportList ( "func", true );
+       ImportList ( "dev", true );
+       ImportList ( "func", true );
+       ImportList ( "irql", true );
+       ImportList ( "module", true );
+       ImportList ( "period", true );
+       ImportList ( "status", true );
+       ImportList ( "stru", true );
+       ImportList ( "type", true );
+
+       ImportList ( "tech", false );
+       ImportList ( "curse", false );
+       ImportList ( "cursecop", false );
+       ImportList ( "grovel", false );
+       ImportList ( "nogrovel", false );
+
+#ifdef _DEBUG
        printf ( "initializing IRCClient debugging\n" );
        IRCClient::SetDebug ( true );
        printf ( "initializing IRCClient debugging\n" );
        IRCClient::SetDebug ( true );
+#endif//_DEBUG
        printf ( "calling suStartup()\n" );
        suStartup();
        printf ( "creating IRCClient object\n" );
        MyIRCClient irc;
        printf ( "connecting to freenode\n" );
        printf ( "calling suStartup()\n" );
        suStartup();
        printf ( "creating IRCClient object\n" );
        MyIRCClient irc;
        printf ( "connecting to freenode\n" );
-       if ( !irc.Connect ( "212.204.214.114" ) ) // irc.freenode.net
+
+       //const char* server = "212.204.214.114";
+       const char* server = "irc.freenode.net";
+
+       if ( !irc.Connect ( server ) ) // irc.freenode.net
        {
                printf ( "couldn't connect to server\n" );
                return -1;
        }
        printf ( "sending user command\n" );
        {
                printf ( "couldn't connect to server\n" );
                return -1;
        }
        printf ( "sending user command\n" );
-       if ( !irc.User ( "ArchBlackmann", "", "irc.freenode.net", "Arch Blackmann" ) )
+       if ( !irc.User ( BOTNAME, "", "irc.freenode.net", BOTNAME ) )
        {
                printf ( "USER command failed\n" );
                return -1;
        }
        printf ( "sending nick\n" );
        {
                printf ( "USER command failed\n" );
                return -1;
        }
        printf ( "sending nick\n" );
-       if ( !irc.Nick ( "ArchBlackmann" ) )
+       if ( !irc.Nick ( BOTNAME ) )
        {
                printf ( "NICK command failed\n" );
                return -1;
        {
                printf ( "NICK command failed\n" );
                return -1;
@@ -186,8 +498,8 @@ int main ( int argc, char** argv )
                printf ( "MODE command failed\n" );
                return -1;
        }
                printf ( "MODE command failed\n" );
                return -1;
        }
-       printf ( "joining #ReactOS\n" );
-       if ( !irc.Join ( "#ReactOS" ) )
+       printf ( "joining channel\n" );
+       if ( !irc.Join ( CHANNEL ) )
        {
                printf ( "JOIN command failed\n" );
                return -1;
        {
                printf ( "JOIN command failed\n" );
                return -1;
index 7ad9787..583d50c 100644 (file)
@@ -81,7 +81,13 @@ IRCClient::Join ( const string& channel )
 bool
 IRCClient::PrivMsg ( const string& to, const string& text )
 {
 bool
 IRCClient::PrivMsg ( const string& to, const string& text )
 {
-       return Send ( "PRIVMSG " + to + " :" + text + "\n" );
+       return Send ( "PRIVMSG " + to + " :" + text + '\n' );
+}
+
+bool
+IRCClient::Action ( const string& to, const string& text )
+{
+       return Send ( "PRIVMSG " + to + " :" + (char)1 + "ACTION " + text + (char)1 + '\n' );
 }
 
 bool
 }
 
 bool
@@ -226,10 +232,41 @@ int IRCClient::Run ( bool launch_thread )
                                        printf ( "!!!:OnRecv failure 5 (PRIVMSG w/o target): %s", buf.c_str() );
                                        continue;
                                }
                                        printf ( "!!!:OnRecv failure 5 (PRIVMSG w/o target): %s", buf.c_str() );
                                        continue;
                                }
-                               if ( tgt[0] == '#' )
-                                       OnChannelMsg ( tgt, src, text );
+                               if ( *p == 1 )
+                               {
+                                       p++;
+                                       p2 = strchr ( p, ' ' );
+                                       if ( !p2 ) p2 = p + strlen(p);
+                                       cmd = string ( p, p2-p );
+                                       strlwr ( &cmd[0] );
+                                       p = p2 + 1;
+                                       p2 = strchr ( p, 1 );
+                                       if ( !p2 )
+                                       {
+                                               printf ( "!!!:OnRecv failure 6 (no terminating \x01 for initial \x01 found: %s", buf.c_str() );
+                                               continue;
+                                       }
+                                       text = string ( p, p2-p );
+                                       if ( cmd == "action" )
+                                       {
+                                               if ( tgt[0] == '#' )
+                                                       OnChannelAction ( tgt, src, text );
+                                               else
+                                                       OnPrivAction ( src, text );
+                                       }
+                                       else
+                                       {
+                                               printf ( "!!!:OnRecv failure 7 (unrecognized \x01 command '%s': %s", cmd.c_str(), buf.c_str() );
+                                               continue;
+                                       }
+                               }
                                else
                                else
-                                       OnPrivMsg ( src, text );
+                               {
+                                       if ( tgt[0] == '#' )
+                                               OnChannelMsg ( tgt, src, text );
+                                       else
+                                               OnPrivMsg ( src, text );
+                               }
                        }
                        else if ( cmd == "mode" )
                        {
                        }
                        else if ( cmd == "mode" )
                        {
@@ -237,22 +274,22 @@ int IRCClient::Run ( bool launch_thread )
                                //printf ( "[MODE] src='%s' cmd='%s' tgt='%s' text='%s'", src.c_str(), cmd.c_str(), tgt.c_str(), text.c_str() );
                                //OnMode ( 
                                // self mode change:
                                //printf ( "[MODE] src='%s' cmd='%s' tgt='%s' text='%s'", src.c_str(), cmd.c_str(), tgt.c_str(), text.c_str() );
                                //OnMode ( 
                                // self mode change:
-                               // [MODE] src=Relic3_14 cmd=mode tgt=Relic3_14  text=+i
+                               // [MODE] src=Nick cmd=mode tgt=Nick  text=+i
                                // channel mode change:
                                // channel mode change:
-                               // [MODE] src=Royce3 cmd=mode tgt=#Royce3 text=+o Relic3_14
+                               // [MODE] src=Nick cmd=mode tgt=#Channel text=+o Nick
                                if ( tgt[0] == '#' )
                                {
                                        p = text.c_str();
                                        p2 = strchr ( p, ' ' );
                                if ( tgt[0] == '#' )
                                {
                                        p = text.c_str();
                                        p2 = strchr ( p, ' ' );
-                                       if ( !p2 )
-                                               OnChannelMode ( tgt, text );
-                                       else
+                                       if ( p2 && *p2 )
                                        {
                                        {
-                                               string user ( p, p2-p );
+                                               string mode ( p, p2-p );
                                                p = p2 + 1;
                                                p += strspn ( p, " " );
                                                p = p2 + 1;
                                                p += strspn ( p, " " );
-                                               OnUserModeInChannel ( src, tgt, user, p );
+                                               OnUserModeInChannel ( src, tgt, mode, trim(p) );
                                        }
                                        }
+                                       else
+                                               OnChannelMode ( tgt, text );
                                }
                                else
                                        OnMode ( tgt, text );
                                }
                                else
                                        OnMode ( tgt, text );
@@ -261,6 +298,14 @@ int IRCClient::Run ( bool launch_thread )
                        {
                                OnJoin ( src, text );
                        }
                        {
                                OnJoin ( src, text );
                        }
+                       else if ( cmd == "part" )
+                       {
+                               OnPart ( src, text );
+                       }
+                       else if ( cmd == "nick" )
+                       {
+                               OnNick ( src, text );
+                       }
                        else if ( isdigit(cmd[0]) )
                        {
                                int i = atoi(cmd.c_str());
                        else if ( isdigit(cmd[0]) )
                        {
                                int i = atoi(cmd.c_str());
@@ -307,7 +352,13 @@ int IRCClient::Run ( bool launch_thread )
                        }
                        else
                        {
                        }
                        else
                        {
-                               if ( _debug ) printf ( "unrecognized ':' response: %s", buf.c_str() );
+                               if ( strstr ( buf.c_str(), "ACTION" ) )
+                               {
+                                       printf ( "ACTION: " );
+                                       for ( int i = 0; i < buf.size(); i++ )
+                                               printf ( "%c(%xh)", buf[i], (unsigned)(unsigned char)buf[i] );
+                               }
+                               else if ( _debug ) printf ( "unrecognized ':' response: %s", buf.c_str() );
                        }
                }
                else
                        }
                }
                else
index 6f8f360..6a89b22 100644 (file)
@@ -48,6 +48,9 @@ public:
        // send message to someone or some channel
        bool PrivMsg ( const std::string& to, const std::string& text );
 
        // send message to someone or some channel
        bool PrivMsg ( const std::string& to, const std::string& text );
 
+       // send /me to someone or some channel
+       bool Action ( const std::string& to, const std::string& text );
+
        // leave a channel
        bool Part ( const std::string& channel, const std::string& text );
 
        // leave a channel
        bool Part ( const std::string& channel, const std::string& text );
 
@@ -59,32 +62,45 @@ public:
        // OnConnected: you just successfully logged into irc server
        virtual bool OnConnected() = 0;
 
        // OnConnected: you just successfully logged into irc server
        virtual bool OnConnected() = 0;
 
-       // OnJoin: you just successfully joined this channel
-       virtual bool OnJoin ( const std::string& user, const std::string& channel ) = 0;
+       virtual bool OnNick ( const std::string& oldNick, const std::string& newNick ) { return true; }
+
+       // OnJoin: someone just successfully joined a channel you are in ( also sent when you successfully join a channel )
+       virtual bool OnJoin ( const std::string& user, const std::string& channel ) { return true; }
+
+       // OnPart: someone just left a channel you are in
+       virtual bool OnPart ( const std::string& user, const std::string& channel ) { return true; }
 
        // OnPrivMsg: you just received a private message from a user
 
        // OnPrivMsg: you just received a private message from a user
-       virtual bool OnPrivMsg ( const std::string& from, const std::string& text ) = 0;
+       virtual bool OnPrivMsg ( const std::string& from, const std::string& text ) { return true; }
+
+       virtual bool OnPrivAction ( const std::string& from, const std::string& text ) { return true; }
 
        // OnChannelMsg: you just received a chat line in a channel
        virtual bool OnChannelMsg ( const std::string& channel, const std::string& from,
 
        // OnChannelMsg: you just received a chat line in a channel
        virtual bool OnChannelMsg ( const std::string& channel, const std::string& from,
-               const std::string& text ) = 0;
+               const std::string& text ) { return true; }
+
+       // OnChannelAction: you just received a "/me" line in a channel
+       virtual bool OnChannelAction ( const std::string& channel, const std::string& from,
+               const std::string& text ) { return true; }
 
        // OnChannelMode: notification of a change of a channel's mode
 
        // OnChannelMode: notification of a change of a channel's mode
-       virtual bool OnChannelMode ( const std::string& channel, const std::string& mode ) = 0;
+       virtual bool OnChannelMode ( const std::string& channel, const std::string& mode )
+               { return true; }
 
        // OnUserModeInChannel: notification of a mode change of a user with respect to a channel.
        // f.ex.: this will be called when someone is oped in a channel.
        virtual bool OnUserModeInChannel ( const std::string& src, const std::string& channel,
 
        // OnUserModeInChannel: notification of a mode change of a user with respect to a channel.
        // f.ex.: this will be called when someone is oped in a channel.
        virtual bool OnUserModeInChannel ( const std::string& src, const std::string& channel,
-               const std::string& user, const std::string& mode ) = 0;
+               const std::string& mode, const std::string& target ) { return true; }
 
        // OnMode: you will receive this when you change your own mode, at least...
 
        // OnMode: you will receive this when you change your own mode, at least...
-       virtual bool OnMode ( const std::string& user, const std::string& mode ) = 0;
+       virtual bool OnMode ( const std::string& user, const std::string& mode ) { return true; }
 
        // notification of what users are in a channel ( you may get multiple of these... )
 
        // notification of what users are in a channel ( you may get multiple of these... )
-       virtual bool OnChannelUsers ( const std::string& channel, const std::vector<std::string>& users ) = 0;
+       virtual bool OnChannelUsers ( const std::string& channel, const std::vector<std::string>& users )
+               { return true; }
 
        // notification that you have received the entire list of users for a channel
 
        // notification that you have received the entire list of users for a channel
-       virtual bool OnEndChannelUsers ( const std::string& channel ) = 0;
+       virtual bool OnEndChannelUsers ( const std::string& channel ) { return true; }
 
        // OnPing - default implementation replies to PING with a valid PONG. required on some systems to
        // log in. Most systems require a response in order to stay connected, used to verify a client hasn't
 
        // OnPing - default implementation replies to PING with a valid PONG. required on some systems to
        // log in. Most systems require a response in order to stay connected, used to verify a client hasn't
diff --git a/irc/ArchBlackmann/curse.txt b/irc/ArchBlackmann/curse.txt
new file mode 100644 (file)
index 0000000..bfb9a24
--- /dev/null
@@ -0,0 +1,26 @@
+shit
+fuck
+pussy
+ ass 
+ ass-
+-ass 
+dumbass
+jackass
+fatass
+asshole
+smartass
+cunt
+fucker
+bitch
+dick
+penile
+stfu
+omfg
+lmao
+ ass.
+-ass.
+semprini
+goat.cx
+ekush
+akshor
+poop
diff --git a/irc/ArchBlackmann/cursecop.txt b/irc/ArchBlackmann/cursecop.txt
new file mode 100644 (file)
index 0000000..6144752
--- /dev/null
@@ -0,0 +1,10 @@
+You should have your mouth washed out with soap!
+This is a clean channel... please watch your language
+Please try to keep it clean
+Hey, there's children present ( I'm not even a year old yet! )
+Could you find a less-offensive way to express yourself, please?
+Such language :(
+Those aren't nice words to use
+Oh, my poor innocent ears :(
+Help! My mind is being corrupted!
+filthy mouths are not appreciated here
index a41350d..5415e0a 100644 (file)
@@ -11,4 +11,5 @@ Exception
 blight_
 jimtabor
 mtempel
 blight_
 jimtabor
 mtempel
-Gge
\ No newline at end of file
+Gge
+Alex_Ionescu
diff --git a/irc/ArchBlackmann/func.txt b/irc/ArchBlackmann/func.txt
new file mode 100644 (file)
index 0000000..0c94fa8
--- /dev/null
@@ -0,0 +1,581 @@
+BOOLEAN
+CcCanIWrite
+CcCopyRead
+CcCopyWrite
+CcDeferWrite
+CcFastCopyRead
+CcFastCopyWrite
+CcFlushCache
+CcGetDirtyPages
+CcGetFileObjectFromBcb
+CcGetFileObjectFromSectionPtrs
+CcGetFlushedValidData
+CcGetLsnForFileObject
+CcInitializeCacheMap
+CcIsThereDirtyData
+CcMapData
+CcMdlRead
+CcMdlReadComplete
+CcMdlWriteAbort
+CcMdlWriteComplete
+CcPinMappedData
+CcPinRead
+CcPrepareMdlWrite
+CcPreparePinWrite
+CcPurgeCacheSection
+CcRemapBcb
+CcRepinBcb
+CcScheduleReadAhead
+CcSetAdditionalCacheAttributes
+CcSetBcbOwnerPointer
+CcSetDirtyPageThreshold
+CcSetDirtyPinnedData
+CcSetFileSizes
+CcSetLogHandleForFile
+CcSetReadAheadGranularity
+CcUninitializeCacheMap
+CcUnpinData
+CcUnpinDataForThread
+CcUnpinRepinnedBcb
+CcWaitForCurrentLazyWriterActivity
+CcZeroData
+DbgLoadImageSymbols
+DbgQueryDebugFilterState
+DbgSetDebugFilterState
+EVENT_TYPE
+ExAcquireResourceExclusive
+ExAcquireResourceExclusiveLite
+ExAcquireResourceSharedLite
+ExAcquireSharedStarveExclusive
+ExAcquireSharedWaitForExclusive
+ExAllocateFromZone
+ExAllocatePool
+ExAllocatePoolWithQuota
+ExAllocatePoolWithQuotaTag
+ExAllocatePoolWithTag
+ExConvertExclusiveToSharedLite
+ExCreateCallback
+ExDeleteNPagedLookasideList
+ExDeletePagedLookasideList
+ExDeleteResource
+ExDeleteResourceLite
+ExDisableResourceBoostLite
+ExEnumHandleTable
+ExExtendZone
+ExFreePool
+ExGetCurrentProcessorCounts
+ExGetCurrentProcessorCpuUsage
+ExGetExclusiveWaiterCount
+ExGetPreviousMode
+ExGetSharedWaiterCount
+ExInitializeNPagedLookasideList
+ExInitializePagedLookasideList
+ExInitializeResource
+ExInitializeResourceLite
+ExInitializeZone
+ExInterlockedAddLargeInteger
+ExInterlockedAddUlong
+ExInterlockedDecrementLong
+ExInterlockedExchangeUlong
+ExInterlockedExtendZone
+ExInterlockedIncrementLong
+ExInterlockedInsertHeadList
+ExInterlockedInsertTailList
+ExInterlockedPopEntryList
+ExInterlockedPushEntryList
+ExInterlockedRemoveHeadList
+ExIsProcessorFeaturePresent
+ExIsResourceAcquiredExclusiveLite
+ExIsResourceAcquiredSharedLite
+ExLocalTimeToSystemTime
+ExNotifyCallback
+ExPostSystemEvent
+ExQueryPoolBlockSize
+ExQueueWorkItem
+ExRaiseAccessViolation
+ExRaiseDatatypeMisalignment
+ExRaiseException
+ExRaiseHardError
+ExRaiseStatus
+ExRegisterCallback
+ExReinitializeResourceLite
+ExReleaseResource
+ExReleaseResourceForThread
+ExReleaseResourceForThreadLite
+ExRosDumpPagedPoolByTag
+ExRosQueryPoolTag
+ExSetResourceOwnerPointer
+ExSetTimerResolution
+ExSystemExceptionFilter
+ExSystemTimeToLocalTime
+ExTryToAcquireResourceExclusiveLite
+ExUnregisterCallback
+ExUuidCreate
+ExVerifySuite
+FsRtlAcquireFileExclusive
+FsRtlAddMcbEntry
+FsRtlAddToTunnelCache
+FsRtlAllocateFileLock
+FsRtlAllocatePool
+FsRtlAllocatePoolWithQuota
+FsRtlAllocatePoolWithQuotaTag
+FsRtlAllocatePoolWithTag
+FsRtlAllocateResource
+FsRtlAreNamesEqual
+FsRtlBalanceReads
+FsRtlCheckLockForReadAccess
+FsRtlCheckLockForWriteAccess
+FsRtlCopyRead
+FsRtlCopyWrite
+FsRtlFastCheckLockForRead
+FsRtlFastCheckLockForWrite
+FsRtlFastUnlockAll
+FsRtlFastUnlockAllByKey
+FsRtlFastUnlockSingle
+FsRtlFindInTunnelCache
+FsRtlFreeFileLock
+FsRtlGetFileSize
+FsRtlGetNextFileLock
+FsRtlGetNextMcbEntry
+FsRtlIncrementCcFastReadNoWait
+FsRtlIncrementCcFastReadNotPossible
+FsRtlIncrementCcFastReadResourceMiss
+FsRtlIncrementCcFastReadWait
+FsRtlInitializeFileLock
+FsRtlInitializeMcb
+FsRtlInitializeTunnelCache
+FsRtlInsertPerFileObjectContext
+FsRtlInsertPerStreamContext
+FsRtlIsDbcsInExpression
+FsRtlIsFatDbcsLegal
+FsRtlIsHpfsDbcsLegal
+FsRtlIsNameInExpression
+FsRtlLookupLastLargeMcbEntryAndIndex
+FsRtlLookupLastMcbEntry
+FsRtlLookupMcbEntry
+FsRtlLookupPerFileObjectContext
+FsRtlLookupPerStreamContextInternal
+FsRtlMdlRead
+FsRtlMdlReadComplete
+FsRtlMdlReadCompleteDev
+FsRtlMdlReadDev
+FsRtlMdlWriteComplete
+FsRtlMdlWriteCompleteDev
+FsRtlNotifyChangeDirectory
+FsRtlNotifyCleanup
+FsRtlNotifyFilterChangeDirectory
+FsRtlNotifyFilterReportChange
+FsRtlNotifyFullChangeDirectory
+FsRtlNotifyFullReportChange
+FsRtlNotifyReportChange
+FsRtlNotifyUninitializeSync
+FsRtlNumberOfRunsInMcb
+FsRtlPostPagingFileStackOverflow
+FsRtlPostStackOverflow
+FsRtlPrepareMdlWrite
+FsRtlPrepareMdlWriteDev
+FsRtlPrivateLock
+FsRtlProcessFileLock
+FsRtlRegisterFileSystemFilterCallbacks
+FsRtlReleaseFile
+FsRtlRemoveMcbEntry
+FsRtlRemovePerFileObjectContext
+FsRtlRemovePerStreamContext
+FsRtlResetLargeMcb
+FsRtlSyncVolumes
+FsRtlTeardownPerStreamContexts
+FsRtlTruncateMcb
+FsRtlUninitializeFileLock
+FsRtlUninitializeMcb
+HalAdjustResourceList
+HalAllocateCommonBuffer
+HalAssignSlotResources
+HalCalibratePerformanceCounter
+HalFlushCommonBuffer
+HalFreeCommonBuffer
+HalGetAdapter
+HalGetBusData
+HalGetBusDataByOffset
+HalGetDmaAlignmentRequirement
+HalMakeBeep
+HalQueryDisplayParameters
+HalQueryRealTimeClock
+HalReadDmaCounter
+HalRequestIpi
+HalSetBusData
+HalSetBusDataByOffset
+HalSetDisplayParameters
+HalSetRealTimeClock
+HalStartNextProcessor
+IoAcquireCancelSpinLock
+IoAcquireRemoveLockEx
+IoAcquireVpbSpinLock
+IoAllocateAdapterChannel
+IoAllocateController
+IoAllocateDriverObjectExtension
+IoAllocateErrorLogEntry
+IoAllocateIrp
+IoAllocateMdl
+IoAllocateWorkItem
+IoAssignResources
+IoAttachDevice
+IoAttachDeviceByPointer
+IoAttachDeviceToDeviceStack
+IoAttachDeviceToDeviceStackSafe
+IoBuildAsynchronousFsdRequest
+IoBuildDeviceIoControlRequest
+IoBuildPartialMdl
+IoBuildSynchronousFsdRequest
+IoCallDriver
+IoCancelFileOpen
+IoCancelIrp
+IoCheckQuerySetFileInformation
+IoCheckQuerySetVolumeInformation
+IoCheckQuotaBufferValidity
+IoCheckShareAccess
+IoCompleteRequest
+IoConnectInterrupt
+IoCreateController
+IoCreateDevice
+IoCreateDisk
+IoCreateDriver
+IoCreateFile
+IoCreateFileSpecifyDeviceObjectHint
+IoCreateNotificationEvent
+IoCreateStreamFileObject
+IoCreateStreamFileObjectEx
+IoCreateStreamFileObjectLite
+IoCreateSymbolicLink
+IoCreateSynchronizationEvent
+IoCreateUnprotectedSymbolicLink
+IoDeleteController
+IoDeleteDevice
+IoDeleteDriver
+IoDeleteSymbolicLink
+IoDetachDevice
+IoDisconnectInterrupt
+IoEnqueueIrp
+IoEnumerateDeviceObjectList
+IoFlushAdapterBuffers
+IoForwardIrpSynchronously
+IoFreeAdapterChannel
+IoFreeController
+IoFreeErrorLogEntry
+IoFreeIrp
+IoFreeMapRegisters
+IoFreeMdl
+IoFreeWorkItem
+IoGetAttachedDevice
+IoGetAttachedDeviceReference
+IoGetBaseFileSystemDeviceObject
+IoGetBootDiskInformation
+IoGetConfigurationInformation
+IoGetCurrentProcess
+IoGetDeviceAttachmentBaseRef
+IoGetDeviceInterfaceAlias
+IoGetDeviceInterfaces
+IoGetDeviceObjectPointer
+IoGetDeviceProperty
+IoGetDeviceToVerify
+IoGetDiskDeviceObject
+IoGetDriverObjectExtension
+IoGetFileObjectGenericMapping
+IoGetInitialStack
+IoGetLowerDeviceObject
+IoGetRelatedDeviceObject
+IoGetRequestorProcess
+IoGetRequestorProcessId
+IoGetRequestorSessionId
+IoGetStackLimits
+IoGetTopLevelIrp
+IoInitializeIrp
+IoInitializeRemoveLockEx
+IoInitializeTimer
+IoInvalidateDeviceRelations
+IoInvalidateDeviceState
+IoIsFileOriginRemote
+IoIsOperationSynchronous
+IoIsSystemThread
+IoIsValidNameGraftingBuffer
+IoMakeAssociatedIrp
+IoMapTransfer
+IoOpenDeviceInstanceKey
+IoOpenDeviceInterfaceRegistryKey
+IoOpenDeviceRegistryKey
+IoPageRead
+IoPnPDeliverServicePowerNotification
+IoQueryDeviceDescription
+IoQueryDeviceEnumInfo
+IoQueryFileDosDeviceName
+IoQueryFileInformation
+IoQueryVolumeInformation
+IoQueueThreadIrp
+IoQueueWorkItem
+IoRaiseHardError
+IoRaiseInformationalHardError
+IoReadDiskSignature
+IoReadPartitionTableEx
+IoRegisterBootDriverReinitialization
+IoRegisterDeviceInterface
+IoRegisterDriverReinitialization
+IoRegisterFileSystem
+IoRegisterFsRegistrationChange
+IoRegisterLastChanceShutdownNotification
+IoRegisterPlugPlayNotification
+IoRegisterShutdownNotification
+IoReleaseCancelSpinLock
+IoReleaseRemoveLockAndWaitEx
+IoReleaseRemoveLockEx
+IoReleaseVpbSpinLock
+IoRemoveShareAccess
+IoReportDetectedDevice
+IoReportHalResourceUsage
+IoReportResourceForDetection
+IoReportResourceUsage
+IoReportTargetDeviceChange
+IoReportTargetDeviceChangeAsynchronous
+IoRequestDeviceEject
+IoReuseIrp
+IoSetCompletionRoutineEx
+IoSetDeviceInterfaceState
+IoSetDeviceToVerify
+IoSetFileOrigin
+IoSetHardErrorOrVerifyDevice
+IoSetInformation
+IoSetIoCompletion
+IoSetPartitionInformationEx
+IoSetShareAccess
+IoSetStartIoAttributes
+IoSetSystemPartition
+IoSetThreadHardErrorMode
+IoSetTopLevelIrp
+IoStartNextPacket
+IoStartNextPacketByKey
+IoStartPacket
+IoStartTimer
+IoStopTimer
+IoSynchronousInvalidateDeviceRelations
+IoSynchronousPageWrite
+IoUnregisterFileSystem
+IoUnregisterFsRegistrationChange
+IoUnregisterPlugPlayNotification
+IoUnregisterShutdownNotification
+IoUpdateShareAccess
+IoValidateDeviceIoControlAccess
+IoVerifyPartitionTable
+IoVerifyVolume
+IoVolumeDeviceToDosName
+IoWMIAllocateInstanceIds
+IoWMIDeviceObjectToInstanceName
+IoWMIExecuteMethod
+IoWMIHandleToInstanceName
+IoWMIOpenBlock
+IoWMIQueryAllData
+IoWMIQueryAllDataMultiple
+IoWMIQuerySingleInstance
+IoWMIQuerySingleInstanceMultiple
+IoWMIRegistrationControl
+IoWMISetNotificationCallback
+IoWMISetSingleInstance
+IoWMISetSingleItem
+IoWMISuggestInstanceName
+IoWMIWriteEvent
+IoWriteErrorLogEntry
+IoWritePartitionTableEx
+KPRIORITY
+KdPortGetByte
+KdPortPollByte
+KdPortPutByte
+Ke386QueryIoAccessMap
+Ke386SetIoAccessMap
+KeAcquireInterruptSpinLock
+KeAreApcsDisabled
+KeCapturePersistentThreadState
+KeDeregisterBugCheckReasonCallback
+KeFindConfigurationEntry
+KeFindConfigurationNextEntry
+KeFlushEntireTb
+KeFlushQueuedDpcs
+KeGetRecommendedSharedDataAlignment
+KeIsExecutingDpc
+KeQueryActiveProcessors
+KeQueryPerformanceCounter
+KeQueryPriorityThread
+KeQueryRuntimeThread
+KeQuerySystemTime
+KeQueryTickCount
+KeQueryTimeIncrement
+KeRaiseIrql
+KeRaiseIrqlToDpcLevel
+KeRaiseUserException
+KeReadStateEvent
+KeRegisterBugCheckCallback
+KeRegisterBugCheckReasonCallback
+KeReleaseInterruptSpinLock
+KeReleaseMutant
+KeReleaseMutex
+KeReleaseSemaphore
+KeReleaseSpinLock
+KeReleaseSpinLockFromDpcLevel
+KeReleaseSpinLockFromDpcLevel
+KeRemoveByKeyDeviceQueue
+KeRemoveByKeyDeviceQueueIfBusy
+KeRemoveDeviceQueue
+KeRemoveEntryDeviceQueue
+KeRemoveSystemServiceTable
+KeRestoreFloatingPointState
+KeRevertToUserAffinityThread
+KeRosDumpStackFrames
+KeRosGetStackFrames
+KeRosPrintAddress
+KeSaveFloatingPointState
+KeSetDmaIoCoherency
+KeSetEvent
+KeSetEventBoostPriority
+KeSetIdealProcessorThread
+KeSetKernelStackSwapEnable
+KeSetProfileIrql
+KeSetSystemAffinityThread
+KeSetTimeIncrement
+KeTerminateThread
+KeUserModeCallback
+KeWaitForMutexObject
+KeWaitForSingleObject
+KiCoprocessorError
+KiUnexpectedInterrupt
+LONG
+LdrFindResourceDirectory_U
+MmAddPhysicalMemory
+MmAddVerifierThunks
+MmAdjustWorkingSetSize
+MmAdvanceMdl
+MmAllocateContiguousMemory
+MmAllocateContiguousMemorySpecifyCache
+MmAllocateMappingAddress
+MmAllocateNonCachedMemory
+MmBuildMdlForNonPagedPool
+MmCanFileBeTruncated
+MmCreateMdl
+MmCreateSection
+MmDbgTranslatePhysicalAddress
+MmDisableModifiedWriteOfSection
+MmFlushImageSection
+MmForceSectionClosed
+MmFreeContiguousMemory
+MmFreeMappingAddress
+MmFreeNonCachedMemory
+MmGetPhysicalAddress
+MmGetPhysicalMemoryRanges
+MmGetSystemRoutineAddress
+MmGetVirtualForPhysical
+MmGrowKernelStack
+MmIsAddressValid
+MmIsDriverVerifying
+MmIsNonPagedSystemAddressValid
+MmIsRecursiveIoFault
+MmIsThisAnNtAsSystem
+MmIsVerifierEnabled
+MmLockPagableDataSection
+MmLockPagableImageSection
+MmLockPagableSectionByHandle
+MmMapIoSpace
+MmMapLockedPages
+MmMapLockedPagesWithReservedMapping
+MmMapMemoryDumpMdl
+MmMapUserAddressesToPage
+MmMapVideoDisplay
+MmMapViewInSessionSpace
+MmMapViewInSystemSpace
+MmMapViewOfSection
+MmMarkPhysicalMemoryAsBad
+MmMarkPhysicalMemoryAsGood
+MmPageEntireDriver
+MmPrefetchPages
+MmProbeAndLockPages
+MmProbeAndLockProcessPages
+MmProbeAndLockSelectedPages
+MmProtectMdlSystemAddress
+MmQuerySystemSize
+MmRemovePhysicalMemory
+MmResetDriverPaging
+MmSecureVirtualMemory
+MmSetAddressRangeModified
+MmSetBankedSection
+MmSizeOfMdl
+MmTrimAllSystemPagableMemory
+MmUnlockPagableImageSection
+MmUnlockPages
+MmUnmapIoSpace
+MmUnmapLockedPages
+MmUnmapReservedMapping
+MmUnmapVideoDisplay
+MmUnmapViewInSessionSpace
+MmUnmapViewInSystemSpace
+MmUnmapViewOfSection
+MmUnsecureVirtualMemory
+OUT
+ObCreateObject
+PEJOB
+PEPROCESS
+PKBUGCHECK_CALLBACK_RECORD
+PKDEVICE_QUEUE_ENTRY
+PKIRQL
+PULONG
+PVOID
+PW32_THREAD_CALLBACK
+PoCallDriver
+PoRegisterDeviceForIdleDetection
+PoRegisterSystemState
+PoRequestPowerIrp
+PoSetDeviceBusy
+PoSetPowerState
+PoSetSystemState
+PoStartNextPowerIrp
+PoUnregisterSystemState
+ProbeForRead
+ProbeForWrite
+PsAssignImpersonationToken
+PsCreateSystemProcess
+PsCreateSystemThread
+PsGetCurrentProcessId
+PsGetCurrentThreadId
+PsImpersonateClient
+PsReferenceImpersonationToken
+PsReferencePrimaryToken
+PsRevertThreadToSelf
+PsRevertToSelf
+PsTerminateSystemThread
+READ_PORT_BUFFER_UCHAR
+READ_PORT_BUFFER_ULONG
+READ_PORT_BUFFER_USHORT
+READ_PORT_UCHAR
+READ_PORT_ULONG
+READ_PORT_USHORT
+SeAssignSecurityEx
+SeAuditHardLinkCreation
+SeAuditingFileEvents
+SeAuditingFileEventsWithContext
+SeAuditingFileOrGlobalEvents
+SeAuditingHardLinkEvents
+SeAuditingHardLinkEventsWithContext
+SeCaptureSecurityDescriptor
+SeCaptureSubjectContext
+SeCloseObjectAuditAlarm
+SeCreateAccessState
+SeCreateClientSecurityFromSubjectContext
+SeFilterToken
+SeImpersonateClientEx
+SePrivilegeObjectAuditAlarm
+SeQueryInformationToken
+SeQuerySessionIdToken
+SeReleaseSecurityDescriptor
+SeSetSecurityDescriptorInfoEx
+SeTokenIsAdmin
+SeTokenIsRestricted
+SeTokenIsWriteRestricted
+WRITE_PORT_BUFFER_UCHAR
+WRITE_PORT_BUFFER_ULONG
+WRITE_PORT_BUFFER_USHORT
+WRITE_PORT_UCHAR
+WRITE_PORT_ULONG
+WRITE_PORT_USHORT
diff --git a/irc/ArchBlackmann/grovel.txt b/irc/ArchBlackmann/grovel.txt
new file mode 100644 (file)
index 0000000..21137b5
--- /dev/null
@@ -0,0 +1,10 @@
+/me bows humbly and begs %s's forgiveness
+%s is soo cool... I hope to be like him some day
+/me hides in a corner and hopes %s doesn't beat him with the whipping noodle again
+/me prostrates at %s's feet and begs his majesty's forgiveness
+%s: please don't hurt me!
+I'm not worthy... I'm not worthy...
+/me sings %s's praises to the world!
+/me thinks %s is smarter than %dev%
+%s: oh please may I defrag your sock drawer?
+/me gives %s a cookie, hoping it will make up for breaking %func% the other day...
diff --git a/irc/ArchBlackmann/irql.txt b/irc/ArchBlackmann/irql.txt
new file mode 100644 (file)
index 0000000..f585ced
--- /dev/null
@@ -0,0 +1,9 @@
+PASSIVE_LEVEL
+APC_LEVEL
+DISPATCH_LEVEL
+PROFILE_LEVEL
+CLOCK1_LEVEL
+IPI_LEVEL
+POWER_LEVEL
+HIGH_LEVEL
+SYNCH_LEVEL
\ No newline at end of file
diff --git a/irc/ArchBlackmann/nogrovel.txt b/irc/ArchBlackmann/nogrovel.txt
new file mode 100644 (file)
index 0000000..bbeecf0
--- /dev/null
@@ -0,0 +1,5 @@
+/me slaps %s with a large trout
+recycle(%s)
+Did I hear something? Musta been a %s-fly... Where's that fly-swatter?
+%s: go away son, you bother me....
+/me beats %s with the whipping noodle
diff --git a/irc/ArchBlackmann/status.txt b/irc/ArchBlackmann/status.txt
new file mode 100644 (file)
index 0000000..a883e41
--- /dev/null
@@ -0,0 +1,654 @@
+RPC_NT_ALREADY_LISTENING
+RPC_NT_ALREADY_REGISTERED
+RPC_NT_CALL_FAILED
+RPC_NT_CALL_FAILED_DNE
+RPC_NT_CANT_CREATE_ENDPOINT
+RPC_NT_INVALID_BINDING
+RPC_NT_INVALID_ENDPOINT_FORMAT
+RPC_NT_INVALID_NETWORK_OPTIONS
+RPC_NT_INVALID_NET_ADDR
+RPC_NT_INVALID_RPC_PROTSEQ
+RPC_NT_INVALID_STRING_BINDING
+RPC_NT_INVALID_STRING_UUID
+RPC_NT_INVALID_TIMEOUT
+RPC_NT_NOT_LISTENING
+RPC_NT_NO_BINDINGS
+RPC_NT_NO_CALL_ACTIVE
+RPC_NT_NO_ENDPOINT_FOUND
+RPC_NT_NO_PROTSEQS
+RPC_NT_NO_PROTSEQS_REGISTERED
+RPC_NT_OBJECT_NOT_FOUND
+RPC_NT_OUT_OF_RESOURCES
+RPC_NT_PROTOCOL_ERROR
+RPC_NT_PROTSEQ_NOT_SUPPORTED
+RPC_NT_SERVER_TOO_BUSY
+RPC_NT_SERVER_UNAVAILABLE
+RPC_NT_SS_IN_NULL_CONTEXT
+RPC_NT_TYPE_ALREADY_REGISTERED
+RPC_NT_UNKNOWN_IF
+RPC_NT_UNKNOWN_MGR_TYPE
+RPC_NT_WRONG_KIND_OF_BINDING
+STATUS_ABANDONED
+STATUS_ABANDONED_WAIT_0
+STATUS_ABANDONED_WAIT_63
+STATUS_ABIOS_INVALID_COMMAND
+STATUS_ABIOS_INVALID_LID
+STATUS_ABIOS_INVALID_SELECTOR
+STATUS_ABIOS_LID_ALREADY_OWNED
+STATUS_ABIOS_LID_NOT_EXIST
+STATUS_ABIOS_NOT_LID_OWNER
+STATUS_ABIOS_NOT_PRESENT
+STATUS_ABIOS_SELECTOR_NOT_AVAILABLE
+STATUS_ACCESS_DENIED
+STATUS_ACCESS_VIOLATION
+STATUS_ACCOUNT_DISABLED
+STATUS_ACCOUNT_EXPIRED
+STATUS_ACCOUNT_LOCKED_OUT
+STATUS_ACCOUNT_RESTRICTION
+STATUS_ADAPTER_HARDWARE_ERROR
+STATUS_ADDRESS_ALREADY_ASSOCIATED
+STATUS_ADDRESS_ALREADY_EXISTS
+STATUS_ADDRESS_CLOSED
+STATUS_ADDRESS_NOT_ASSOCIATED
+STATUS_AGENTS_EXHAUSTED
+STATUS_ALERTED
+STATUS_ALIAS_EXISTS
+STATUS_ALLOCATE_BUCKET
+STATUS_ALLOTTED_SPACE_EXCEEDED
+STATUS_ALREADY_COMMITTED
+STATUS_ALREADY_DISCONNECTED
+STATUS_ALREADY_WIN32
+STATUS_APP_INIT_FAILURE
+STATUS_ARBITRATION_UNHANDLED
+STATUS_ARRAY_BOUNDS_EXCEEDED
+STATUS_AUDIT_FAILED
+STATUS_BACKUP_CONTROLLER
+STATUS_BAD_COMPRESSION_BUFFER
+STATUS_BAD_CURRENT_DIRECTORY
+STATUS_BAD_DESCRIPTOR_FORMAT
+STATUS_BAD_DEVICE_TYPE
+STATUS_BAD_DLL_ENTRYPOINT
+STATUS_BAD_FUNCTION_TABLE
+STATUS_BAD_IMPERSONATION_LEVEL
+STATUS_BAD_INHERITANCE_ACL
+STATUS_BAD_INITIAL_PC
+STATUS_BAD_INITIAL_STACK
+STATUS_BAD_LOGON_SESSION_STATE
+STATUS_BAD_MASTER_BOOT_RECORD
+STATUS_BAD_NETWORK_NAME
+STATUS_BAD_NETWORK_PATH
+STATUS_BAD_REMOTE_ADAPTER
+STATUS_BAD_SERVICE_ENTRYPOINT
+STATUS_BAD_STACK
+STATUS_BAD_TOKEN_TYPE
+STATUS_BAD_VALIDATION_CLASS
+STATUS_BAD_WORKING_SET_LIMIT
+STATUS_BEGINNING_OF_MEDIA
+STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT
+STATUS_BREAKPOINT
+STATUS_BUFFER_OVERFLOW
+STATUS_BUFFER_TOO_SMALL
+STATUS_BUS_RESET
+STATUS_CANCELLED
+STATUS_CANNOT_DELETE
+STATUS_CANNOT_IMPERSONATE
+STATUS_CANNOT_LOAD_REGISTRY_FILE
+STATUS_CANT_ACCESS_DOMAIN_INFO
+STATUS_CANT_DISABLE_MANDATORY
+STATUS_CANT_OPEN_ANONYMOUS
+STATUS_CANT_TERMINATE_SELF
+STATUS_CANT_WAIT
+STATUS_CARDBUS_NOT_SUPPORTED
+STATUS_CHECKING_FILE_SYSTEM
+STATUS_CHILD_MUST_BE_VOLATILE
+STATUS_CLIENT_SERVER_PARAMETERS_INVALID
+STATUS_COMMITMENT_LIMIT
+STATUS_CONFLICTING_ADDRESSES
+STATUS_CONNECTION_ABORTED
+STATUS_CONNECTION_ACTIVE
+STATUS_CONNECTION_COUNT_LIMIT
+STATUS_CONNECTION_DISCONNECTED
+STATUS_CONNECTION_INVALID
+STATUS_CONNECTION_IN_USE
+STATUS_CONNECTION_REFUSED
+STATUS_CONNECTION_RESET
+STATUS_CONTROL_C_EXIT
+STATUS_CONVERT_TO_LARGE
+STATUS_COULD_NOT_INTERPRET
+STATUS_CRC_ERROR
+STATUS_CTL_FILE_NOT_SUPPORTED
+STATUS_DATATYPE_MISALIGNMENT
+STATUS_DATA_ERROR
+STATUS_DATA_LATE_ERROR
+STATUS_DATA_NOT_ACCEPTED
+STATUS_DATA_OVERRUN
+STATUS_DEBUG_ATTACH_FAILED
+STATUS_DELETE_PENDING
+STATUS_DEVICE_ALREADY_ATTACHED
+STATUS_DEVICE_BUSY
+STATUS_DEVICE_CONFIGURATION_ERROR
+STATUS_DEVICE_DATA_ERROR
+STATUS_DEVICE_DOES_NOT_EXIST
+STATUS_DEVICE_NOT_CONNECTED
+STATUS_DEVICE_NOT_PARTITIONED
+STATUS_DEVICE_NOT_READY
+STATUS_DEVICE_OFF_LINE
+STATUS_DEVICE_PAPER_EMPTY
+STATUS_DEVICE_POWERED_OFF
+STATUS_DEVICE_POWER_FAILURE
+STATUS_DEVICE_PROTOCOL_ERROR
+STATUS_DFS_EXIT_PATH_FOUND
+STATUS_DFS_UNAVAILABLE
+STATUS_DIRECTORY_NOT_EMPTY
+STATUS_DISK_CORRUPT_ERROR
+STATUS_DISK_FULL
+STATUS_DISK_OPERATION_FAILED
+STATUS_DISK_RECALIBRATE_FAILED
+STATUS_DISK_RESET_FAILED
+STATUS_DLL_INIT_FAILED
+STATUS_DLL_INIT_FAILED_LOGOFF
+STATUS_DLL_NOT_FOUND
+STATUS_DOMAIN_CONTROLLER_NOT_FOUND
+STATUS_DOMAIN_CTRLR_CONFIG_ERROR
+STATUS_DOMAIN_EXISTS
+STATUS_DOMAIN_LIMIT_EXCEEDED
+STATUS_DOMAIN_TRUST_INCONSISTENT
+STATUS_DRIVER_CANCEL_TIMEOUT
+STATUS_DRIVER_ENTRYPOINT_NOT_FOUND
+STATUS_DRIVER_INTERNAL_ERROR
+STATUS_DRIVER_ORDINAL_NOT_FOUND
+STATUS_DRIVER_UNABLE_TO_LOAD
+STATUS_DUPLICATE_NAME
+STATUS_DUPLICATE_OBJECTID
+STATUS_EAS_NOT_SUPPORTED
+STATUS_EA_CORRUPT_ERROR
+STATUS_EA_LIST_INCONSISTENT
+STATUS_EA_TOO_LARGE
+STATUS_END_OF_FILE
+STATUS_END_OF_MEDIA
+STATUS_ENTRYPOINT_NOT_FOUND
+STATUS_EOM_OVERFLOW
+STATUS_EVALUATION_EXPIRATION
+STATUS_EVENTLOG_CANT_START
+STATUS_EVENTLOG_FILE_CHANGED
+STATUS_EVENTLOG_FILE_CORRUPT
+STATUS_EVENT_DONE
+STATUS_EVENT_PENDING
+STATUS_EXTRANEOUS_INFORMATION
+STATUS_FAIL_CHECK
+STATUS_FATAL_APP_EXIT
+STATUS_FILEMARK_DETECTED
+STATUS_FILES_OPEN
+STATUS_FILE_CLOSED
+STATUS_FILE_CORRUPT_ERROR
+STATUS_FILE_DELETED
+STATUS_FILE_FORCED_CLOSED
+STATUS_FILE_INVALID
+STATUS_FILE_IS_A_DIRECTORY
+STATUS_FILE_IS_OFFLINE
+STATUS_FILE_LOCK_CONFLICT
+STATUS_FILE_RENAMED
+STATUS_FLOAT_DENORMAL_OPERAND
+STATUS_FLOAT_DIVIDE_BY_ZERO
+STATUS_FLOAT_INEXACT_RESULT
+STATUS_FLOAT_INVALID_OPERATION
+STATUS_FLOAT_OVERFLOW
+STATUS_FLOAT_STACK_CHECK
+STATUS_FLOAT_UNDERFLOW
+STATUS_FLOPPY_BAD_REGISTERS
+STATUS_FLOPPY_ID_MARK_NOT_FOUND
+STATUS_FLOPPY_UNKNOWN_ERROR
+STATUS_FLOPPY_VOLUME
+STATUS_FLOPPY_WRONG_CYLINDER
+STATUS_FOUND_OUT_OF_SCOPE
+STATUS_FREE_VM_NOT_AT_BASE
+STATUS_FS_DRIVER_REQUIRED
+STATUS_FT_MISSING_MEMBER
+STATUS_FT_ORPHANING
+STATUS_FT_READ_RECOVERING_FROM_BACKUP
+STATUS_FT_WRITE_RECOVERY
+STATUS_FULLSCREEN_MODE
+STATUS_GENERIC_NOT_MAPPED
+STATUS_GRACEFUL_DISCONNECT
+STATUS_GROUP_EXISTS
+STATUS_GUARD_PAGE_VIOLATION
+STATUS_GUIDS_EXHAUSTED
+STATUS_GUID_SUBSTITUTION_MADE
+STATUS_HANDLES_CLOSED
+STATUS_HANDLE_NOT_CLOSABLE
+STATUS_HOST_UNREACHABLE
+STATUS_ILLEGAL_CHARACTER
+STATUS_ILLEGAL_DLL_RELOCATION
+STATUS_ILLEGAL_FLOAT_CONTEXT
+STATUS_ILLEGAL_FUNCTION
+STATUS_ILLEGAL_INSTRUCTION
+STATUS_ILL_FORMED_PASSWORD
+STATUS_ILL_FORMED_SERVICE_ENTRY
+STATUS_IMAGE_ALREADY_LOADED
+STATUS_IMAGE_CHECKSUM_MISMATCH
+STATUS_IMAGE_MACHINE_TYPE_MISMATCH
+STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE
+STATUS_IMAGE_MP_UP_MISMATCH
+STATUS_IMAGE_NOT_AT_BASE
+STATUS_INCOMPATIBLE_FILE_MAP
+STATUS_INFO_LENGTH_MISMATCH
+STATUS_INSTANCE_NOT_AVAILABLE
+STATUS_INSTRUCTION_MISALIGNMENT
+STATUS_INSUFFICIENT_LOGON_INFO
+STATUS_INSUFFICIENT_RESOURCES
+STATUS_INSUFF_SERVER_RESOURCES
+STATUS_INTEGER_DIVIDE_BY_ZERO
+STATUS_INTEGER_OVERFLOW
+STATUS_INTERNAL_DB_CORRUPTION
+STATUS_INTERNAL_DB_ERROR
+STATUS_INTERNAL_ERROR
+STATUS_INVALID_ACCOUNT_NAME
+STATUS_INVALID_ACL
+STATUS_INVALID_ADDRESS
+STATUS_INVALID_ADDRESS_COMPONENT
+STATUS_INVALID_ADDRESS_WILDCARD
+STATUS_INVALID_BLOCK_LENGTH
+STATUS_INVALID_BUFFER_SIZE
+STATUS_INVALID_CID
+STATUS_INVALID_COMPUTER_NAME
+STATUS_INVALID_CONNECTION
+STATUS_INVALID_DEVICE_REQUEST
+STATUS_INVALID_DEVICE_STATE
+STATUS_INVALID_DISPOSITION
+STATUS_INVALID_DOMAIN_ROLE
+STATUS_INVALID_DOMAIN_STATE
+STATUS_INVALID_EA_FLAG
+STATUS_INVALID_EA_NAME
+STATUS_INVALID_FILE_FOR_SECTION
+STATUS_INVALID_GROUP_ATTRIBUTES
+STATUS_INVALID_HANDLE
+STATUS_INVALID_HW_PROFILE
+STATUS_INVALID_ID_AUTHORITY
+STATUS_INVALID_IMAGE_FORMAT
+STATUS_INVALID_IMAGE_LE_FORMAT
+STATUS_INVALID_IMAGE_NE_FORMAT
+STATUS_INVALID_IMAGE_NOT_MZ
+STATUS_INVALID_IMAGE_PROTECT
+STATUS_INVALID_IMAGE_WIN_16
+STATUS_INVALID_INFO_CLASS
+STATUS_INVALID_LDT_DESCRIPTOR
+STATUS_INVALID_LDT_OFFSET
+STATUS_INVALID_LDT_SIZE
+STATUS_INVALID_LEVEL
+STATUS_INVALID_LOCK_SEQUENCE
+STATUS_INVALID_LOGON_HOURS
+STATUS_INVALID_LOGON_TYPE
+STATUS_INVALID_MEMBER
+STATUS_INVALID_NETWORK_RESPONSE
+STATUS_INVALID_OPLOCK_PROTOCOL
+STATUS_INVALID_OWNER
+STATUS_INVALID_PAGE_PROTECTION
+STATUS_INVALID_PARAMETER
+STATUS_INVALID_PARAMETER_1
+STATUS_INVALID_PARAMETER_10
+STATUS_INVALID_PARAMETER_11
+STATUS_INVALID_PARAMETER_12
+STATUS_INVALID_PARAMETER_2
+STATUS_INVALID_PARAMETER_3
+STATUS_INVALID_PARAMETER_4
+STATUS_INVALID_PARAMETER_5
+STATUS_INVALID_PARAMETER_6
+STATUS_INVALID_PARAMETER_7
+STATUS_INVALID_PARAMETER_8
+STATUS_INVALID_PARAMETER_9
+STATUS_INVALID_PARAMETER_MIX
+STATUS_INVALID_PIPE_STATE
+STATUS_INVALID_PLUGPLAY_DEVICE_PATH
+STATUS_INVALID_PORT_ATTRIBUTES
+STATUS_INVALID_PORT_HANDLE
+STATUS_INVALID_PRIMARY_GROUP
+STATUS_INVALID_QUOTA_LOWER
+STATUS_INVALID_READ_MODE
+STATUS_INVALID_SECURITY_DESCR
+STATUS_INVALID_SERVER_STATE
+STATUS_INVALID_SID
+STATUS_INVALID_SUB_AUTHORITY
+STATUS_INVALID_SYSTEM_SERVICE
+STATUS_INVALID_UNWIND_TARGET
+STATUS_INVALID_USER_BUFFER
+STATUS_INVALID_VARIANT
+STATUS_INVALID_VIEW_SIZE
+STATUS_INVALID_VLM_OPERATION
+STATUS_INVALID_VOLUME_LABEL
+STATUS_INVALID_WORKSTATION
+STATUS_IN_PAGE_ERROR
+STATUS_IO_DEVICE_ERROR
+STATUS_IO_PRIVILEGE_FAILED
+STATUS_IO_REPARSE_DATA_INVALID
+STATUS_IO_REPARSE_TAG_INVALID
+STATUS_IO_REPARSE_TAG_MISMATCH
+STATUS_IO_REPARSE_TAG_NOT_HANDLED
+STATUS_IO_TIMEOUT
+STATUS_IP_ADDRESS_CONFLICT1
+STATUS_IP_ADDRESS_CONFLICT2
+STATUS_KERNEL_APC
+STATUS_KEY_DELETED
+STATUS_KEY_HAS_CHILDREN
+STATUS_LAST_ADMIN
+STATUS_LICENSE_QUOTA_EXCEEDED
+STATUS_LICENSE_VIOLATION
+STATUS_LINK_FAILED
+STATUS_LINK_TIMEOUT
+STATUS_LM_CROSS_ENCRYPTION_REQUIRED
+STATUS_LOCAL_DISCONNECT
+STATUS_LOCAL_USER_SESSION_KEY
+STATUS_LOCK_NOT_GRANTED
+STATUS_LOGIN_TIME_RESTRICTION
+STATUS_LOGIN_WKSTA_RESTRICTION
+STATUS_LOGON_FAILURE
+STATUS_LOGON_NOT_GRANTED
+STATUS_LOGON_SERVER_CONFLICT
+STATUS_LOGON_SESSION_COLLISION
+STATUS_LOGON_SESSION_EXISTS
+STATUS_LOGON_TYPE_NOT_GRANTED
+STATUS_LOG_FILE_FULL
+STATUS_LOG_HARD_ERROR
+STATUS_LONGJUMP
+STATUS_LOST_WRITEBEHIND_DATA
+STATUS_LPC_REPLY_LOST
+STATUS_LUIDS_EXHAUSTED
+STATUS_MAPPED_ALIGNMENT
+STATUS_MAPPED_FILE_SIZE_ZERO
+STATUS_MARSHALL_OVERFLOW
+STATUS_MEDIA_CHANGED
+STATUS_MEDIA_CHECK
+STATUS_MEDIA_WRITE_PROTECTED
+STATUS_MEMBERS_PRIMARY_GROUP
+STATUS_MEMBER_IN_ALIAS
+STATUS_MEMBER_IN_GROUP
+STATUS_MEMBER_NOT_IN_ALIAS
+STATUS_MEMBER_NOT_IN_GROUP
+STATUS_MEMORY_NOT_ALLOCATED
+STATUS_MESSAGE_NOT_FOUND
+STATUS_MISSING_SYSTEMFILE
+STATUS_MORE_ENTRIES
+STATUS_MORE_PROCESSING_REQUIRED
+STATUS_MUTANT_LIMIT_EXCEEDED
+STATUS_MUTANT_NOT_OWNED
+STATUS_NAME_TOO_LONG
+STATUS_NETLOGON_NOT_STARTED
+STATUS_NETWORK_ACCESS_DENIED
+STATUS_NETWORK_BUSY
+STATUS_NETWORK_CREDENTIAL_CONFLICT
+STATUS_NETWORK_NAME_DELETED
+STATUS_NETWORK_UNREACHABLE
+STATUS_NET_WRITE_FAULT
+STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT
+STATUS_NOLOGON_SERVER_TRUST_ACCOUNT
+STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT
+STATUS_NONCONTINUABLE_EXCEPTION
+STATUS_NONEXISTENT_EA_ENTRY
+STATUS_NONEXISTENT_SECTOR
+STATUS_NONE_MAPPED
+STATUS_NOTIFY_CLEANUP
+STATUS_NOTIFY_ENUM_DIR
+STATUS_NOT_ALL_ASSIGNED
+STATUS_NOT_A_DIRECTORY
+STATUS_NOT_A_REPARSE_POINT
+STATUS_NOT_CLIENT_SESSION
+STATUS_NOT_COMMITTED
+STATUS_NOT_FOUND
+STATUS_NOT_IMPLEMENTED
+STATUS_NOT_LOCKED
+STATUS_NOT_LOGON_PROCESS
+STATUS_NOT_MAPPED_DATA
+STATUS_NOT_MAPPED_VIEW
+STATUS_NOT_REGISTRY_FILE
+STATUS_NOT_SAME_DEVICE
+STATUS_NOT_SERVER_SESSION
+STATUS_NOT_SUPPORTED
+STATUS_NOT_TINY_STREAM
+STATUS_NO_BROWSER_SERVERS_FOUND
+STATUS_NO_CALLBACK_ACTIVE
+STATUS_NO_DATA_DETECTED
+STATUS_NO_EAS_ON_FILE
+STATUS_NO_EVENT_PAIR
+STATUS_NO_GUID_TRANSLATION
+STATUS_NO_IMPERSONATION_TOKEN
+STATUS_NO_INHERITANCE
+STATUS_NO_LDT
+STATUS_NO_LOGON_SERVERS
+STATUS_NO_LOG_SPACE
+STATUS_NO_MATCH
+STATUS_NO_MEDIA
+STATUS_NO_MEDIA_IN_DEVICE
+STATUS_NO_MEMORY
+STATUS_NO_MORE_EAS
+STATUS_NO_MORE_ENTRIES
+STATUS_NO_MORE_FILES
+STATUS_NO_MORE_MATCHES
+STATUS_NO_PAGEFILE
+STATUS_NO_QUOTAS_NO_ACCOUNT
+STATUS_NO_SECURITY_ON_OBJECT
+STATUS_NO_SPOOL_SPACE
+STATUS_NO_SUCH_ALIAS
+STATUS_NO_SUCH_DEVICE
+STATUS_NO_SUCH_DOMAIN
+STATUS_NO_SUCH_FILE
+STATUS_NO_SUCH_GROUP
+STATUS_NO_SUCH_LOGON_SESSION
+STATUS_NO_SUCH_MEMBER
+STATUS_NO_SUCH_PACKAGE
+STATUS_NO_SUCH_PRIVILEGE
+STATUS_NO_SUCH_USER
+STATUS_NO_TOKEN
+STATUS_NO_TRUST_LSA_SECRET
+STATUS_NO_TRUST_SAM_ACCOUNT
+STATUS_NO_USER_SESSION_KEY
+STATUS_NO_YIELD_PERFORMED
+STATUS_NT_CROSS_ENCRYPTION_REQUIRED
+STATUS_NULL_LM_PASSWORD
+STATUS_OBJECTID_EXISTS
+STATUS_OBJECT_EXISTS
+STATUS_OBJECT_NAME_COLLISION
+STATUS_OBJECT_NAME_EXISTS
+STATUS_OBJECT_NAME_INVALID
+STATUS_OBJECT_NAME_NOT_FOUND
+STATUS_OBJECT_PATH_INVALID
+STATUS_OBJECT_PATH_NOT_FOUND
+STATUS_OBJECT_PATH_SYNTAX_BAD
+STATUS_OBJECT_TYPE_MISMATCH
+STATUS_OPEN_FAILED
+STATUS_OPLOCK_BREAK_IN_PROCESS
+STATUS_OPLOCK_NOT_GRANTED
+STATUS_ORDINAL_NOT_FOUND
+STATUS_PAGEFILE_CREATE_FAILED
+STATUS_PAGEFILE_QUOTA
+STATUS_PAGEFILE_QUOTA_EXCEEDED
+STATUS_PARITY_ERROR
+STATUS_PARTIAL_COPY
+STATUS_PARTITION_FAILURE
+STATUS_PASSWORD_EXPIRED
+STATUS_PASSWORD_MUST_CHANGE
+STATUS_PASSWORD_RESTRICTION
+STATUS_PATH_NOT_COVERED
+STATUS_PENDING
+STATUS_PIPE_BROKEN
+STATUS_PIPE_BUSY
+STATUS_PIPE_CLOSING
+STATUS_PIPE_CONNECTED
+STATUS_PIPE_DISCONNECTED
+STATUS_PIPE_EMPTY
+STATUS_PIPE_LISTENING
+STATUS_PIPE_NOT_AVAILABLE
+STATUS_PLUGPLAY_NO_DEVICE
+STATUS_PORT_ALREADY_SET
+STATUS_PORT_CONNECTION_REFUSED
+STATUS_PORT_DISCONNECTED
+STATUS_PORT_MESSAGE_TOO_LONG
+STATUS_PORT_UNREACHABLE
+STATUS_POSSIBLE_DEADLOCK
+STATUS_PREDEFINED_HANDLE
+STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED
+STATUS_PRINT_CANCELLED
+STATUS_PRINT_QUEUE_FULL
+STATUS_PRIVILEGED_INSTRUCTION
+STATUS_PRIVILEGE_NOT_HELD
+STATUS_PROCEDURE_NOT_FOUND
+STATUS_PROCESS_IN_JOB
+STATUS_PROCESS_IS_TERMINATING
+STATUS_PROCESS_NOT_IN_JOB
+STATUS_PROFILING_AT_LIMIT
+STATUS_PROFILING_NOT_STARTED
+STATUS_PROFILING_NOT_STOPPED
+STATUS_PROPSET_NOT_FOUND
+STATUS_PROTOCOL_UNREACHABLE
+STATUS_PWD_HISTORY_CONFLICT
+STATUS_PWD_TOO_RECENT
+STATUS_PWD_TOO_SHORT
+STATUS_QUOTA_EXCEEDED
+STATUS_QUOTA_LIST_INCONSISTENT
+STATUS_RANGE_LIST_CONFLICT
+STATUS_RANGE_NOT_FOUND
+STATUS_RANGE_NOT_LOCKED
+STATUS_RECEIVE_EXPEDITED
+STATUS_RECEIVE_PARTIAL
+STATUS_RECEIVE_PARTIAL_EXPEDITED
+STATUS_RECOVERY_FAILURE
+STATUS_REDIRECTOR_HAS_OPEN_HANDLES
+STATUS_REDIRECTOR_NOT_STARTED
+STATUS_REDIRECTOR_PAUSED
+STATUS_REDIRECTOR_STARTED
+STATUS_REGISTRY_CORRUPT
+STATUS_REGISTRY_IO_FAILED
+STATUS_REGISTRY_QUOTA_LIMIT
+STATUS_REGISTRY_RECOVERED
+STATUS_REMOTE_DISCONNECT
+STATUS_REMOTE_NOT_LISTENING
+STATUS_REMOTE_RESOURCES
+STATUS_REMOTE_SESSION_LIMIT
+STATUS_REPARSE
+STATUS_REPLY_MESSAGE_MISMATCH
+STATUS_REQUEST_ABORTED
+STATUS_REQUEST_NOT_ACCEPTED
+STATUS_RESOURCE_DATA_NOT_FOUND
+STATUS_RESOURCE_LANG_NOT_FOUND
+STATUS_RESOURCE_NAME_NOT_FOUND
+STATUS_RESOURCE_NOT_OWNED
+STATUS_RESOURCE_TYPE_NOT_FOUND
+STATUS_RETRY
+STATUS_REVISION_MISMATCH
+STATUS_RXACT_COMMITTED
+STATUS_RXACT_COMMIT_FAILURE
+STATUS_RXACT_COMMIT_NECESSARY
+STATUS_RXACT_INVALID_STATE
+STATUS_RXACT_STATE_CREATED
+STATUS_SAM_INIT_FAILURE
+STATUS_SECRET_TOO_LONG
+STATUS_SECTION_NOT_EXTENDED
+STATUS_SECTION_NOT_IMAGE
+STATUS_SECTION_PROTECTION
+STATUS_SECTION_TOO_BIG
+STATUS_SEGMENT_NOTIFICATION
+STATUS_SEMAPHORE_LIMIT_EXCEEDED
+STATUS_SERIAL_COUNTER_TIMEOUT
+STATUS_SERIAL_MORE_WRITES
+STATUS_SERIAL_NO_DEVICE_INITED
+STATUS_SERVER_DISABLED
+STATUS_SERVER_HAS_OPEN_HANDLES
+STATUS_SERVER_NOT_DISABLED
+STATUS_SERVICE_NOTIFICATION
+STATUS_SETMARK_DETECTED
+STATUS_SHARED_IRQ_BUSY
+STATUS_SHARING_PAUSED
+STATUS_SHARING_VIOLATION
+STATUS_SINGLE_STEP
+STATUS_SOME_NOT_MAPPED
+STATUS_SPECIAL_ACCOUNT
+STATUS_SPECIAL_GROUP
+STATUS_SPECIAL_USER
+STATUS_STACK_OVERFLOW
+STATUS_STACK_OVERFLOW_READ
+STATUS_SUCCESS
+STATUS_SUSPEND_COUNT_EXCEEDED
+STATUS_SYNCHRONIZATION_REQUIRED
+STATUS_SYSTEM_PROCESS_TERMINATED
+STATUS_THREAD_IS_TERMINATING
+STATUS_THREAD_NOT_IN_PROCESS
+STATUS_THREAD_WAS_SUSPENDED
+STATUS_TIMEOUT
+STATUS_TIMER_NOT_CANCELED
+STATUS_TIMER_RESOLUTION_NOT_SET
+STATUS_TIMER_RESUME_IGNORED
+STATUS_TIME_DIFFERENCE_AT_DC
+STATUS_TOKEN_ALREADY_IN_USE
+STATUS_TOO_LATE
+STATUS_TOO_MANY_ADDRESSES
+STATUS_TOO_MANY_COMMANDS
+STATUS_TOO_MANY_CONTEXT_IDS
+STATUS_TOO_MANY_GUIDS_REQUESTED
+STATUS_TOO_MANY_LINKS
+STATUS_TOO_MANY_LUIDS_REQUESTED
+STATUS_TOO_MANY_NAMES
+STATUS_TOO_MANY_NODES
+STATUS_TOO_MANY_OPENED_FILES
+STATUS_TOO_MANY_PAGING_FILES
+STATUS_TOO_MANY_SECRETS
+STATUS_TOO_MANY_SESSIONS
+STATUS_TOO_MANY_SIDS
+STATUS_TOO_MANY_THREADS
+STATUS_TRANSACTION_ABORTED
+STATUS_TRANSACTION_INVALID_ID
+STATUS_TRANSACTION_INVALID_TYPE
+STATUS_TRANSACTION_NO_MATCH
+STATUS_TRANSACTION_NO_RELEASE
+STATUS_TRANSACTION_RESPONDED
+STATUS_TRANSACTION_TIMED_OUT
+STATUS_TRUSTED_DOMAIN_FAILURE
+STATUS_TRUSTED_RELATIONSHIP_FAILURE
+STATUS_TRUST_FAILURE
+STATUS_UNABLE_TO_DECOMMIT_VM
+STATUS_UNABLE_TO_DELETE_SECTION
+STATUS_UNABLE_TO_FREE_VM
+STATUS_UNABLE_TO_LOCK_MEDIA
+STATUS_UNABLE_TO_UNLOAD_MEDIA
+STATUS_UNDEFINED_CHARACTER
+STATUS_UNEXPECTED_IO_ERROR
+STATUS_UNEXPECTED_MM_CREATE_ERR
+STATUS_UNEXPECTED_MM_EXTEND_ERR
+STATUS_UNEXPECTED_MM_MAP_ERROR
+STATUS_UNEXPECTED_NETWORK_ERROR
+STATUS_UNHANDLED_EXCEPTION
+STATUS_UNKNOWN_REVISION
+STATUS_UNMAPPABLE_CHARACTER
+STATUS_UNRECOGNIZED_MEDIA
+STATUS_UNRECOGNIZED_VOLUME
+STATUS_UNSUCCESSFUL
+STATUS_UNSUPPORTED_COMPRESSION
+STATUS_UNWIND
+STATUS_USER_APC
+STATUS_USER_EXISTS
+STATUS_USER_MAPPED_FILE
+STATUS_USER_SESSION_DELETED
+STATUS_VALIDATE_CONTINUE
+STATUS_VARIABLE_NOT_FOUND
+STATUS_VDM_HARD_ERROR
+STATUS_VERIFY_REQUIRED
+STATUS_VIRTUAL_CIRCUIT_CLOSED
+STATUS_VOLUME_DISMOUNTED
+STATUS_VOLUME_MOUNTED
+STATUS_WAIT_0
+STATUS_WAIT_63
+STATUS_WAKE_SYSTEM_DEBUGGER
+STATUS_WAS_LOCKED
+STATUS_WAS_UNLOCKED
+STATUS_WORKING_SET_LIMIT_RANGE
+STATUS_WORKING_SET_QUOTA
+STATUS_WRONG_PASSWORD
+STATUS_WRONG_PASSWORD_CORE
+STATUS_WRONG_VOLUME
+STATUS_WX86_BREAKPOINT
+STATUS_WX86_CONTINUE
+STATUS_WX86_CREATEWX86TIB
+STATUS_WX86_EXCEPTION_CHAIN
+STATUS_WX86_EXCEPTION_CONTINUE
+STATUS_WX86_EXCEPTION_LASTCHANCE
+STATUS_WX86_FLOAT_STACK_CHECK
+STATUS_WX86_INTERNAL_ERROR
+STATUS_WX86_SINGLE_STEP
+STATUS_WX86_UNSIMULATE
\ No newline at end of file
index 0277ba7..b95f426 100644 (file)
@@ -18,7 +18,7 @@ Don't you know going around dereferncing null pointers all day can be hazardous
 Well, duh!
 There's a bit in cr3 for problems like that.
 Just add a field to the %stru% to keep track of it!
 Well, duh!
 There's a bit in cr3 for problems like that.
 Just add a field to the %stru% to keep track of it!
-Don't worry about it... the garbage collector in the kernel will clean it up for you.
+Don't worry about it... the garbage collector in %module% will clean it up for you.
 Did I do that?
 Didn't %dev% fix that already?
 Yes, I think I've seen that bug before... no... that was another program.
 Did I do that?
 Didn't %dev% fix that already?
 Yes, I think I've seen that bug before... no... that was another program.
@@ -43,7 +43,7 @@ Hmm.. that seems to have been introduced by my last commit... I bet CVS mixed up
 It can't possibly be my fault, so I don't care.
 I'm not experiencing that problem, perhaps it's all in your mind.
 Well... like a good friend of mine said... "Don't Panic!"
 It can't possibly be my fault, so I don't care.
 I'm not experiencing that problem, perhaps it's all in your mind.
 Well... like a good friend of mine said... "Don't Panic!"
-It just shows you how far ReactOS has come along! A year ago a bug like that wouldn't have even been possible!
+It just shows you how far ReactOS has come along! A %period% ago a bug like that wouldn't have even been possible!
 Just surround the code with an #if 0/#endif block, it solves all my problems!
 You know.. if %dev% would just finish %module% for us, we wouldn't be having this problem.
 I say we move on to the next function, since we can't seem to figure this one out.
 Just surround the code with an #if 0/#endif block, it solves all my problems!
 You know.. if %dev% would just finish %module% for us, we wouldn't be having this problem.
 I say we move on to the next function, since we can't seem to figure this one out.
@@ -54,8 +54,20 @@ ask %dev%
 Thank you for that amazingly keen insight, Commander Obvious.
 Sorry, can't help you right now, trying to track down this bug %dev% caused in %module%
 I dont know about that, but I just fixed a problem in %module% for %dev%
 Thank you for that amazingly keen insight, Commander Obvious.
 Sorry, can't help you right now, trying to track down this bug %dev% caused in %module%
 I dont know about that, but I just fixed a problem in %module% for %dev%
-How should I know? I'm still trying to figure out this main() thing... ooh! wanna see what I did in the kernel?
+How should I know? I'm still trying to figure out this main() thing... ooh! wanna see what I did in %module%?
 lol!
 *wink*
 lol!
 *wink*
+;)
 42
 42
-It's gonna take me %period%s to fix all %dev%'s bugs in %module% :(
\ No newline at end of file
+It's gonna take me over %period% to fix all %dev%'s bugs in %module% :(
+How could %func% return %status%!? It bet %dev% broke it! I didn't touch it... honest!  no.. really! (me hides)
+It's fine if you get %status% there ... just ignore the destruction, and call %func% instead.
+%dev% said %status% isn't really an error in this context because we expect %module% to be toast by now
+heh, I'm still trying to figure out why %func% is returning %status% when I call it from %module%...
+%dev% said it's okay to ignore that as long as you're below %irql%
+erm, what do you mean?
+damn, I do that all the time
+if you want a reply that sounds right, I'd say that %func% support for that is vital to the future of %module%
+Sounds like you're having a problem with %func%. I hate that thing... don't talk to me about it.
+Just return %status% and forget about it. Someone else will fix it, later.
+Blah blah blah... sheesh... can't you figure out *anything*?
\ No newline at end of file
diff --git a/irc/ArchBlackmann/type.txt b/irc/ArchBlackmann/type.txt
new file mode 100644 (file)
index 0000000..2e10f9f
--- /dev/null
@@ -0,0 +1,1000 @@
+ACCESS_MASK
+ACCESS_STATE
+APC_LEVEL
+ARBITER_ACTION
+ARBITER_ACTION
+ARBITER_CONFLICT_INFO
+ARBITER_FLAG_BOOT_CONFIG
+ARBITER_INTERFACE
+ARBITER_LIST_ENTRY
+ARBITER_PARAMETERS
+ARBITER_PARTIAL
+ARBITER_REQUEST_SOURCE
+ARBITER_RESULT
+AT_EXTENDABLE_FILE
+AT_RESERVED
+AT_ROUND_TO_PAGE
+BOOTDISK_INFORMATION
+BOOTDISK_INFORMATION_EX
+BUS_INTERFACE_STANDARD
+BUS_QUERY_ID_TYPE
+BaseAddresses[PCI_TYPE0_ADDRESSES]
+BaseAddresses[PCI_TYPE1_ADDRESSES]
+CLIENT_ID
+CLOCK1_LEVEL
+CLOCK2_LEVEL
+CM_EISA_FUNCTION_INFORMATION
+CM_EISA_FUNCTION_INFORMATION.FunctionFlags
+CM_EISA_SLOT_INFORMATION
+CM_EISA_SLOT_INFORMATION.ReturnCode
+CM_FLOPPY_DEVICE_DATA
+CM_FULL_RESOURCE_DESCRIPTOR
+CM_INT13_DRIVE_PARAMETER
+CM_KEYBOARD_DEVICE_DATA
+CM_MCA_POS_DATA
+CM_PARTIAL_RESOURCE_DESCRIPTOR
+CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags
+CM_PARTIAL_RESOURCE_DESCRIPTOR.ShareDisposition
+CM_PARTIAL_RESOURCE_DESCRIPTOR.Type
+CM_PARTIAL_RESOURCE_LIST
+CM_POWER_DATA
+CM_RESOURCE_DMA_16
+CM_RESOURCE_DMA_32
+CM_RESOURCE_DMA_8
+CM_RESOURCE_DMA_8_AND_16
+CM_RESOURCE_DMA_BUS_MASTER
+CM_RESOURCE_DMA_TYPE_A
+CM_RESOURCE_DMA_TYPE_B
+CM_RESOURCE_DMA_TYPE_F
+CM_RESOURCE_INTERRUPT_LATCHED
+CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE
+CM_RESOURCE_LIST
+CM_RESOURCE_MEMORY_24
+CM_RESOURCE_MEMORY_CACHEABLE
+CM_RESOURCE_MEMORY_COMBINEDWRITE
+CM_RESOURCE_MEMORY_PREFETCHABLE
+CM_RESOURCE_MEMORY_READ_ONLY
+CM_RESOURCE_MEMORY_READ_WRITE
+CM_RESOURCE_MEMORY_WRITE_ONLY
+CM_RESOURCE_PORT_10_BIT_DECODE
+CM_RESOURCE_PORT_12_BIT_DECODE
+CM_RESOURCE_PORT_16_BIT_DECODE
+CM_RESOURCE_PORT_IO
+CM_RESOURCE_PORT_MEMORY
+CM_RESOURCE_PORT_PASSIVE_DECODE
+CM_RESOURCE_PORT_POSITIVE_DECODE
+CM_RESOURCE_PORT_WINDOW_DECODE
+CM_SCSI_DEVICE_DATA
+CM_SERIAL_DEVICE_DATA
+CM_SHARE_DISPOSITION
+CONFIGURATION_INFORMATION
+CONFIGURATION_TYPE
+CONFIGURATION_TYPE
+CONTAINING_RECORD
+CONTROLLER_OBJECT
+CREATE_DISK
+CREATE_DISK_GPT
+CREATE_DISK_MBR
+CREATE_FILE_TYPE
+CREATE_FILE_TYPE
+DBG_STATUS_BUGCHECK_FIRST
+DBG_STATUS_BUGCHECK_SECOND
+DBG_STATUS_CONTROL_C
+DBG_STATUS_DEBUG_CONTROL
+DBG_STATUS_FATAL
+DBG_STATUS_SYSRQ
+DBG_STATUS_WORKER
+DEVICE_CAPABILITIES
+DEVICE_DESCRIPTION
+DEVICE_DESCRIPTION.Version
+DEVICE_DESCRIPTION_VERSION
+DEVICE_DESCRIPTION_VERSION1
+DEVICE_DESCRIPTION_VERSION2
+DEVICE_INTERFACE_CHANGE_NOTIFICATION
+DEVICE_OBJECT
+DEVICE_OBJECT.AlignmentRequirement
+DEVICE_OBJECT.Characteristics
+DEVICE_OBJECT.DeviceType
+DEVICE_OBJECT.Flags
+DEVICE_POWER_STATE
+DEVICE_REGISTRY_PROPERTY
+DEVICE_REGISTRY_PROPERTY
+DEVICE_RELATIONS
+DEVICE_RELATION_TYPE
+DEVICE_RELATION_TYPE
+DEVICE_TEXT_TYPE
+DEVICE_TYPE
+DEVICE_USAGE_NOTIFICATION_TYPE
+DIRECTORY_ALL_ACCESS
+DIRECTORY_CREATE_OBJECT
+DIRECTORY_CREATE_SUBDIRECTORY
+DIRECTORY_QUERY
+DIRECTORY_TRAVERSE
+DISK_SIGNATURE
+DISPATCHER_HEADER
+DISPATCH_LEVEL
+DMA_ADAPTER
+DMA_CONFIGURATION_BYTE0
+DMA_CONFIGURATION_BYTE1
+DMA_OPERATIONS
+DMA_SPEED
+DMA_WIDTH
+DO_BUFFERED_IO
+DO_BUS_ENUMERATED_DEVICE
+DO_DEVICE_HAS_NAME
+DO_DEVICE_INITIALIZING
+DO_DIRECT_IO
+DO_EXCLUSIVE
+DO_LONG_TERM_REQUESTS
+DO_LOW_PRIORITY_FILESYSTEM
+DO_MAP_IO_BUFFER
+DO_NEVER_LAST_DEVICE
+DO_POWER_INRUSH
+DO_POWER_PAGABLE
+DO_SHUTDOWN_REGISTERED
+DO_SYSTEM_BOOT_PARTITION
+DO_VERIFY_VOLUME
+DRIVER_EXTENSION
+DRIVER_OBJECT
+DRIVER_VERIFIER_FORCE_IRQL_CHECKING
+DRIVER_VERIFIER_INJECT_ALLOCATION_FAILURES
+DRIVER_VERIFIER_IO_CHECKING
+DRIVER_VERIFIER_SPECIAL_POOLING
+DRIVER_VERIFIER_THUNK_PAIRS
+DRIVER_VERIFIER_TRACK_POOL_ALLOCATIONS
+DRIVE_LAYOUT_INFORMATION_GPT
+DRIVE_LAYOUT_INFORMATION_MBR
+DUPLICATE_CLOSE_SOURCE
+DUPLICATE_SAME_ACCESS
+DUPLICATE_SAME_ATTRIBUTES
+EFLAG_SELECT
+EFLAG_SIGN
+EFLAG_ZERO
+EISA_DMA_CONFIGURATION
+EISA_EMPTY_SLOT
+EISA_FREE_FORM_DATA
+EISA_FUNCTION_ENABLED
+EISA_HAS_DMA_ENTRY
+EISA_HAS_INFORMATION
+EISA_HAS_IRQ_ENTRY
+EISA_HAS_MEMORY_ENTRY
+EISA_HAS_PORT_INIT_ENTRY
+EISA_HAS_PORT_RANGE
+EISA_HAS_TYPE_ENTRY
+EISA_INVALID_BIOS_CALL
+EISA_INVALID_CONFIGURATION
+EISA_INVALID_FUNCTION
+EISA_INVALID_SLOT
+EISA_IRQ_CONFIGURATION
+EISA_IRQ_DESCRIPTOR
+EISA_MEMORY_CONFIGURATION
+EISA_MEMORY_TYPE
+EISA_PORT_CONFIGURATION
+EISA_PORT_DESCRIPTOR
+ERESOURCE_THREAD
+ES_CONTINUOUS
+ES_DISPLAY_REQUIRED
+ES_SYSTEM_REQUIRED
+ES_USER_PRESENT
+EVENT_INCREMENT
+EVENT_TYPE
+EVENT_TYPE
+EXECUTION_STATE
+EX_POOL_PRIORITY
+EX_POOL_PRIORITY
+FAST_IO_DISPATCH
+FAST_MUTEX
+FIELD_OFFSET
+FILE_128_BYTE_ALIGNMENT
+FILE_256_BYTE_ALIGNMENT
+FILE_32_BYTE_ALIGNMENT
+FILE_512_BYTE_ALIGNMENT
+FILE_64_BYTE_ALIGNMENT
+FILE_ADD_FILE
+FILE_ADD_SUBDIRECTORY
+FILE_ALIGNMENT_INFORMATION
+FILE_ALL_ACCESS
+FILE_ANY_ACCESS
+FILE_APPEND_DATA
+FILE_ATTRIBUTE_ARCHIVE
+FILE_ATTRIBUTE_COMPRESSED
+FILE_ATTRIBUTE_DEVICE
+FILE_ATTRIBUTE_DIRECTORY
+FILE_ATTRIBUTE_ENCRYPTED
+FILE_ATTRIBUTE_HIDDEN
+FILE_ATTRIBUTE_NORMAL
+FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
+FILE_ATTRIBUTE_OFFLINE
+FILE_ATTRIBUTE_READONLY
+FILE_ATTRIBUTE_REPARSE_POINT
+FILE_ATTRIBUTE_SPARSE_FILE
+FILE_ATTRIBUTE_SYSTEM
+FILE_ATTRIBUTE_TAG_INFORMATION
+FILE_ATTRIBUTE_TEMPORARY
+FILE_ATTRIBUTE_VALID_FLAGS
+FILE_ATTRIBUTE_VALID_SET_FLAGS
+FILE_AUTOGENERATED_DEVICE_NAME
+FILE_BASIC_INFORMATION
+FILE_BYTE_ALIGNMENT
+FILE_COMPLETE_IF_OPLOCKED
+FILE_COPY_STRUCTURED_STORAGE
+FILE_CREATE
+FILE_CREATED
+FILE_CREATE_PIPE_INSTANCE
+FILE_CREATE_TREE_CONNECTION
+FILE_DELETE_CHILD
+FILE_DELETE_ON_CLOSE
+FILE_DEVICE_8042_PORT
+FILE_DEVICE_ACPI
+FILE_DEVICE_BATTERY
+FILE_DEVICE_BEEP
+FILE_DEVICE_BUS_EXTENDER
+FILE_DEVICE_CD_ROM
+FILE_DEVICE_CD_ROM_FILE_SYSTEM
+FILE_DEVICE_CHANGER
+FILE_DEVICE_CONTROLLER
+FILE_DEVICE_DATALINK
+FILE_DEVICE_DFS
+FILE_DEVICE_DFS_FILE_SYSTEM
+FILE_DEVICE_DFS_VOLUME
+FILE_DEVICE_DISK
+FILE_DEVICE_DISK_FILE_SYSTEM
+FILE_DEVICE_DVD
+FILE_DEVICE_FILE_SYSTEM
+FILE_DEVICE_FIPS
+FILE_DEVICE_FULLSCREEN_VIDEO
+FILE_DEVICE_INPORT_PORT
+FILE_DEVICE_IS_MOUNTED
+FILE_DEVICE_KEYBOARD
+FILE_DEVICE_KS
+FILE_DEVICE_KSEC
+FILE_DEVICE_MAILSLOT
+FILE_DEVICE_MASS_STORAGE
+FILE_DEVICE_MIDI_IN
+FILE_DEVICE_MIDI_OUT
+FILE_DEVICE_MODEM
+FILE_DEVICE_MOUSE
+FILE_DEVICE_MULTI_UNC_PROVIDER
+FILE_DEVICE_NAMED_PIPE
+FILE_DEVICE_NETWORK
+FILE_DEVICE_NETWORK_BROWSER
+FILE_DEVICE_NETWORK_FILE_SYSTEM
+FILE_DEVICE_NETWORK_REDIRECTOR
+FILE_DEVICE_NULL
+FILE_DEVICE_PARALLEL_PORT
+FILE_DEVICE_PHYSICAL_NETCARD
+FILE_DEVICE_PRINTER
+FILE_DEVICE_SCANNER
+FILE_DEVICE_SCREEN
+FILE_DEVICE_SECURE_OPEN
+FILE_DEVICE_SERENUM
+FILE_DEVICE_SERIAL_MOUSE_PORT
+FILE_DEVICE_SERIAL_PORT
+FILE_DEVICE_SMARTCARD
+FILE_DEVICE_SMB
+FILE_DEVICE_SOUND
+FILE_DEVICE_STREAMS
+FILE_DEVICE_TAPE
+FILE_DEVICE_TAPE_FILE_SYSTEM
+FILE_DEVICE_TERMSRV
+FILE_DEVICE_TRANSPORT
+FILE_DEVICE_UNKNOWN
+FILE_DEVICE_VDM
+FILE_DEVICE_VIDEO
+FILE_DEVICE_VIRTUAL_DISK
+FILE_DEVICE_WAVE_IN
+FILE_DEVICE_WAVE_OUT
+FILE_DIRECTORY_FILE
+FILE_DISPOSITION_INFORMATION
+FILE_DOES_NOT_EXIST
+FILE_END_OF_FILE_INFORMATION
+FILE_EXECUTE
+FILE_EXISTS
+FILE_FLOPPY_DISKETTE
+FILE_FS_DEVICE_INFORMATION
+FILE_FULL_EA_INFORMATION
+FILE_GENERIC_EXECUTE
+FILE_GENERIC_READ
+FILE_GENERIC_WRITE
+FILE_INFORMATION_CLASS
+FILE_INFORMATION_CLASS
+FILE_LIST_DIRECTORY
+FILE_LONG_ALIGNMENT
+FILE_MAXIMUM_DISPOSITION
+FILE_NAME_INFORMATION
+FILE_NETWORK_OPEN_INFORMATION
+FILE_NON_DIRECTORY_FILE
+FILE_NO_COMPRESSION
+FILE_NO_EA_KNOWLEDGE
+FILE_NO_INTERMEDIATE_BUFFERING
+FILE_OBJECT.Flags
+FILE_OBJECT
+FILE_OCTA_ALIGNMENT
+FILE_OPEN
+FILE_OPENED
+FILE_OPEN_BY_FILE_ID
+FILE_OPEN_FOR_BACKUP_INTENT
+FILE_OPEN_FOR_FREE_SPACE_QUERY
+FILE_OPEN_FOR_RECOVERY
+FILE_OPEN_IF
+FILE_OPEN_NO_RECALL
+FILE_OPEN_REPARSE_POINT
+FILE_OVERWRITE
+FILE_OVERWRITE_IF
+FILE_OVERWRITTEN
+FILE_POSITION_INFORMATION
+FILE_QUAD_ALIGNMENT
+FILE_RANDOM_ACCESS
+FILE_READ_ACCESS
+FILE_READ_ATTRIBUTES
+FILE_READ_DATA
+FILE_READ_EA
+FILE_READ_ONLY_DEVICE
+FILE_REMOTE_DEVICE
+FILE_REMOVABLE_MEDIA
+FILE_RESERVE_OPFILTER
+FILE_SEQUENTIAL_ONLY
+FILE_SHARE_DELETE
+FILE_SHARE_READ
+FILE_SHARE_VALID_FLAGS
+FILE_SHARE_WRITE
+FILE_SPECIAL_ACCESS
+FILE_STANDARD_INFORMATION
+FILE_STRUCTURED_STORAGE
+FILE_SUPERSEDE
+FILE_SUPERSEDED
+FILE_SYNCHRONOUS_IO_ALERT
+FILE_SYNCHRONOUS_IO_NONALERT
+FILE_TRAVERSE
+FILE_USE_FILE_POINTER_POSITION
+FILE_VALID_DATA_LENGTH_INFORMATION
+FILE_VALID_MAILSLOT_OPTION_FLAGS
+FILE_VALID_OPTION_FLAGS
+FILE_VALID_PIPE_OPTION_FLAGS
+FILE_VALID_SET_FLAGS
+FILE_VIRTUAL_VOLUME
+FILE_WORD_ALIGNMENT
+FILE_WRITE_ACCESS
+FILE_WRITE_ATTRIBUTES
+FILE_WRITE_DATA
+FILE_WRITE_EA
+FILE_WRITE_ONCE_MEDIA
+FILE_WRITE_THROUGH
+FILE_WRITE_TO_END_OF_FILE
+FO_ALERTABLE_IO
+FO_CACHE_SUPPORTED
+FO_CLEANUP_COMPLETE
+FO_DELETE_ON_CLOSE
+FO_DIRECT_DEVICE_OPEN
+FO_FILE_FAST_IO_READ
+FO_FILE_MODIFIED
+FO_FILE_OBJECT_HAS_EXTENSION
+FO_FILE_OPEN
+FO_FILE_OPEN_CANCELLED
+FO_FILE_SIZE_CHANGED
+FO_GENERATE_AUDIT_ON_CLOSE
+FO_HANDLE_CREATED
+FO_MAILSLOT
+FO_NAMED_PIPE
+FO_NO_INTERMEDIATE_BUFFERING
+FO_OPENED_CASE_SENSITIVE
+FO_RANDOM_ACCESS
+FO_REMOTE_ORIGIN
+FO_SEQUENTIAL_ONLY
+FO_STREAM_FILE
+FO_SYNCHRONOUS_IO
+FO_TEMPORARY_FILE
+FO_VOLUME_OPEN
+FO_WRITE_THROUGH
+FS_INFORMATION_CLASS
+GENERAL_LOOKASIDE
+GENERAL_LOOKASIDE_S
+HASH_STRING_ALGORITHM_DEFAULT
+HASH_STRING_ALGORITHM_INVALID
+HASH_STRING_ALGORITHM_X65599
+HIGH_LEVEL
+HIGH_PRIORITY
+HWPROFILE_CHANGE_NOTIFICATION
+IMAGE_ADDRESSING_MODE_32BIT
+IMAGE_INFO
+INITIAL_PRIVILEGE_COUNT
+INITIAL_PRIVILEGE_SET
+INTERFACE_TYPE
+INTERFACE_TYPE
+INTERLOCKED_RESULT
+IO_ALLOCATION_ACTION
+IO_ALLOCATION_ACTION
+IO_CD_ROM_INCREMENT
+IO_COMPLETION_CONTEXT
+IO_CSQ
+IO_CSQ_IRP_CONTEXT
+IO_DISK_INCREMENT
+IO_ERROR_LOG_PACKET
+IO_KEYBOARD_INCREMENT
+IO_MAILSLOT_INCREMENT
+IO_MOUSE_INCREMENT
+IO_NAMED_PIPE_INCREMENT
+IO_NETWORK_INCREMENT
+IO_NOTIFICATION_EVENT_CATEGORY
+IO_NOTIFICATION_EVENT_CATEGORY
+IO_NO_INCREMENT
+IO_PARALLEL_INCREMENT
+IO_REMOVE_LOCK
+IO_REMOVE_LOCK_COMMON_BLOCK
+IO_REMOVE_LOCK_DBG_BLOCK
+IO_RESOURCE_ALTERNATIVE
+IO_RESOURCE_DEFAULT
+IO_RESOURCE_DESCRIPTOR
+IO_RESOURCE_DESCRIPTOR
+IO_RESOURCE_DESCRIPTOR.Option
+IO_RESOURCE_LIST
+IO_RESOURCE_PREFERRED
+IO_RESOURCE_REQUIREMENTS_LIST
+IO_SECURITY_CONTEXT
+IO_SERIAL_INCREMENT
+IO_SOUND_INCREMENT
+IO_STACK_LOCATION
+IO_STACK_LOCATION.Control
+IO_STATUS_BLOCK
+IO_VIDEO_INCREMENT
+IPI_LEVEL
+IRP_MJ_CLEANUP
+IRP_MJ_CLOSE
+IRP_MJ_CREATE
+IRP_MJ_CREATE_MAILSLOT
+IRP_MJ_CREATE_NAMED_PIPE
+IRP_MJ_DEVICE_CHANGE
+IRP_MJ_DEVICE_CONTROL
+IRP_MJ_DIRECTORY_CONTROL
+IRP_MJ_FILE_SYSTEM_CONTROL
+IRP_MJ_FLUSH_BUFFERS
+IRP_MJ_INTERNAL_DEVICE_CONTROL
+IRP_MJ_LOCK_CONTROL
+IRP_MJ_MAXIMUM_FUNCTION
+IRP_MJ_PNP
+IRP_MJ_PNP_POWER
+IRP_MJ_POWER
+IRP_MJ_QUERY_EA
+IRP_MJ_QUERY_INFORMATION
+IRP_MJ_QUERY_QUOTA
+IRP_MJ_QUERY_SECURITY
+IRP_MJ_QUERY_VOLUME_INFORMATION
+IRP_MJ_READ
+IRP_MJ_SCSI
+IRP_MJ_SET_EA
+IRP_MJ_SET_INFORMATION
+IRP_MJ_SET_QUOTA
+IRP_MJ_SET_SECURITY
+IRP_MJ_SET_VOLUME_INFORMATION
+IRP_MJ_SHUTDOWN
+IRP_MJ_SYSTEM_CONTROL
+IRP_MJ_WRITE
+IRP_MN_CANCEL_REMOVE_DEVICE
+IRP_MN_CANCEL_STOP_DEVICE
+IRP_MN_CHANGE_SINGLE_INSTANCE
+IRP_MN_CHANGE_SINGLE_ITEM
+IRP_MN_COMPLETE
+IRP_MN_COMPLETE_MDL
+IRP_MN_COMPLETE_MDL_DPC
+IRP_MN_COMPRESSED
+IRP_MN_DEVICE_USAGE_NOTIFICATION
+IRP_MN_DISABLE_COLLECTION
+IRP_MN_DISABLE_EVENTS
+IRP_MN_DPC
+IRP_MN_EJECT
+IRP_MN_ENABLE_COLLECTION
+IRP_MN_ENABLE_EVENTS
+IRP_MN_EXECUTE_METHOD
+IRP_MN_FILTER_RESOURCE_REQUIREMENTS
+IRP_MN_KERNEL_CALL
+IRP_MN_LOAD_FILE_SYSTEM
+IRP_MN_LOCK
+IRP_MN_MDL
+IRP_MN_MDL_DPC
+IRP_MN_MOUNT_VOLUME
+IRP_MN_NORMAL
+IRP_MN_NOTIFY_CHANGE_DIRECTORY
+IRP_MN_POWER_SEQUENCE
+IRP_MN_QUERY_ALL_DATA
+IRP_MN_QUERY_BUS_INFORMATION
+IRP_MN_QUERY_CAPABILITIES
+IRP_MN_QUERY_DEVICE_RELATIONS
+IRP_MN_QUERY_DEVICE_TEXT
+IRP_MN_QUERY_DIRECTORY
+IRP_MN_QUERY_ID
+IRP_MN_QUERY_INTERFACE
+IRP_MN_QUERY_LEGACY_BUS_INFORMATION
+IRP_MN_QUERY_PNP_DEVICE_STATE
+IRP_MN_QUERY_POWER
+IRP_MN_QUERY_REMOVE_DEVICE
+IRP_MN_QUERY_RESOURCES
+IRP_MN_QUERY_RESOURCE_REQUIREMENTS
+IRP_MN_QUERY_SINGLE_INSTANCE
+IRP_MN_QUERY_STOP_DEVICE
+IRP_MN_READ_CONFIG
+IRP_MN_REGINFO
+IRP_MN_REGINFO_EX
+IRP_MN_REMOVE_DEVICE
+IRP_MN_SCSI_CLASS
+IRP_MN_SET_LOCK
+IRP_MN_SET_POWER
+IRP_MN_START_DEVICE
+IRP_MN_STOP_DEVICE
+IRP_MN_SURPRISE_REMOVAL
+IRP_MN_TRACK_LINK
+IRP_MN_UNLOCK_ALL
+IRP_MN_UNLOCK_ALL_BY_KEY
+IRP_MN_UNLOCK_SINGLE
+IRP_MN_USER_FS_REQUEST
+IRP_MN_VERIFY_VOLUME
+IRP_MN_WAIT_WAKE
+IRP_MN_WRITE_CONFIG
+KBUGCHECK_BUFFER_DUMP_STATE
+KBUGCHECK_CALLBACK_RECORD
+KDEVICE_QUEUE
+KDEVICE_QUEUE_ENTRY
+KDPC_DATA
+KDPC_IMPORTANCE
+KDPC_IMPORTANCE
+KD_DEBUGGER_ENABLED
+KD_DEBUGGER_NOT_PRESENT
+KEYBOARD_ALT_KEY_DOWN
+KEYBOARD_CAPS_LOCK_ON
+KEYBOARD_CTRL_KEY_DOWN
+KEYBOARD_INSERT_ON
+KEYBOARD_LEFT_SHIFT_DOWN
+KEYBOARD_NUM_LOCK_ON
+KEYBOARD_RIGHT_SHIFT_DOWN
+KEYBOARD_SCROLL_LOCK_ON
+KEY_BASIC_INFORMATION
+KEY_FULL_INFORMATION
+KEY_INFORMATION_CLASS
+KEY_INFORMATION_CLASS
+KEY_NODE_INFORMATION
+KEY_VALUE_BASIC_INFORMATION
+KEY_VALUE_ENTRY
+KEY_VALUE_FULL_INFORMATION
+KEY_VALUE_INFORMATION_CLASS
+KEY_VALUE_INFORMATION_CLASS
+KEY_VALUE_PARTIAL_INFORMATION
+KEY_VALUE_PARTIAL_INFORMATION_ALIGN64
+KEY_VALUE_Xxx.Type
+KFLOATING_SAVE
+KINTERRUPT_MODE
+KINTERRUPT_MODE
+KI_USER_SHARED_DATA
+KLOCK_QUEUE_HANDLE
+KPCR_TIB
+KPROCESSOR_MODE
+KPROFILE_SOURCE
+KSPIN_LOCK_QUEUE
+KSPIN_LOCK_QUEUE_NUMBER
+KWAIT_BLOCK
+KWAIT_REASON
+KWAIT_REASON
+LARGE_INTEGER
+LOCK_OPERATION
+LOCK_OPERATION
+LOCK_QUEUE_OWNER
+LOCK_QUEUE_WAIT
+LOW_LEVEL
+LOW_PRIORITY
+LOW_REALTIME_PRIORITY
+MAXIMUM_PRIORITY
+MAXIMUM_PROCESSORS
+MAXIMUM_VOLUME_LABEL_LENGTH
+MAXIMUM_WAIT_OBJECTS
+MDL_ALLOCATED_FIXED_SIZE
+MDL_ALLOCATED_MUST_SUCCEED
+MDL_FREE_EXTRA_PTES
+MDL_IO_PAGE_READ
+MDL_IO_SPACE
+MDL_MAPPED_TO_SYSTEM_VA
+MDL_MAPPING_CAN_FAIL
+MDL_MAPPING_FLAGS
+MDL_NETWORK_HEADER
+MDL_PAGES_LOCKED
+MDL_PARENT_MAPPED_SYSTEM_VA
+MDL_PARTIAL
+MDL_PARTIAL_HAS_BEEN_MAPPED
+MDL_SOURCE_IS_NONPAGED_POOL
+MDL_SOURCE_IS_NONPAGED_POOL
+MDL_WRITE_OPERATION
+MEMORY_CACHING_TYPE
+MEMORY_CACHING_TYPE
+MEMORY_CACHING_TYPE_ORIG
+METHOD_BUFFERED
+METHOD_IN_DIRECT
+METHOD_NEITHER
+METHOD_OUT_DIRECT
+MMFLUSH_TYPE
+MMFLUSH_TYPE
+MM_HIGHEST_USER_ADDRESS
+MM_LOWEST_SYSTEM_ADDRESS
+MM_LOWEST_USER_ADDRESS
+MM_PAGE_PRIORITY
+MM_PAGE_PRIORITY
+MM_SYSTEM_RANGE_START
+MM_SYSTEM_SIZE
+MM_USER_PROBE_ADDRESS
+MajorFunction[IRP_MJ_MAXIMUM_FUNCTION
+NPAGED_LOOKASIDE_LIST
+OBJECT_HANDLE_INFORMATION
+OBJECT_NAME_INFORMATION
+OWNER_ENTRY
+PACCESS_MASK
+PACCESS_STATE
+PAGED_LOOKASIDE_LIST
+PAGE_SHIFT
+PAGE_SIZE
+PALLOCATE_FUNCTION
+PANSI_STRING
+PARBITER_CONFLICT_INFO
+PARTITION_INFORMATION_MBR
+PARTITION_STYLE
+PASSIVE_LEVEL
+PCALLBACK_FUNCTION
+PCALLBACK_OBJECT
+PCI_BRIDGE_TYPE
+PCI_CARDBUS_BRIDGE_TYPE
+PCI_COMMON_CONFIG
+PCI_COMMON_CONFIG.Command
+PCI_COMMON_CONFIG.HeaderType
+PCI_COMMON_CONFIG.Status
+PCI_DEVICE_TYPE
+PCI_ENABLE_BUS_MASTER
+PCI_ENABLE_FAST_BACK_TO_BACK
+PCI_ENABLE_IO_SPACE
+PCI_ENABLE_MEMORY_SPACE
+PCI_ENABLE_PARITY
+PCI_ENABLE_SERR
+PCI_ENABLE_SPECIAL_CYCLES
+PCI_ENABLE_VGA_COMPATIBLE_PALETTE
+PCI_ENABLE_WAIT_CYCLE
+PCI_ENABLE_WRITE_AND_INVALIDATE
+PCI_MULTIFUNCTION
+PCI_SLOT_NUMBER
+PCI_STATUS_66MHZ_CAPABLE
+PCI_STATUS_CAPABILITIES_LIST
+PCI_STATUS_DATA_PARITY_DETECTED
+PCI_STATUS_DETECTED_PARITY_ERROR
+PCI_STATUS_DEVSEL
+PCI_STATUS_FAST_BACK_TO_BACK
+PCI_STATUS_RECEIVED_MASTER_ABORT
+PCI_STATUS_RECEIVED_TARGET_ABORT
+PCI_STATUS_SIGNALED_SYSTEM_ERROR
+PCI_STATUS_SIGNALED_TARGET_ABORT
+PCI_STATUS_UDF_SUPPORTED
+PCI_TYPE0_ADDRESSES
+PCI_TYPE1_ADDRESSES
+PCI_TYPE2_ADDRESSES
+PCLIENT_ID
+PCM_PARTIAL_RESOURCE_DESCRIPTOR
+PCM_PARTIAL_RESOURCE_LIST
+PCM_RESOURCE_LIST
+PCONFIGURATION_TYPE
+PCONTROLLER_OBJECT
+PCREATE_DISK
+PCREATE_PROCESS_NOTIFY_ROUTINE
+PCREATE_THREAD_NOTIFY_ROUTINE
+PCR_MAJOR_VERSION
+PCR_MINOR_VERSION
+PCUNICODE_STRING
+PDCAP_D0_SUPPORTED
+PDCAP_D1_SUPPORTED
+PDCAP_D2_SUPPORTED
+PDCAP_D3_SUPPORTED
+PDCAP_WAKE_FROM_D0_SUPPORTED
+PDCAP_WAKE_FROM_D1_SUPPORTED
+PDCAP_WAKE_FROM_D2_SUPPORTED
+PDCAP_WAKE_FROM_D3_SUPPORTED
+PDCAP_WARM_EJECT_SUPPORTED
+PDEVICE_CHANGE_COMPLETE_CALLBACK
+PDEVICE_DESCRIPTION
+PDEVICE_OBJECT
+PDISK_SIGNATURE
+PDMA_ADAPTER
+PDRIVER_CANCEL
+PDRIVER_CONTROL
+PDRIVER_LIST_CONTROL
+PDRIVER_NOTIFICATION_CALLBACK_ROUTINE
+PDRIVER_OBJECT
+PDRIVER_REINITIALIZE
+PD_Capabilities
+PD_D1Latency
+PD_D2Latency
+PD_D3Latency
+PD_MostRecentPowerState
+PD_PowerStateMapping[PowerSystemMaximum]
+PD_Size
+PEX_CALLBACK_FUNCTION
+PFAST_MUTEX
+PFILE_BASIC_INFORMATION
+PFILE_NETWORK_OPEN_INFORMATION
+PFILE_OBJECT
+PFILE_STANDARD_INFORMATION
+PFREE_FUNCTION
+PGENERIC_MAPPING
+PHYSICAL_ADDRESS
+PHYSICAL_MEMORY_RANGE
+PIMAGE_INFO
+PINTERFACE_TYPE
+PIO_APC_ROUTINE
+PIO_COMPLETION_ROUTINE
+PIO_CSQ
+PIO_CSQ_ACQUIRE_LOCK
+PIO_CSQ_COMPLETE_CANCELED_IRP
+PIO_CSQ_INSERT_IRP
+PIO_CSQ_IRP_CONTEXT
+PIO_CSQ_PEEK_NEXT_IRP
+PIO_CSQ_RELEASE_LOCK
+PIO_CSQ_REMOVE_IRP
+PIO_QUERY_DEVICE_ROUTINE
+PIO_REMOVE_LOCK
+PIO_RESOURCE_DESCRIPTOR
+PIO_RESOURCE_REQUIREMENTS_LIST
+PIO_STACK_LOCATION
+PIO_STATUS_BLOCK
+PIO_TIMER_ROUTINE
+PIO_WORKITEM
+PIO_WORKITEM_ROUTINE
+PKBUGCHECK_CALLBACK_RECORD
+PKBUGCHECK_CALLBACK_ROUTINE
+PKDEFERRED_ROUTINE
+PKDEVICE_QUEUE
+PKDEVICE_QUEUE_ENTRY
+PKEY_VALUE_FULL_INFORMATION
+PKFLOATING_SAVE
+PKKERNEL_ROUTINE
+PKLOCK_QUEUE_HANDLE
+PKNORMAL_ROUTINE
+PKRUNDOWN_ROUTINE
+PKSERVICE_ROUTINE
+PKSPIN_LOCK
+PKSTART_ROUTINE
+PKSYNCHRONIZE_ROUTINE
+PKWAIT_BLOCK
+PLARGE_INTEGER
+PLIST_ENTRY
+PLOAD_IMAGE_NOTIFY_ROUTINE
+PLUGPLAY_NOTIFICATION_HEADER
+PLUGPLAY_REGKEY_CURRENT_HWPROFILE
+PLUGPLAY_REGKEY_DEVICE
+PLUGPLAY_REGKEY_DRIVER
+PNPAGED_LOOKASIDE_LIST
+PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES
+PNP_BUS_INFORMATION
+PNP_DEVICE_DISABLED
+PNP_DEVICE_DONT_DISPLAY_IN_UI
+PNP_DEVICE_FAILED
+PNP_DEVICE_NOT_DISABLEABLE
+PNP_DEVICE_REMOVED
+PNP_DEVICE_RESOURCE_REQUIREMENTS_CHANGED
+PNP_DEVICE_STATE
+POBJECT_ATTRIBUTES
+POBJECT_HANDLE_INFORMATION
+POBJECT_TYPE
+POINTER_ALIGNMENT
+POOL_TAGGING
+POOL_TYPE
+POOL_TYPE
+POWER_LEVEL
+POWER_SEQUENCE
+POWER_STATE
+POWER_STATE
+POWER_STATE_TYPE
+POWER_STATE_TYPE
+PPAGED_LOOKASIDE_LIST
+PPFN_NUMBER
+PPHYSICAL_ADDRESS
+PPRIVILEGE_SET
+PP_LOOKASIDE_LIST
+PREQUEST_POWER_COMPLETE
+PRIVILEGE_SET.Control
+PRIVILEGE_SET_ALL_NECESSARY
+PRKDEVICE_QUEUE_ENTRY
+PROFILE_LEVEL
+PROTECTED_POOL
+PRTL_BITMAP
+PRTL_BITMAP_RUN
+PRTL_CONFLICT_RANGE_CALLBACK
+PRTL_OSVERSIONINFOEXW
+PRTL_QUERY_REGISTRY_TABLE
+PRTL_RANGE
+PRTL_RANGE_LIST
+PRTL_RANGE_LIST_ITERATOR
+PSCATTER_GATHER_LIST
+PSECTION_OBJECT
+PSECTION_OBJECT_POINTERS
+PSECURITY_DESCRIPTOR
+PSECURITY_SUBJECT_CONTEXT
+PSHARE_ACCESS
+PSINGLE_LIST_ENTRY
+PSIZE_T
+PSLIST_ENTRY
+PSLIST_HEADER
+PSYSCTL_IRP_DISPOSITION
+PTIMER_APC_ROUTINE
+PTIME_FIELDS
+PTIME_UPDATE_NOTIFY_ROUTINE
+PULONG_PTR
+PUNICODE_STRING
+PWMILIB_CONTEXT
+Privilege[INITIAL_PRIVILEGE_COUNT]
+REG_BINARY
+REG_DWORD
+REG_DWORD_BIG_ENDIAN
+REG_DWORD_LITTLE_ENDIAN
+REG_EXPAND_SZ
+REG_FULL_RESOURCE_DESCRIPTOR
+REG_LINK
+REG_MULTI_SZ
+REG_NONE
+REG_QWORD
+REG_QWORD_LITTLE_ENDIAN
+REG_RESOURCE_LIST
+REG_RESOURCE_REQUIREMENTS_LIST
+REG_SZ
+RESOURCE_HASH_TABLE_SIZE
+RESOURCE_TRANSLATION_DIRECTION
+RESOURCE_TRANSLATION_DIRECTION
+RESTRICTED_POINTER
+RESULT_NEGATIVE
+RESULT_POSITIVE
+RESULT_ZERO
+RTL_BITMAP
+RTL_BITMAP_RUN
+RTL_OSVERSIONINFOEXW
+RTL_OSVERSIONINFOW
+RTL_QUERY_REGISTRY_DELETE
+RTL_QUERY_REGISTRY_DIRECT
+RTL_QUERY_REGISTRY_NOEXPAND
+RTL_QUERY_REGISTRY_NOVALUE
+RTL_QUERY_REGISTRY_REQUIRED
+RTL_QUERY_REGISTRY_SUBKEY
+RTL_QUERY_REGISTRY_TABLE
+RTL_QUERY_REGISTRY_TABLE.Flags
+RTL_QUERY_REGISTRY_TOPKEY
+RTL_RANGE
+RTL_RANGE_CONFLICT
+RTL_RANGE_LIST
+RTL_RANGE_LIST_ADD_IF_CONFLICT
+RTL_RANGE_LIST_ADD_SHARED
+RTL_RANGE_LIST_ITERATOR
+RTL_RANGE_LIST_MERGE_IF_CONFLICT
+RTL_RANGE_LIST_NULL_CONFLICT_OK
+RTL_RANGE_LIST_SHARED_OK
+RTL_RANGE_SHARED
+RTL_REGISTRY_ABSOLUTE
+RTL_REGISTRY_CONTROL
+RTL_REGISTRY_DEVICEMAP
+RTL_REGISTRY_HANDLE
+RTL_REGISTRY_OPTIONAL
+RTL_REGISTRY_SERVICES
+RTL_REGISTRY_USER
+RTL_REGISTRY_WINDOWS_NT
+Range[PCI_TYPE2_ADDRESSES
+SCATTER_GATHER_ELEMENT
+SCATTER_GATHER_LIST
+SECTION_INHERIT
+SECTION_OBJECT_POINTERS
+SECURITY_INFORMATION
+SECURITY_OPERATION_CODE
+SECURITY_SUBJECT_CONTEXT
+SEC_NO_CHANGE
+SEMAPHORE_INCREMENT
+SHARE_ACCESS
+SIZE_T
+SL_ALLOW_RAW_MOUNT
+SL_CASE_SENSITIVE
+SL_EXCLUSIVE_LOCK
+SL_FAIL_IMMEDIATELY
+SL_FORCE_ACCESS_CHECK
+SL_FT_SEQUENTIAL_WRITE
+SL_INDEX_SPECIFIED
+SL_INVOKE_ON_CANCEL
+SL_INVOKE_ON_ERROR
+SL_INVOKE_ON_SUCCESS
+SL_KEY_SPECIFIED
+SL_OPEN_PAGING_FILE
+SL_OPEN_TARGET_DIRECTORY
+SL_OVERRIDE_VERIFY_VOLUME
+SL_PENDING_RETURNED
+SL_RESTART_SCAN
+SL_RETURN_SINGLE_ENTRY
+SL_WATCH_TREE
+SL_WRITE_THROUGH
+SSDT_ENTRY
+SUITE_TYPE
+SUITE_TYPE
+SYMBOLIC_LINK_ALL_ACCESS
+SYMBOLIC_LINK_QUERY
+SYNCH_LEVEL
+TARGET_DEVICE_CUSTOM_NOTIFICATION
+TARGET_DEVICE_REMOVAL_NOTIFICATION
+TIMER_TYPE
+TIMER_TYPE
+TIME_FIELDS
+TRACE_INFORMATION_CLASS
+TRACE_INFORMATION_CLASS
+TRANSLATOR_INTERFACE
+ULONG_PTR
+VER_AND
+VER_BUILDNUMBER
+VER_CONDITION_MASK
+VER_EQUAL
+VER_GREATER
+VER_GREATER_EQUAL
+VER_LESS
+VER_LESS_EQUAL
+VER_MAJORVERSION
+VER_MINORVERSION
+VER_NUM_BITS_PER_CONDITION_MASK
+VER_OR
+VER_PLATFORMID
+VER_PRODUCT_TYPE
+VER_SERVICEPACKMAJOR
+VER_SERVICEPACKMINOR
+VER_SUITENAME
+VPB_LOCKED
+VPB_MOUNTED
+VPB_PERSISTENT
+VPB_RAW_MOUNT
+VPB_REMOVE_PENDING
+VolumeLabel[MAXIMUM_VOLUME_LABEL_LENGTH
+WAIT_CONTEXT_BLOCK
+WAIT_TYPE
+WMI_NOTIFICATION_CALLBACK
+WORK_QUEUE_ITEM
+WORK_QUEUE_TYPE
+WORK_QUEUE_TYPE
+DEVICE_DESCRIPTION
+DEVICE_OBJECT
+DEVICE_OBJECT
+DEVOBJ_EXTENSION
+DMA_ADAPTER
+DRIVER_CONTROL
+DRIVER_OBJECT
+DRIVER_OBJECT
+EPROCESS
+FILE_OBJECT
+FILE_OBJECT
+FirstEntry
+GENERAL_LOOKASIDE
+IO_CSQ
+IO_CSQ
+IO_STACK_LOCATION
+IO_STATUS_BLOCK
+IRP
+IRP
+IrpSp
+IrpSp
+KAPC
+KDPC
+KDPC
+KPCR
+KPCR
+KPRCB
+KPRCB
+KSPIN_LOCK_QUEUE
+KTHREAD
+KTSS
+KTSS
+KWAIT_BLOCK
+ListEntry
+MDL
+MDL
+NT_TIB
+NextIrpSp
+PCI_HEADER_TYPE_0
+PCI_HEADER_TYPE_1
+PCI_HEADER_TYPE_2
+SCATTER_GATHER_LIST
+SCSI_REQUEST_BLOCK
+SECTION_OBJECT
+SET_PARTITION_INFORMATION_EX
+X86_
+va_list
+TIMER_TYPE
+ULONG
+VOID