'전체'에 해당되는 글 85건
- 2010.09.08 The Computer Language Benchmarks
- 2010.05.06 HowTo: Automount NTFS Drives
- 2010.04.16 ubuntu 네트웍 2개의 NIC카드의 라우팅 대역을 분리
- 2009.12.24 또 다시 새로운 시작
- 2009.11.30 vim 에서 dostounix효과
- 2009.11.30 클라우드 컴퓨팅 관련자료
- 2009.09.14 PEB(Process Environment Block)
- 2009.08.19 dladdr, dlclose, dlerror, dlopen, dlsym, dlvsym (1)
- 2009.08.18 현재 Thread의 TEB를 얻는 방법
- 2009.08.10 TEB(Thread Environment Block)
HowTo: Automount NTFS Drives

I know what it's like - I still dual boot too


NB: Please note that there are some images attached just for you

-------------------------------------------------------------------------
Fire up a terminal, to do this click Applications > Accessories > Terminal
Then type (or copy/paste) the following - 1 line at a time
sudo aptitude update sudo aptitude install ntfs-config

Next, make sure you have NO drives mounted (they'll usually appear on your desktop). And then run the program from Applications > System Tools
Note: In Ubuntu 9.04 (Jaunty) it appears that the configuration tool has moved to System > Administration.
Enter your password when prompted - and then choose the drives that you want to be automounted. Click Apply.
Now simply make sure that "Enable Write Support for Internal Drives" and click OK.
Enjoy your automounted NTFS Drives

Note: If you want to undo this for whatever reason, StolenPie posted a walkthrough later in the thread

Last edited by Joeb454; November 2nd, 2009 at 04:52 PM.. Reason: Added how to undo
'관심분야 > 리눅스 및 시스템' 카테고리의 다른 글
HowTo: Automount NTFS Drives (0) | 2010.05.06 |
---|---|
ubuntu 네트웍 2개의 NIC카드의 라우팅 대역을 분리 (0) | 2010.04.16 |
HPjconfig (0) | 2008.11.19 |
DB2 UDB의 Locking 매커니즘과 동시성 제어 (0) | 2008.10.27 |
Linux NFS 설정 방법 (0) | 2008.10.22 |
볼륨 관련등의 테스트를 위한 볼륨 구성(onLinux) (0) | 2008.10.22 |
ubuntu 네트웍 2개의 NIC카드의 라우팅 대역을 분리
apt-get update
apt-get upgrade
apt-get dist-upgrade
gtf 1024 768 60
/etc/X11/xorg.conf
APACHE
http://www.howtoforge.com/how-to-set-up-apache2-with-mod_fcgid-and-php5-on-ubuntu-8.10
NETWORK
(ip) route flush all
(ip) route add -net x.x.x.x/yy gw z.z.z.z dev eth0
(ip) route del default gw x.x.x.x
###
- 부팅시에 정적으로 설정이 필요한 경우에는
1) /etc/rc.local 에 static route 정보를 추가함
2) /etc/network/interface에서 gateway 정보를 제거함(static route의 경우)
참조:
http://www.ubuntugeek.com/howto-add-permanent-static-routes-in-ubuntu.html
http://askubuntu.com/questions/1245/add-default-route-on-boot
참조: http://linux-ip.net/html/linux-ip.html
'관심분야 > 리눅스 및 시스템' 카테고리의 다른 글
HowTo: Automount NTFS Drives (0) | 2010.05.06 |
---|---|
ubuntu 네트웍 2개의 NIC카드의 라우팅 대역을 분리 (0) | 2010.04.16 |
HPjconfig (0) | 2008.11.19 |
DB2 UDB의 Locking 매커니즘과 동시성 제어 (0) | 2008.10.27 |
Linux NFS 설정 방법 (0) | 2008.10.22 |
볼륨 관련등의 테스트를 위한 볼륨 구성(onLinux) (0) | 2008.10.22 |
또 다시 새로운 시작
면담을 통해서 저에 대한 사람들의 반응을 봤는데요..
그 의견들을 통해서...
내가 그동안 열심히 살았구나 하는 생각을 하게되었습니다.
이것이 저의 재산이 되는 것 같습니다.
새로운 곳에서는 개발조직을 이끌게 되었습니다.
앞으로 더욱 좋은 일만 있기를 바라면서..
주말연휴를 즐겨야 하겠습니다.
내년 이맘때는 어떤 생각을 하고 있을까.. 궁금해 집니다.
'회사생활' 카테고리의 다른 글
또 다시 새로운 시작 (0) | 2009.12.24 |
---|---|
짐정리 (1) | 2009.07.20 |
새로운 도전 (0) | 2009.07.17 |
선택 (0) | 2009.07.16 |
좋은 회사의 조건 (0) | 2008.04.16 |
마이리슨 서비스 폐지 (0) | 2008.01.10 |
vim 에서 dostounix효과
:%s/\r//g
이거죠..
나머지는 Vim의 tip페이지에 자주사용되는 case를 참고하세요..
참고: http://vim.wikia.com/wiki/Change_end-of-line_format_for_dos-mac-unix
'관심분야 > 팁' 카테고리의 다른 글
vim 에서 dostounix효과 (0) | 2009.11.30 |
---|
클라우드 컴퓨팅 관련자료
제가 알고있는 자료를 정리해 봅니다. 공부하시는데 도움이 되시길..
그 외의 많은 자료는 위키피디아에 찾아보시면 많이 있습니다.
보통은 Hadoop과 HDFS관련 자료를 가지고 공부를 하게되지요..
1. 클라우드 컴퓨팅 개념관련
- 클라우드 컴퓨팅 개괄 : 위키피디아
- Architectural manifesto: An introduction to the possibilities (and risks) of cloud computing
- Gruman, Galen (2008-04-07). "What cloud computing really means". InfoWorld.
- What's In A Name? Utility vs. Cloud vs Grid
- Cloud Computing: The Evolution of Software-as-a-Service
- Guide To Cloud Computing
2. 알고리즘관련 (MapReduce, GFS, Hadoop, HDFS)
- MapReduce : 위키피디아
- Apache Hadoop 웹 사이트 : MapReduce 기본개념을 이해할 수 있음
- Distributed computing with Linux and Hadoop
- Cloud Computing with Linux
- Apache HDFS 웹사이트: HDFS 관련 API와 개념을 파악할 수 있음(GFS에 대비되는 개념)
- GFS: Google File System 위키피디아 설명
- MapReduce 논문: Google 의 MapReduce 관련 논문
- Google File System 논문
- HDFS설명
3. 커뮤니티 관련
- Hadoop 한국 유저그룹
- http://groups.google.co.kr/group/hadoop-community/
- YDN Hadoop
- Yahoo Developers Network Hadoop Blg
- Yahoo Korea Developers Network Blog
- http://cloudera.com/
4. 세미나 및 자료
- [동영상] Hadoop 유저그룹 세미나 – Terapot: Hadoop과 Lucene 기반의 대용량 이메일 아카이빙
- VMWare image for hadoop is available (by Google) at http://dl.google.com/edutools/hadoop-vmware.zip
- Hands-on Hadoop for cluster computing
- Map Reduce for Machine Learnning: Map-Reduce for Machine Learning on Multicore
- Hadoop for Machine Learning:Apache Mahout
- Machine learning in bioinformatics
- Hadoop Sorts a Petabyte in 16.25 Hours and a Terabyte in 62 Seconds
- Cloudera의 Hadoop 교육을 위한 가상머신(VMWare)
- Cloudera's Basic Hadoop Training (online)
- Dewitt과 Stonebreaker의 Google MapReduce에 대한 이슈제기
5. 도서
- Hadoop: The Definitive Guide
'관심분야 > 분산컴퓨팅' 카테고리의 다른 글
클라우드 컴퓨팅 관련자료 (0) | 2009.11.30 |
---|---|
분산 처리의 개념 및 종류, 분산 시스템 (2) | 2008.11.06 |
XA spec (X/Open DTP Architecture) (0) | 2008.10.20 |
분산컴퓨팅에서의 오류(Fallacies of Distributed Computing) (0) | 2008.09.26 |
XTP(Extreme Transaction Processing) (0) | 2008.09.26 |
[Hadoop]Hadoop Korean User 모임 (0) | 2007.05.04 |
PEB(Process Environment Block)
typedef struct _PEB { BOOLEAN InheritedAddressSpace; /* 00 */ BOOLEAN ReadImageFileExecOptions; /* 01 */ BOOLEAN BeingDebugged; /* 02 */ BOOLEAN SpareBool; /* 03 */ HANDLE Mutant; /* 04 */ HMODULE ImageBaseAddress; /* 08 */ PPEB_LDR_DATA LdrData; /* 0c */ RTL_USER_PROCESS_PARAMETERS *ProcessParameters; /* 10 */ PVOID SubSystemData; /* 14 */ HANDLE ProcessHeap; /* 18 */ PRTL_CRITICAL_SECTION FastPebLock; /* 1c */ PVOID /*PPEBLOCKROUTINE*/ FastPebLockRoutine; /* 20 */ PVOID /*PPEBLOCKROUTINE*/ FastPebUnlockRoutine; /* 24 */ ULONG EnvironmentUpdateCount; /* 28 */ PVOID KernelCallbackTable; /* 2c */ PVOID EventLogSection; /* 30 */ PVOID EventLog; /* 34 */ PVOID /*PPEB_FREE_BLOCK*/ FreeList; /* 38 */ ULONG TlsExpansionCounter; /* 3c */ PRTL_BITMAP TlsBitmap; /* 40 */ ULONG TlsBitmapBits[2]; /* 44 */ PVOID ReadOnlySharedMemoryBase; /* 4c */ PVOID ReadOnlySharedMemoryHeap; /* 50 */ PVOID *ReadOnlyStaticServerData; /* 54 */ PVOID AnsiCodePageData; /* 58 */ PVOID OemCodePageData; /* 5c */ PVOID UnicodeCaseTableData; /* 60 */ ULONG NumberOfProcessors; /* 64 */ ULONG NtGlobalFlag; /* 68 */ BYTE Spare2[4]; /* 6c */ LARGE_INTEGER CriticalSectionTimeout; /* 70 */ ULONG HeapSegmentReserve; /* 78 */ ULONG HeapSegmentCommit; /* 7c */ ULONG HeapDeCommitTotalFreeThreshold; /* 80 */ ULONG HeapDeCommitFreeBlockThreshold; /* 84 */ ULONG NumberOfHeaps; /* 88 */ ULONG MaximumNumberOfHeaps; /* 8c */ PVOID *ProcessHeaps; /* 90 */ PVOID GdiSharedHandleTable; /* 94 */ PVOID ProcessStarterHelper; /* 98 */ PVOID GdiDCAttributeList; /* 9c */ PVOID LoaderLock; /* a0 */ ULONG OSMajorVersion; /* a4 */ ULONG OSMinorVersion; /* a8 */ ULONG OSBuildNumber; /* ac */ ULONG OSPlatformId; /* b0 */ ULONG ImageSubSystem; /* b4 */ ULONG ImageSubSystemMajorVersion; /* b8 */ ULONG ImageSubSystemMinorVersion; /* bc */ ULONG ImageProcessAffinityMask; /* c0 */ ULONG GdiHandleBuffer[34]; /* c4 */ ULONG PostProcessInitRoutine; /* 14c */ PRTL_BITMAP TlsExpansionBitmap; /* 150 */ ULONG TlsExpansionBitmapBits[32]; /* 154 */ ULONG SessionId; /* 1d4 */ ULARGE_INTEGER AppCompatFlags; /* 1d8 */ ULARGE_INTEGER AppCompatFlagsUser; /* 1e0 */ PVOID ShimData; /* 1e8 */ PVOID AppCompatInfo; /* 1ec */ UNICODE_STRING CSDVersion; /* 1f0 */ PVOID ActivationContextData; /* 1f8 */ PVOID ProcessAssemblyStorageMap; /* 1fc */ PVOID SystemDefaultActivationData; /* 200 */ PVOID SystemAssemblyStorageMap; /* 204 */ ULONG MinimumStackCommit; /* 208 */ PVOID *FlsCallback; /* 20c */ LIST_ENTRY FlsListHead; /* 210 */ PRTL_BITMAP FlsBitmap; /* 218 */ ULONG FlsBitmapBits[4]; /* 21c */ } PEB, *PPEB;
'언어 > C/C++' 카테고리의 다른 글
PEB(Process Environment Block) (0) | 2009.09.14 |
---|---|
dladdr, dlclose, dlerror, dlopen, dlsym, dlvsym (1) | 2009.08.19 |
현재 Thread의 TEB를 얻는 방법 (0) | 2009.08.18 |
TEB(Thread Environment Block) (0) | 2009.08.10 |
[코드 옵티마이즈]memcpy source optimize (0) | 2007.05.21 |
dladdr, dlclose, dlerror, dlopen, dlsym, dlvsym
dlopen(3) - Linux man page
Name
dladdr, dlclose, dlerror, dlopen, dlsym, dlvsym - programming interface to dynamic linking loaderSynopsis
#include <dlfcn.h>
void *dlopen(const char *filename, int flag); char *dlerror(void); void *dlsym(void *handle, const char *symbol); int dlclose(void *handle);
Description
dlerror
The function dlerror() returns a human readable string describing the most recent error that occurred from dlopen(), dlsym() or dlclose() since the last call to dlerror(). It returns NULL if no errors have occurred since initialization or since it was last called.dlopen
The function dlopen() loads the dynamic library file named by the null-terminated stringfilename and returns an opaque "handle" for the dynamic library. If filename is NULL, then the returned handle is for the main program. If filename contains a slash ("/"), then it is interpreted as a (relative or absolute) pathname. Otherwise, the dynamic linker searches for the library as follows (see ld.so(8) for further details):- o
- (ELF only) If the executable file for the calling program contains a DT_RPATH tag, and does not contain a DT_RUNPATH tag, then the directories listed in the DT_RPATH tag are searched.
- o
- If the environment variable LD_LIBRARY_PATH is defined to contain a colon-separated list of directories, then these are searched. (As a security measure this variable is ignored for set-user-ID and set-group-ID programs.)
- o
- (ELF only) If the executable file for the calling program contains a DT_RUNPATH tag, then the directories listed in that tag are searched.
- o
- The cache file /etc/ld.so.cache (maintained by ldconfig(8)) is checked to see whether it contains an entry for filename.
- o
- The directories /lib and /usr/lib are searched (in that order).
If the library has dependencies on other shared libraries, then these are also automatically loaded by the dynamic linker using the same rules. (This process may occur recursively, if those libraries in turn have dependencies, and so on.)
One of the following two values must be included in flag:
- RTLD_LAZY
- Perform lazy binding. Only resolve symbols as the code that references them is executed. If the symbol is never referenced, then it is never resolved. (Lazy binding is only performed for function references; references to variables are always immediately bound when the library is loaded.)
- RTLD_NOW
- If this value is specified, or the environment variable LD_BIND_NOW is set to a non-empty string, all undefined symbols in the library are resolved before dlopen() returns. If this cannot be done, an error is returned.
Zero of more of the following values may also be ORed in flag:
- RTLD_GLOBAL
- The symbols defined by this library will be made available for symbol resolution of subsequently loaded libraries.
- RTLD_LOCAL
- This is the converse of RTLD_GLOBAL, and the default if neither flag is specified. Symbols defined in this library are not made available to resolve references in subsequently loaded libraries.
- RTLD_NODELETE (since glibc 2.2)
- Do not unload the library during dlclose(). Consequently, the library's static variables are not reinitialised if the library is reloaded with dlopen() at a later time. This flag is not specified in POSIX.1-2001.
- RTLD_NOLOAD (since glibc 2.2)
- Don't load the library. This can be used to test if the library is already resident (dlopen() returns NULL if it is not, or the library's handle if it is resident). This flag can also be used to promote the flags on a library that is already loaded. For example, a library that was previously loaded with RTLD_LOCAL can be re-opened withRTLD_NOLOAD | RTLD_GLOBAL. This flag is not specified in POSIX.1-2001.
- RTLD_DEEPBIND (since glibc 2.3.4)
- Place the lookup scope of the symbols in this library ahead of the global scope. This means that a self-contained library will use its own symbols in preference to global symbols with the same name contained in libraries that have already been loaded. This flag is not specified in POSIX.1-2001.
If filename is a NULL pointer, then the returned handle is for the main program. When given to dlsym(), this handle causes a search for a symbol in the main program, followed by all shared libraries loaded at program startup, and then all shared libraries loaded by dlopen() with the flag RTLD_GLOBAL.
External references in the library are resolved using the libraries in that library's dependency list and any other libraries previously opened with the RTLD_GLOBAL flag. If the executable was linked with the flag "-rdynamic" (or, synonymously, "--export-dynamic"), then the global symbols in the executable will also be used to resolve references in a dynamically loaded library.
If the same library is loaded again with dlopen(), the same file handle is returned. The dl library maintains reference counts for library handles, so a dynamic library is not deallocated until dlclose() has been called on it as many times as dlopen() has succeeded on it. The _init routine, if present, is only called once. But a subsequent call withRTLD_NOW may force symbol resolution for a library earlier loaded with RTLD_LAZY.
If dlopen() fails for any reason, it returns NULL.
dlsym
The function dlsym() takes a "handle" of a dynamic library returned by dlopen() and the null-terminated symbol name, returning the address where that symbol is loaded into memory. If the symbol is not found, in the specified library or any of the libraries that were automatically loaded by dlopen() when that library was loaded, dlsym() returns NULL. (The search performed by dlsym() is breadth first through the dependency tree of these libraries.) Since the value of the symbol could actually be NULL (so that a NULL return from dlsym() need not indicate an error), the correct way to test for an error is to call dlerror() to clear any old error conditions, then call dlsym(), and then call dlerror() again, saving its return value into a variable, and check whether this saved value is not NULL.There are two special pseudo-handles, RTLD_DEFAULT and RTLD_NEXT. The former will find the first occurrence of the desired symbol using the default library search order. The latter will find the next occurrence of a function in the search order after the current library. This allows one to provide a wrapper around a function in another shared library.
dlclose
The function dlclose() decrements the reference count on the dynamic library handle handle. If the reference count drops to zero and no other loaded libraries use symbols in it, then the dynamic library is unloaded.The function dlclose() returns 0 on success, and non-zero on error.
The obsolete symbols _init and _fini
The linker recognizes special symbols _init and _fini. If a dynamic library exports a routine named _init, then that code is executed after the loading, before dlopen() returns. If the dynamic library exports a routine named _fini, then that routine is called just before the library is unloaded. In case you need to avoid linking against the system startup files, this can be done by giving gcc the "-nostartfiles" parameter on the command line.Using these routines, or the gcc -nostartfiles or -nostdlib options, is not recommended. Their use may result in undesired behavior, since the constructor/destructor routines will not be executed (unless special measures are taken).
Instead, libraries should export routines using the __attribute__((constructor)) and __attribute__((destructor)) function attributes. See the gcc info pages for information on these. Constructor routines are executed before dlopen() returns, and destructor routines are executed before dlclose() returns.
GNU Extensions
Glibc adds two functions not described by POSIX, with prototypes#define _GNU_SOURCE#include <dlfcn.h> int dladdr(void *addr, Dl_info *info); void *dlvsym(void *handle, char *symbol, char *version);The function dladdr() takes a function pointer and tries to resolve name and file where it is located. Information is stored in the Dl_info structure:
typedef struct { const char *dli_fname;/* Filename of defining object */ void *dli_fbase; /* Load address of that object */ const char *dli_sname;/* Name of nearest lower symbol */ void *dli_saddr; /* Exact value of nearest symbol */ } Dl_info;dladdr() returns 0 on error, and non-zero on success.
The function dlvsym() does the same as dlsym() but takes a version string as an additional argument.
Example
Load the math library, and print the cosine of 2.0:#include <stdio.h> #include <stdlib.h> #include <dlfcn.h> int main(int argc, char **argv) { void *handle; double (*cosine)(double); char *error; handle = dlopen ("libm.so", RTLD_LAZY); if (!handle) { fprintf (stderr, "%s\n", dlerror()); exit(1); } dlerror(); /* Clear any existing error */ cosine = dlsym(handle, "cos"); if ((error = dlerror()) != NULL) { fprintf (stderr, "%s\n", error); exit(1); } printf ("%f\n", (*cosine)(2.0)); dlclose(handle); return 0; }
If this program were in a file named "foo.c", you would build the program with the following command:
gcc -rdynamic -o foo foo.c -ldl
Libraries exporting _init() and _fini() will want to be compiled as follows, using bar.c as the example name:
gcc -shared -nostartfiles -o bar bar.c
Notes
The symbols RTLD_DEFAULT and RTLD_NEXT are defined by <dlfcn.h> only when _GNU_SOURCE was defined before including it.Since glibc 2.2.3, atexit(3) can be used to register an exit handler that is automatically called when a library is unloaded.
History
The dlopen interface standard comes from SunOS. That system also has dladdr(), but not dlvsym().Conforming to
POSIX.1-2001 describes dlclose(), dlerror(), dlopen(), and dlsym().See Also
ld(1), ldd(1), dl_iterate_phdr(3), ld.so(8), ldconfig(8), ld.so info pages, gcc info pages, ld info pagesReferenced By
backtrace_symbols_fd(3), lftp(1), lvm.conf(5), uselib(2)'언어 > C/C++' 카테고리의 다른 글
PEB(Process Environment Block) (0) | 2009.09.14 |
---|---|
dladdr, dlclose, dlerror, dlopen, dlsym, dlvsym (1) | 2009.08.19 |
현재 Thread의 TEB를 얻는 방법 (0) | 2009.08.18 |
TEB(Thread Environment Block) (0) | 2009.08.10 |
[코드 옵티마이즈]memcpy source optimize (0) | 2007.05.21 |
현재 Thread의 TEB를 얻는 방법
//defined bystatic __inline__ struct _TEB * NtCurrentTeb(void) { struct _TEB *ret; __asm__ __volatile__ ( "mov{l} {%%fs:0x18,%0|%0,%%fs:0x18}\n" : "=r" (ret) : /* no inputs */ ); return ret; }
'언어 > C/C++' 카테고리의 다른 글
PEB(Process Environment Block) (0) | 2009.09.14 |
---|---|
dladdr, dlclose, dlerror, dlopen, dlsym, dlvsym (1) | 2009.08.19 |
현재 Thread의 TEB를 얻는 방법 (0) | 2009.08.18 |
TEB(Thread Environment Block) (0) | 2009.08.10 |
[코드 옵티마이즈]memcpy source optimize (0) | 2007.05.21 |
TEB(Thread Environment Block)
// // Instead of using the Tls fields, use the Win32 TLS APIs // TlsAlloc, TlsGetValue, TlsSetValue, TlsFree // // Instead of using the ReservedForOle field, use the COM API // CoGetContextToken // typedef struct _TEB { union { struct { BYTE Reserved1[1952]; PVOID Reserved2[412]; PVOID TlsSlots[64]; BYTE Reserved3[8]; PVOID Reserved4[26]; PVOID ReservedForOle; // Windows 2000 only PVOID Reserved5[4]; PVOID TlsExpansionSlots; }; struct { NT_TIB Tib; /* 000 */ PVOID EnvironmentPointer; /* 01c */ CLIENT_ID ClientId; /* 020 */ PVOID ActiveRpcHandle; /* 028 */ PVOID ThreadLocalStoragePointer; /* 02c */ PPEB Peb; /* 030 */ ULONG LastErrorValue; /* 034 */ ULONG CountOfOwnedCriticalSections;/* 038 */ PVOID CsrClientThread; /* 03c */ PVOID Win32ThreadInfo; /* 040 */ ULONG Win32ClientInfo[31]; /* 044 used for user32 private data in Wine */ PVOID WOW32Reserved; /* 0c0 */ ULONG CurrentLocale; /* 0c4 */ ULONG FpSoftwareStatusRegister; /* 0c8 */ PVOID SystemReserved1[54]; /* 0cc used for kernel32 private data in Wine */ LONG ExceptionCode; /* 1a4 */ ACTIVATION_CONTEXT_STACK ActivationContextStack; /* 1a8 */ BYTE SpareBytes1[24]; /* 1bc used for ntdll private data in Wine */ PVOID SystemReserved2[10]; /* 1d4 used for ntdll private data in Wine */ GDI_TEB_BATCH GdiTebBatch; /* 1fc used for vm86 private data in Wine */ ULONG gdiRgn; /* 6dc */ ULONG gdiPen; /* 6e0 */ ULONG gdiBrush; /* 6e4 */ CLIENT_ID RealClientId; /* 6e8 */ HANDLE GdiCachedProcessHandle; /* 6f0 */ ULONG GdiClientPID; /* 6f4 */ ULONG GdiClientTID; /* 6f8 */ PVOID GdiThreadLocaleInfo; /* 6fc */ PVOID UserReserved[5]; /* 700 */ PVOID glDispachTable[280]; /* 714 */ ULONG glReserved1[26]; /* b74 */ PVOID glReserved2; /* bdc */ PVOID glSectionInfo; /* be0 */ PVOID glSection; /* be4 */ PVOID glTable; /* be8 */ PVOID glCurrentRC; /* bec */ PVOID glContext; /* bf0 */ ULONG LastStatusValue; /* bf4 */ UNICODE_STRING StaticUnicodeString; /* bf8 used by advapi32 */ WCHAR StaticUnicodeBuffer[261]; /* c00 used by advapi32 */ PVOID DeallocationStack; /* e0c */ PVOID TlsSlots_[64]; /* e10 */ LIST_ENTRY TlsLinks; /* f10 */ PVOID Vdm; /* f18 */ PVOID ReservedForNtRpc; /* f1c */ PVOID DbgSsReserved[2]; /* f20 */ ULONG HardErrorDisabled; /* f28 */ PVOID Instrumentation[16]; /* f2c */ PVOID WinSockData; /* f6c */ ULONG GdiBatchCount; /* f70 */ ULONG Spare2; /* f74 */ ULONG Spare3; /* f78 */ ULONG Spare4; /* f7c */ PVOID ReservedForOle_; /* f80 */ ULONG WaitingOnLoaderLock; /* f84 */ PVOID Reserved5_[3]; /* f88 */ PVOID *TlsExpansionSlots_; /* f94 */ ULONG ImpersonationLocale; /* f98 */ ULONG IsImpersonating; /* f9c */ PVOID NlsCache; /* fa0 */ PVOID ShimData; /* fa4 */ ULONG HeapVirtualAffinity; /* fa8 */ PVOID CurrentTransactionHandle; /* fac */ PVOID ActiveFrame; /* fb0 */ PVOID *FlsSlots; /* fb4 */ struct _TEB *self; }; }; } TEB; typedef TEB *PTEB;
'언어 > C/C++' 카테고리의 다른 글
PEB(Process Environment Block) (0) | 2009.09.14 |
---|---|
dladdr, dlclose, dlerror, dlopen, dlsym, dlvsym (1) | 2009.08.19 |
현재 Thread의 TEB를 얻는 방법 (0) | 2009.08.18 |
TEB(Thread Environment Block) (0) | 2009.08.10 |
[코드 옵티마이즈]memcpy source optimize (0) | 2007.05.21 |