Compare commits

..

399 Commits

Author SHA1 Message Date
Alex Ionescu
817c0274e6 More changes and have vfatlib use a single header, and correct it to import the right stuff. make tools and make implib now work. umtypes needs major cleaning and brain storming to avoid duplication, so i'll work on this now
svn path=/branches/new_headers/; revision=15146
2005-05-08 18:58:22 +00:00
Alex Ionescu
e0595a6d7b Thanks steven
svn path=/branches/new_headers/; revision=15139
2005-05-08 17:41:38 +00:00
Alex Ionescu
4b088b3311 Fix some CRT includes to make it build
svn path=/branches/new_headers/; revision=15138
2005-05-08 17:35:17 +00:00
Alex Ionescu
b08a9d4d5a Add some missing headers, fix some things so CRT can build
svn path=/branches/new_headers/; revision=15137
2005-05-08 17:34:37 +00:00
Alex Ionescu
8299d4b67a Forgot to add RTL header
svn path=/branches/new_headers/; revision=15135
2005-05-08 16:53:32 +00:00
Alex Ionescu
6d643358b1 Add missing defintions so RTL can build. Currently a mess so I'm going to clean it up.
svn path=/branches/new_headers/; revision=15134
2005-05-08 16:51:11 +00:00
Alex Ionescu
4b204938a3 RTL almost builds. Wrapping up and cleaning tomororw
svn path=/branches/new_headers/; revision=15116
2005-05-08 06:22:12 +00:00
Alex Ionescu
449ce4a556 Get more libs to compile. Only rtl left
svn path=/branches/new_headers/; revision=15114
2005-05-08 04:41:15 +00:00
Alex Ionescu
917c0a239d Get rosrtl to compile, add some more stuff missing in headers.
svn path=/branches/new_headers/; revision=15113
2005-05-08 04:32:40 +00:00
Alex Ionescu
0a76d93d31 Update DDK so generic HAL can build
svn path=/branches/new_headers/; revision=15105
2005-05-08 02:08:57 +00:00
Alex Ionescu
ae74f0f543 Limited build
svn path=/branches/new_headers/; revision=15104
2005-05-08 01:47:30 +00:00
Alex Ionescu
d5cfca6fc0 Update ntoskrnl.h. Probably incorrect for now, it's an old version
svn path=/branches/new_headers/; revision=15103
2005-05-08 01:45:21 +00:00
Alex Ionescu
2ba2aeb55d Finally, add NDK. Still needs lot of work
svn path=/branches/new_headers/; revision=15102
2005-05-08 01:41:18 +00:00
Alex Ionescu
be7afa03a8 Add new WIN32K headers
svn path=/branches/new_headers/; revision=15101
2005-05-08 01:40:13 +00:00
Alex Ionescu
156f469b70 Add PSEH
svn path=/branches/new_headers/; revision=15100
2005-05-08 01:39:14 +00:00
Alex Ionescu
bea82f3e72 Add basic headers from trunk
svn path=/branches/new_headers/; revision=15099
2005-05-08 01:38:42 +00:00
Alex Ionescu
9b103a0f91 Start by adding current w32api headers from HEAD
svn path=/branches/new_headers/; revision=15098
2005-05-08 01:32:28 +00:00
Alex Ionescu
5133db7f2c Wipe out current includes to start fresh.
svn path=/branches/new_headers/; revision=15097
2005-05-08 01:30:30 +00:00
Alex Ionescu
8a324aa9d1 New Headers Branch. Final version.
svn path=/branches/new_headers/; revision=15096
2005-05-08 01:27:25 +00:00
Alex Ionescu
dee53a617a New Headers Branch. Final version.
svn path=/branches/new_headers/; revision=15095
2005-05-08 01:27:00 +00:00
Magnus Olsen
f6b87bd320 Fireball patch for fixing RtlUnicodeStringToInteger and RtlCharToInteger
<Fireball> Imported WINE's RtlUnicodeStringToInteger and RtlCharToInteger - they were seriously broken in our revision. Thanks to GreatLord for his help pointing out this bug with me :)

svn path=/trunk/; revision=15092
2005-05-07 22:17:03 +00:00
Steven Edwards
456be5d16b remove trailing whitespace at end of lines
svn path=/trunk/; revision=15091
2005-05-07 21:24:31 +00:00
Magnus Olsen
1c29a40c45 doubicate res id my fualt
now everthing should print out right strings


svn path=/trunk/; revision=15090
2005-05-07 20:47:57 +00:00
Hartmut Birr
8005202506 - initialize a user profile before loading syssetup.dll.
- this makes it possible to install ros over an existing ros.

svn path=/trunk/; revision=15089
2005-05-07 20:20:46 +00:00
Magnus Olsen
8dd7ee7eb4 Fix a old bug in dir it did only accpet lower letters as param
change from ansi _toupper to tchar  _totupper 
it is now both uncide and ansi compatible

svn path=/trunk/; revision=15088
2005-05-07 20:02:50 +00:00
Magnus Olsen
fb0b90fd1b Andreas Bjerkeholt : Swedish translation, proofread by David Nordenberg
svn path=/trunk/; revision=15087
2005-05-07 18:20:23 +00:00
Magnus Olsen
00eb5279ca remove a debug msg after me
svn path=/trunk/; revision=15086
2005-05-07 17:57:12 +00:00
Magnus Olsen
db7dc4e7d1 Add *. to dir but it does not working in ros but in windows fine
some bug in ros 

svn path=/trunk/; revision=15085
2005-05-07 17:48:25 +00:00
Alex Ionescu
cd5450f6f9 Implement FsRtlAllocateResource, FsRtlIsPagingFile, FsRtlBalanceReads. Fix some incorrect function prototypes, rename mdl.c to fastio.c and add some more functions to it. Implement FsRtlGetfileSize to use fastio, combine dbcsname.c and name.c and pretty-fy the array, clean up some ugly formatting. Create context.c and move stream/file context routines there.
svn path=/trunk/; revision=15084
2005-05-07 17:44:54 +00:00
Magnus Olsen
534059e50f Remove the two last langues string it was doublecate
small change to STRING_PATH_ERROR1 in En.rc and Fr.rc
thanks Usurp for notice it



svn path=/trunk/; revision=15083
2005-05-07 15:58:58 +00:00
Alex Ionescu
881487dc6c FILE_BASIC_INFORMATION is 0x28 bytes and aligned on a 8byte boundary. Thanks to Hartmut for notifying me of a bug
svn path=/trunk/; revision=15082
2005-05-07 15:40:03 +00:00
Magnus Olsen
8e7e661c54 implement VOID ConOutResPuts (UINT resID), VOID ConErrResPuts (UINT resID) to outpust msg from rc files
it take less memmory now, and it is bit faster 

CMD_ModuleHandle 
contain GetModuleHandle and it is only execute in main() in cmd 
it optimze for lite more speed in cmd

Langues changes
in En.rc follow new strings have been add and can be translate
STRING_ERROR_WRONG_DATE
STRING_SET_ERROR

svn path=/trunk/; revision=15081
2005-05-07 15:31:07 +00:00
Eric Kohl
104e05622a Implement AssertFail and GetSetFileTimestamp.
svn path=/trunk/; revision=15080
2005-05-07 15:22:32 +00:00
Alex Ionescu
0abe7f6039 Implement FsRtlMdlRead, FsRtlMdlReadComplete, FsMdlReadCompleteDev, FsRtlMdlWRiteComplete, FsRtlMdlWriteCompleteDev, FsRtlPrepareMdlWrite, CcMdlReadCompleted, CcMdlWriteComplete, CcMdlReadCompleteDev
svn path=/trunk/; revision=15079
2005-05-07 15:19:33 +00:00
Magnus Olsen
e18192ed67 Forget change two line in chcp so it did not compile
svn path=/trunk/; revision=15078
2005-05-07 12:04:59 +00:00
Magnus Olsen
a418e5094f the name GetCodePage and OutCodePage is a bit misleading, change it to InputCodePage and OutputCodePage
svn path=/trunk/; revision=15077
2005-05-07 11:54:22 +00:00
Magnus Olsen
e23d422877 Add cache for codepage so it does not call hole time on csrss when it wring out text
it will incress the speed.  Thx w3seek and kjk for the idea.

svn path=/trunk/; revision=15076
2005-05-07 11:14:58 +00:00
Alex Ionescu
a027f33c15 Update Fast I/O Dispatch routines to proper defintions, and move some stuff into io defines instead of internal native types. Remove outdated data due to newest IFS.
svn path=/trunk/; revision=15071
2005-05-07 06:09:56 +00:00
Alex Ionescu
f11525033d Fix driver loading. patch by tinus
svn path=/trunk/; revision=15070
2005-05-07 01:17:36 +00:00
Alex Ionescu
ee7e1eefbe More IRP Completion changes. Use proper stack count and other semantics, as documented in NT File System Internals. These changes don't break anything :P
svn path=/trunk/; revision=15069
2005-05-07 01:13:04 +00:00
Alex Ionescu
7ed5318927 Update ETHREAD to latest version.
svn path=/trunk/; revision=15068
2005-05-07 00:37:48 +00:00
Thomas Bluemel
c38185a947 ReadFile should return 0 to lpNumberOfBytesRead if NtReadFile returned STATUS_END_OF_FILE for synchronous operations
svn path=/trunk/; revision=15067
2005-05-07 00:21:06 +00:00
Alex Ionescu
3d44032203 Fix win32k to use new EPROCESS defintion
svn path=/trunk/; revision=15066
2005-05-06 22:55:52 +00:00
Alex Ionescu
8c4f9d3417 Update EPROCESS to latest version. Basic Fast Referencing Stubs to allow Token access. Needs to be implemented. Use ActiveProcessLinks instead of ros-specific list.
svn path=/trunk/; revision=15065
2005-05-06 22:54:40 +00:00
Thomas Bluemel
6ab4605c43 upgrade to PSEH2 (note, the new macros are still named _SEH_*, not _SEH2_*!)
svn path=/trunk/; revision=15063
2005-05-06 22:25:30 +00:00
Aleksey Bragin
9c40b2406e Patch by tinus: Resolves issue of keyboard detection when e.g. booting ReactOS under VMWare with no keyboard grabbed.
svn path=/trunk/; revision=15062
2005-05-06 21:18:20 +00:00
Magnus Olsen
069ef02dff <tinus_> "Forgotten file from commit 14982"
svn path=/trunk/; revision=15061
2005-05-06 20:45:30 +00:00
Magnus Olsen
d01fb36f3c HKLM,"SYSTEM\CurrentControlSet\Services\i8042Prt\Parameters","SampleRate",0x00010001,0x00000060
60 are the dec value but it have not be convort to hex that is 0x3c

legmet value are, e.g., 10, 20, 40,   60, 80, 100, 200.'
in dec in hex 0x0a, 0x14, 0x28, 0x3c, 0x50, 0x64,  0xc8

svn path=/trunk/; revision=15060
2005-05-06 20:12:37 +00:00
Gé van Geldorp
6bd014f928 Update status
svn path=/trunk/; revision=15059
2005-05-06 19:42:39 +00:00
Gé van Geldorp
1bac2f80fc Sync to Wine-20050419:
Peter Berg Larsen <pebl@math.ku.dk>
- Janitorial: Get rid of strncpy/strncpyW.

svn path=/trunk/; revision=15057
2005-05-06 19:18:46 +00:00
Gé van Geldorp
03a1e1b191 Sync to Wine-20050419:
Robert Reif <reif@earthlink.net>
- Stub out DRVM_MAPPER_RECONFIGURE support.
- Correctly handle where waveOutGetPosition changes timepos.wType
  because the requested type is not supported.
- Added Jeremy White's waveOutGetPosition fix to waveInGetPosition.
- Fix memory leak in error path.
- Provide default implementation of waveInPrepareHeader and
  waveInUnprepareHeader if driver doesn't support them.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Spanish translations updated.
Peter Berg Larsen <pebl@math.ku.dk>
- Assorted memleak fixes. Found on Michael Stefaniuc smatch list.
Jeremy White <jwhite@codeweavers.com>
- Do not fallback to defaults if a driver, mapper, or midi is specified
  in the registry; consolidate MMDRV_Init() into a single function.
Robert Reif <reif@earthlink.net>
- Fix memory leak when there are too many drivers.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Correct and complete some api documentation.
Filip Navara <xnavara@volny.cz>
- Specify correct buffer size in GetPrivateProfileStringW calls.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Jason Edmeades <us@the-edmeades.demon.co.uk>
- Avoid trap in mixerGetLineControlsA when cControls is uninitialized
  and MIXER_GETLINECONTROLSSF_ONEBYTYPE requested.

svn path=/trunk/; revision=15056
2005-05-06 19:16:10 +00:00
Gé van Geldorp
c963e3149a Fix filename case
svn path=/trunk/; revision=15055
2005-05-06 19:11:20 +00:00
Casper Hornstrup
610edc2729 Correct typo
svn path=/trunk/; revision=15054
2005-05-06 19:06:59 +00:00
Magnus Olsen
9736e48f66 Thx w3seek that pointout a bug in ConInString it should have been in fristplase GetConsoleCP() instead for GetConsoleOutputCP
svn path=/trunk/; revision=15053
2005-05-06 17:30:45 +00:00
Magnus Olsen
3f0b1b9276 At last unicode version of cmd are now output text with right code page
so charater on other langues like swedish, french, ... will display right now

svn path=/trunk/; revision=15052
2005-05-06 17:10:21 +00:00
Thomas Bluemel
b62466eed1 - fixed TransactNamedPipe to properly wait on completion for synchronous operations
- prevent completion port notification by not passing an APC context to the kernel when the low-order bit of the event handle is set (for asynchronous operations)

svn path=/trunk/; revision=15051
2005-05-06 16:47:09 +00:00
Gé van Geldorp
bb1d3b119b Sync to Wine-20050419:
Peter Berg Larsen <pebl@math.ku.dk>
- Strncpy elimination.
- Janitorial: Get rid of strncpy/strncpyW.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Troy Rollo <wine@troy.rollo.name>
- Corrections to UrlIsW and UrlIsA.
- URL_IS_OPAQUE results depend only on the scheme, not on the URL.
- URL_IS_FILEURL also only depends on the scheme ("file:").
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Robert Shearman <rob@codeweavers.com>
- Fix SHCopyKey to treat string parameter correctly as source path
  instead of destination path.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc).
- Implement @188,190,195,200,256,478,481.
- IUnknown_EnableModeless() also handles IOleInPlaceActiveObject.
- Tests and small fix for PathMakePretty().
- Fix a crash and test failure with early native dlls.

svn path=/trunk/; revision=15050
2005-05-06 16:23:24 +00:00
Aleksey Bragin
c72be4b69c Make intl.cpl really switch InstallLanguage and Default entries of NLS\Language key. Problem with freeldr solved in hacky way - it writes now e.g. "0409" and not "00000409", as it generally should.
svn path=/trunk/; revision=15049
2005-05-06 16:21:30 +00:00
Thomas Bluemel
ecba32de75 - fixed ConnectNamedPipe to properly wait on completion for synchronous operations
- prevent completion port notification by not passing an APC context to the kernel when the low-order bit of the event handle is set (for asynchronous operations)

svn path=/trunk/; revision=15048
2005-05-06 16:07:51 +00:00
Thomas Bluemel
f16e5b9e1d - fixed DeviceIoControl to properly wait on completion for synchronous operations
- prevent completion port notification by not passing an APC context to the kernel when the low-order bit of the event handle is set (for asynchronous operations)

svn path=/trunk/; revision=15045
2005-05-06 15:55:28 +00:00
Thomas Bluemel
496308ed56 - fixed Read/WriteFile(Ex) and properly wait on completion for synchronous operations
- prevent completion port notification by not passing an APC context to the kernel when the low-order bit of the event handle is set (for asynchronous operations)

svn path=/trunk/; revision=15043
2005-05-06 14:02:45 +00:00
Hartmut Birr
c565a223c9 Revert my last changes.
svn path=/trunk/; revision=15042
2005-05-06 13:35:27 +00:00
Hartmut Birr
7fb90fae33 Do not modify the stack layout of a function by using inline assembler.
svn path=/trunk/; revision=15040
2005-05-06 12:17:29 +00:00
Hervé Poussineau
71b3a2ede3 Revert ntoskrnl/cm/regobj.c back to revision 14017
svn path=/trunk/; revision=15039
2005-05-06 11:53:35 +00:00
Thomas Bluemel
5ff8364d66 minor corrections to match the behavior of wine's implementation
svn path=/trunk/; revision=15037
2005-05-06 11:02:47 +00:00
Magnus Olsen
6687b53ab8 David Nordenberg: Swedish translation, proofread by Andreas Bjerkeholt
svn path=/trunk/; revision=15033
2005-05-06 08:27:46 +00:00
Magnus Olsen
b6759ac808 Swedish translations by David Nordenberg
svn path=/trunk/; revision=15032
2005-05-06 08:21:12 +00:00
Alex Ionescu
b33f21c67e Update some more kernel structures
svn path=/trunk/; revision=15031
2005-05-06 00:11:25 +00:00
Thomas Bluemel
72be0f4961 open the module image file with read access rights instead of full access rights
svn path=/trunk/; revision=15030
2005-05-06 00:11:14 +00:00
Thomas Bluemel
03912150d8 create a token handle with TOKEN_QUERY access rights which is required to query the user information in RtlFormatCurrentUserKeyPath
svn path=/trunk/; revision=15029
2005-05-06 00:09:08 +00:00
Thomas Bluemel
83a2899311 don't leak the registry path string after initializing a driver
svn path=/trunk/; revision=15028
2005-05-06 00:07:05 +00:00
Alex Ionescu
5267e6247e Update KPROCESS structure to latest version and document all its fields on the Wiki page. Move Kernel Structures to ke.h from ps.h, remove stuff from ntifs.h that shouldnt be there
svn path=/trunk/; revision=15027
2005-05-05 22:40:05 +00:00
Gé van Geldorp
b36a075a86 Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Spanish translations updated.
Hans Leidekker <hans@it.vu.nl>
- Dutch resource translation.

svn path=/trunk/; revision=15026
2005-05-05 22:36:25 +00:00
Hartmut Birr
a2a2ab569b Fixed InterlockedClearBit.
svn path=/trunk/; revision=15025
2005-05-05 22:24:27 +00:00
Gé van Geldorp
a3cf83ca68 Sync to Wine-20050419:
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Mike McCormack <mike@codeweavers.com>
- Remove an unused function.
- Eliminate casts of the return value of HeapAlloc.
- Convert path to unicode, rearrange to remove forward declaration.
- Remove forward declarations of interface methods.
- Remove some dead code and some ifdefs.
- Use api definitions, remove duplicate code.
- Fix usage of STGM_ enumerations, remove forward declaration.
- Fix up PIDL dumping code.
- Fix a regression in the file open dialog.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc).
Huw Davies <huw@codeweavers.com>
- Fix the icon resource ids (most were off by one).
- Fix IExtractIcon_{GetIconLocation,Extract} to use -ve icon resource
  ids and fix bugs relating to confusion between resource ids and the
  system imagelist indicies.
- Extend the system imagelist initialization hack to load both +ve and
  -ve resource ids.
- Add a printer icon (that'll be used by an upcoming printer folder
  patch).
- When we're hiding file extensions then SetNameOf should append the
  original extension if SHGDN_FORPARSING isn't set.
- The flags passed to SetNameOf refer to the dst string not the src
  pidl.
- If ICommDlgBrowser_OnDefaultCommand returns anything other than S_OK
  then we should call the default handler.
- Directory items should have the SFGOA_FILESYSANCESTOR attribute.
  Add a test for this and cleanup the shlfolder test a bit.
- Better icon handling for some special folders.
- Identify and add defines for a bunch of shell icons.
- Add a unicode pidl type.
- Improve support for PT_YAGUID.
- Improve IShellLink debugging.
Steven Edwards <steven_ed4153@yahoo.com>
- Register Shell Drag and Drop Helper.
Juan Lang <juan_lang@yahoo.com>
- Use Unicode string result from GetDisplayNameOf if it isn't
  representable using ANSI.
- Correct registering shell folders (values in Shell Folders key weren't
  getting written).
Martin Fuchs <martin-fuchs@gmx.net>
- switch to correct shell desktop context menu
- launch desk.cpl when activating the desktop context menu entry
  "properties"
- don't send WM_COMMAND if we didn't get a shell view window
- Correct comments of some export ordinals.
Peter Berg Larsen <pebl@math.ku.dk>
- Replace strncpy with memcpy or lstrcpyn.
Troy Rollo <wine@troy.rollo.name>
- Fix SEGV for non-fully-qualified destination paths.
- Don't fail ShFileOperationW if FOF_ALLOWUNDO is passed.
Filip Navara <xnavara@volny.cz>
- _dbg_ILGetNext returns NULL if pidl->mkid.cb is zero, fix the loops
  accordingly.
Aric Stewart <aric@codeweavers.com>
- For ShellExecuteExA we need to copy out the hProcess value from the W
  structure.

svn path=/trunk/; revision=15024
2005-05-05 22:16:20 +00:00
Gé van Geldorp
ee1685bd2e Sync to Wine-20050419:
Mike McCormack <mike@codeweavers.com>
- Add stub for FaultInIEFeature.

svn path=/trunk/; revision=15023
2005-05-05 21:07:02 +00:00
Hervé Poussineau
fe7b55c2c1 SVN maintenance: Set eol style to native and add keywords
svn path=/trunk/; revision=15022
2005-05-05 20:52:14 +00:00
Hervé Poussineau
cb0daf73fd RtlFreeUnicodeString -> ExFreePool changes
svn path=/trunk/; revision=15021
2005-05-05 20:19:01 +00:00
Gé van Geldorp
6758bb095b Sync to Wine-20050419:
Hans Leidekker <hans@it.vu.nl>
- Stub implementation for SetupCopyOEMInfW.
Peter Berg Larsen <pebl@math.ku.dk>
- Janitorial: Get rid of strncpy/strncpyW.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Juan Lang <juan_lang@yahoo.com>
- Implement SetupDiClassNameFromGuidExA.

svn path=/trunk/; revision=15020
2005-05-05 20:14:39 +00:00
Hervé Poussineau
30cd41fa52 Forgot to commit this file with revision 15013
svn path=/trunk/; revision=15019
2005-05-05 19:36:25 +00:00
Gé van Geldorp
dff6294185 Sync to Wine-20050419:
Robert Shearman <rob@codeweavers.com>
- Fix deadlock caused by not leaving the critical section on all code
  paths.
- RpcMgmtStopServerListen should not affect auto-listen interfaces.
- Implement stub for RpcRevertToSelfEx.
- Change the more verbose files to use a new debug channel, "rpc."
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Ralf S. Engelschall <rse@engelschall.com>
- Fix incorrect random multicast MAC address creation.

svn path=/trunk/; revision=15018
2005-05-05 19:17:25 +00:00
Gé van Geldorp
d0bf4f6953 Sync to Wine-20050419:
Remove no longer needed files.

svn path=/trunk/; revision=15016
2005-05-05 19:11:20 +00:00
Magnus Olsen
6af3fc11fe swedish translation by Andreas Bjerkeholt
svn path=/trunk/; revision=15015
2005-05-05 19:05:42 +00:00
Gé van Geldorp
e14533d20a Sync to Wine-20050419:
Krzysztof Foltman <wdev@foltman.com>
- removed trailing spaces from some files
- tab support
- indent support
- PageUp key support.
- Support for "normal" scroll bar functionality (line and page
  scrolling).
- made string operations consistent wrt whitespace handling (which
  should greatly improve stability of the wrap code and eliminate
  regressions of the most recent versions)
- completely new scrollbar handling (much more reliable) and related
  redraw fixes
- Page Down handler (no Page Up yet, fixing wrap/redraw/scrollbar bugs
  was of higher priority)
- RTF reader doesn't use RichEdit messages anymore (which saves on
  unnecessary repaints)
- added unicode character support to RTF import (like: \u12345 ?)
- small fixes
- fixed whitespace identification bug
- removed drawing of paragraph marks
- improved stub implementations for IRichEditOle
- Unknown destinations are now correctly skipped (so loading an RTF
  file generated by, for example, OpenOffice doesn't produce lots of
  garbage anymore).
- Format stack for RTF groups (so that RTF reader can correctly read
  what RTF writer wrote :) )
- EM_STREAMIN can now deal with undo in a reasonable manner (no
  multiple undo actions in one EM_STREAMIN).
- Related changes to undo code (umIgnore mode is now handled
  correctly).
- Numerous improvements in the RTF reader: it reads some character
  attributes now (you will have proper small print in license agreements
  now).
- Fixed a memory overwrite bug in conversion from CHARFORMAT2A to
  CHARFORMAT2W.
- Optimized repaint of the area below the text.
- ME_JoinRuns didn't mark the paragraph for rewrapping, fixed.
- Removed PostQuitMessage(0) from WM_DESTROY handler (duh!).
- Use of EM_GETOLEINTERFACE is reported with FIXME instead of TRACE
  (any app using this message is likely to encounter major problems).
- WM_COPY (and WM_CUT) can now put both Unicode and RTF format (thanks
  to Phil Krylov's RTF generator code).
- New message implemented - WM_PASTE.
- RTF reader: rtfPlain implemented (kind of).
- RTF writer: rewritten main loop (the old one crashed in some
  circumstances when SFF_SELECTION was used).
- The meaning of the rewrap flag got inverted (MEPF_REWRAP instead of
  MEPF_WRAPPED) for consistency.
- Major code cleanups in rewrap/repaint code, leading to "smarter"
  behaviour wrt repainting selections.
- Old font management replaced by the cache-based one, which keeps
  maximum of 10 HFONTs at once, instead of one per a couple of runs.
- EM_CANPASTE implemented
- updated TODO list (including list of (un)implemented messages)
- fixed WM_PASTE (the previous version might not close the clipboard
  if it didn't contain a usable format)
- scrollbar operations (like clicking on arrows) should update
  scrollbar's current position
Gerald Pfeifer <gerald@pfeifer.com>
- Make ME_ArrowLeft() return a value in every case.
Phil Krylov <phil@newstar.rinet.ru>
- Make RTF reader fall back to simple text if a correct RTF header is
  not detected. This should fix some installers.
- Made RTF reader and writer handle codepages mostly similar to the
  original riched20.dll.
- Fixed support for RTF documents using ANSI charset and added support
  for multibyte charsets, so that BIG5 and UTF-8 RTF documents are
  working now.
- Replaced slow and outdated character set handling in RTF reader by
  Unicode/codepages support. Added charset->codepage conversion.
- Implemented hash table lookup for RTF keywords in RTF reader.
- Added "generator" RTF destination handling.
- Initial implementation of EM_STREAMOUT and RTF writer.
- Fixed \u keyword to output signed 16-bit values. Also fixed CP_SYMBOL
  conversion and the detection of the default font's codepage.
- Improved RTF export.
Mike McCormack <mike@codeweavers.com>
- Remove casts and unused code.
Hannu Valtonen <Hannu.Valtonen@hut.fi>
- Added mousewheel support.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Use "" for Windows includes in dlls, instead of <>.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Jason Edmeades <us@the-edmeades.demon.co.uk>
- Correct memory allocation macro.

svn path=/trunk/; revision=15014
2005-05-05 19:00:49 +00:00
Hervé Poussineau
f71087e736 ExFreePool -> ExFreePoolWithTag changes
svn path=/trunk/; revision=15013
2005-05-05 18:59:14 +00:00
Gé van Geldorp
7bd0add306 Sync to Wine-20050419:
Peter Berg Larsen <pebl@math.ku.dk>
- Replace strncpy with memcpy or lstrcpyn.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.

svn path=/trunk/; revision=15012
2005-05-05 18:32:46 +00:00
Gé van Geldorp
df82a2a2a8 Sync to Wine-20050419:
Daniel Remenak <dtremenak@gmail.com>
- Implemented VarIdiv.
- Return DISP_E_DIVBYZERO instead of crashing when asked to divide a
  variant by zero.
- Remove unused variable in _copy_arg.
Marcus Meissner <meissner@suse.de>
- Serialize NULL pointer interfaces correctly.
- Fixed VT_BSTR|VT_BYREF marshalling.
- Added VT_I4|VT_BYREF marshalling.
- Fixed ppvObject serializer (deref twice instead of once).
- Actually pass back return value of remote call in type marshaller.
- Format VT_UI1, VT_I1, VT_UI2, VT_I2 correctly.
- Added IDispatch::GetIDsOfNames() special case serializing.
- Handle VT_PTR / NULL marshalling correctly.
Mike Hearn <mike@navi.cx>
- Fix BSTR tracing in the typelib marshaller.
- Fix PARAMFLAG_FOUT typo in the tmarshaller.
Mike Hearn <mh@codeweavers.com>
Robert Shearman <rob@codeweavers.com>
- Implement VT_BYREF | VT_BSTR marshalling.
- Add more integer types for marshaling and unmarshaling.
- Implement VT_BYREF | VT_BSTR unmarshaling.
- Don't allocate memory for TKIND_DISPATCH/TKIND_INTERFACE
  unmarshaling as it will be lost in the success case and interferes
  with the failure case.
Robert Shearman <rob@codeweavers.com>
- Add outer unknown support for typelib marshaler.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Fix leftover negative sign in height parameter for transparent
  bitmap.
- Properly announce whether bitmap is transparent in get_Attributes.
- GIF transparency is now palette-index based, instead of RGB based.
- Keep original bitmap and XOR mask separate, so that get_Handle
  returns original bitmap.
- Initialize [orig|himetric][Width|Height] for PICTYPE_ICON case.
- Fix failure to notice the use of a GIF palette index greater or equal
  to 128 for transparency.
- After Float->string conversion via sprintfW(), VarDecFromR[4|8] is
  forced to use US locale for string->Decimal conversion, to agree with
  sprintfW().

svn path=/trunk/; revision=15011
2005-05-05 18:29:41 +00:00
Gé van Geldorp
61e422828e Sync to Wine-20050419:
Juan Lang <juan_lang@yahoo.com>
- Implement PropSys{Alloc|Free}String, and support BSTRs in
  PropVariant{Clear|Copy} using them.
- Begin implementing IPropertyStorage.
- Add traces, add unit tests for IPropertyStorage, and fix the problems
  they caught.
- Implement FmtIdToPropStgName & PropStgNameToFmtId, with tests.
- add write support to IPropertyStorage, with tests
- misc. cleanups the tests turned up
- Add a comment about byte order, change types to reduce casting and not
  cast away constness.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Change prototypes so gcc with some warnings doesn't bark.
- Correct and complete some api documentation.
Mike McCormack <mike@codeweavers.com>
- Eliminate forward declarations, make functions static.
- Eliminate casts of the return value of HeapAlloc.
- Remove function prototypes, make functions static.
- StgOpenStorage shouldn't open zero length storage files.
- Remove unnecessary function prototypes.
Robert Shearman <rob@codeweavers.com>
- Add critsec debugging info.
- Move the modal loop called during RPCs into CoWaitForMultipleHandles.
- Use a mutex for long remoting calls to IRemUnknown methods.
- Remove locking in apartment_disconnectproxies as it is not needed.
- Use PostMessage instead of SendMessage so we can run the message
  loop or not as appropriate.
- Rename apartment functions to become more object-oriented.
- Rename register_ifstub to marshal_object to more accurately describe
  what it does.
- Add new function, apartment_getoxid, to prepare for a possible
  future patch where remoting is started on demand.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc).
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Huw Davies <huw@codeweavers.com>
- Don't close reg key if the open failed.
- WriteFmtUserTypeStg doesn't pull a CLSID from the registry - it's
  unclear when (if at all) this gets written.
Alexandre Julliard <julliard@winehq.org>
- Fixed a buffer overflow.
Joris Huizer <jorishuizer@planet.nl>
- A few memory checks avoiding memory leaks.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Zero out an invalidated runningObjectTableInstance pointer.
Dimitrie O. Paun <dpaun@rogers.com>
- Remove the need for the non-standard (Close|Delete)MetaFile16().
Troy Rollo <wine@troy.rollo.name>
- ix test for STGM_SHARE_EXCLUSIVE on nameless DocFiles.

svn path=/trunk/; revision=15010
2005-05-05 18:16:09 +00:00
Thomas Bluemel
6b48fc81ad implemented RegOpenUserClassesRoot (doesn't work in reactos because there's no symbolic link \Registry\User\<SID>_Classes yet)
svn path=/trunk/; revision=15009
2005-05-05 17:45:00 +00:00
Hervé Poussineau
bcbeeea71f Change ExFreePool to ExFreePoolWithTag
Don't call RtlFreeUnicodeString if the string wasn't created by RtlAnsiStringToUnicodeString or RtlUpcaseUnicodeString
Implement ExRosQueryNonPagedPoolTag
Add BAD_POOL_CALLER code

svn path=/trunk/; revision=15008
2005-05-05 17:20:10 +00:00
Eric Kohl
11670a0523 Implement OpenAndMapFileForRead, RetreiveFileSecurity, StampFileSecurity, TakeOwnershipOfFile and UnmapAndCloseFile.
svn path=/trunk/; revision=15007
2005-05-05 16:16:28 +00:00
Thomas Bluemel
de9188501b the registry functions shouldn't change the last error, instead they should just return the error code.
svn path=/trunk/; revision=15006
2005-05-05 16:15:08 +00:00
Magnus Olsen
f2454371af Update the swedish translation by
David Nordenberg 



svn path=/trunk/; revision=15005
2005-05-05 16:05:46 +00:00
Hervé Poussineau
a3d0da6d95 Don't desallocate non allocated memory
svn path=/trunk/; revision=15004
2005-05-05 15:39:36 +00:00
Thomas Bluemel
b9c033f3ec - ported BuildTrusteeWithObjectsAndNameA/W and BuildTrusteeWithObjectsAndSidA/W from wine
- implemented RegOpenCurrentUser
- directly forward GetSecurityDescriptorLength to NTDLL.RtlLengthSecurityDescriptorguard dumping the stack trace to prevent infinite exception loopsguard dumping the stack trace to prevent infinite exception loops

svn path=/trunk/; revision=15003
2005-05-05 15:39:27 +00:00
Hervé Poussineau
9961bb7d69 Better handle of wrong arguments in IoRegisterDeviceInterface
svn path=/trunk/; revision=15002
2005-05-05 15:39:09 +00:00
Thomas Bluemel
0f4b0fd412 guard dumping the stack trace to prevent infinite exception loops
svn path=/trunk/; revision=15001
2005-05-05 15:38:32 +00:00
Hervé Poussineau
e5443b9351 Call Fs notifications at PASSIVE_LEVEL by using a guarded mutex
Use ExFreePoolWithTag instead of ExFreePool

svn path=/trunk/; revision=15000
2005-05-05 13:27:00 +00:00
Thomas Bluemel
da6a50d93f directly use HeapAlloc/Free in midl_user_allocate and midl_user_free instead of the depreciated GlobalAlloc/Free functions
svn path=/trunk/; revision=14999
2005-05-05 13:24:39 +00:00
Thomas Bluemel
cb363f4f7d use SERVICES_ACTIVE_DATABASE if the caller didn't specify a database for OpenSCManager()
svn path=/trunk/; revision=14998
2005-05-05 12:58:03 +00:00
Alex Ionescu
264cee75a3 Simply fix up the formatting, there were tabs and 3 spaces and 4 spaces and 2 spaces identation. No code was harmed.
svn path=/trunk/; revision=14997
2005-05-05 12:35:09 +00:00
Thomas Bluemel
74d7b0c5f4 prevent buffer overflow, LoadString accepts the size of the buffer in TCHARs, not in bytes!
svn path=/trunk/; revision=14996
2005-05-05 12:25:40 +00:00
Thomas Bluemel
e85ca23849 don't dereference lpTokenAttributes if the caller passed NULL to DuplicateTokenEx
svn path=/trunk/; revision=14995
2005-05-05 12:21:43 +00:00
Magnus Olsen
d22f099901 Usurp
fransch translations
fix right help string printing out on screen wrong strings was loading when you need help
incress the string buffer for loading strings from rc example for dir /?
remove duplicate STRING_PARAM_ERROR

solv bugzila bug 618 


svn path=/trunk/; revision=14994
2005-05-05 12:03:43 +00:00
Hartmut Birr
3fdefd1abf - Use the WIN32 option to select the correct mkdir.
svn path=/trunk/; revision=14993
2005-05-05 11:28:49 +00:00
Hartmut Birr
76a83ce1cc - Detect msys on windows as a linux system.
- Creating of the bootcd will not work. There is somewhere a path with 'c:/'.

svn path=/trunk/; revision=14992
2005-05-05 11:26:32 +00:00
Hartmut Birr
159160db0d - Fixed the parameters for NtOpenFile in InternalFindFirstFile.
- Closed the opened directory on error in InternalFindFirstFile.

svn path=/trunk/; revision=14991
2005-05-05 11:07:28 +00:00
Hartmut Birr
43e3abdd99 - Return the length in VfatDirectoryControl.
svn path=/trunk/; revision=14990
2005-05-05 11:05:05 +00:00
Hartmut Birr
5e49963c1a - Free always the name string and the completion context in IopDeleteFile.
- Fixed the check for synchronous operations in NtQueryDirectoryFile.

svn path=/trunk/; revision=14989
2005-05-05 11:03:27 +00:00
Hartmut Birr
4200c75f3b - Guard the copying to the IOSB.
- Do the main processing on success or if previous STATUS_PENDING was returned. 
  Do not use some of the IRP and FO flags at this point.   
- Set all results before signaling the events.  
- Signal the FO event previous the user event.    
- Made the code a little bit shorter.


svn path=/trunk/; revision=14988
2005-05-05 10:59:34 +00:00
Hervé Poussineau
e80efe27d7 SVN maintenance:
Delete wine_unicode.map
Add *.map to ignore list

svn path=/trunk/; revision=14987
2005-05-05 09:59:38 +00:00
Thomas Bluemel
483c08b898 - fixed RegSetValueEx to take the null-terminating byte for strings into account when the caller forgot it
- capture the driver service name string in NtLoadDriver

svn path=/trunk/; revision=14984
2005-05-05 02:46:17 +00:00
Thomas Bluemel
079656c5c4 only create handles with access rights needed for the operation
svn path=/trunk/; revision=14983
2005-05-05 00:07:27 +00:00
Magnus Olsen
7a3fb8af07 tinus
implement MouseResolution setting

Me (Magnus Olsen)
remove old psuax drv from hiveinst.inf and add tinus mouse drv settings
add MouseResolution setting to reg


svn path=/trunk/; revision=14982
2005-05-04 23:06:15 +00:00
Thomas Bluemel
0e71d1e88d prevent buffer overflow, LoadString accepts the size of the buffer in TCHARs, not in bytes!
svn path=/trunk/; revision=14981
2005-05-04 22:32:43 +00:00
Thomas Bluemel
c1b7289bd6 prevent buffer overflow, LoadString accepts the size of the buffer in TCHARs, not in bytes!
svn path=/trunk/; revision=14980
2005-05-04 22:21:55 +00:00
Thomas Bluemel
410ddcfe72 correctly use tchar.h again and build a unicode version by default
svn path=/trunk/; revision=14979
2005-05-04 22:18:43 +00:00
Thomas Bluemel
6a0f65e223 it's valid to pass lpTargetHandle = NULL to DuplicateHandle()
svn path=/trunk/; revision=14978
2005-05-04 21:23:13 +00:00
Gé van Geldorp
600cfcc505 Fix GDB stub:
- Initialize WrapperTable routines as early as possible
- Initialize debug port (hard coded to COM2, 115200 baud for now)
- Don't limit runnable thread on startup

svn path=/trunk/; revision=14977
2005-05-04 20:38:43 +00:00
Thomas Bluemel
68b564e30a make correct use of tchar.h in taskmgr and build it as unicode by default
svn path=/trunk/; revision=14976
2005-05-04 19:29:28 +00:00
Maarten Bosma
587ddda1d5 Steven Wilson: update tlist to use new process info struct names
svn path=/trunk/; revision=14975
2005-05-04 18:53:47 +00:00
Magnus Olsen
6039178c86 David Nordenberg: Swedish translation, proofread by Andreas Bjerkeholt and small change from Kris Engeman
svn path=/trunk/; revision=14974
2005-05-04 18:10:12 +00:00
Martin Fuchs
8ec74d5f10 restore toolbar bitmap
svn path=/trunk/; revision=14973
2005-05-04 17:59:36 +00:00
Magnus Olsen
7e2d943420 Swedish åäö was gone in the translation after some commit.
I which we can split all langues to own .rc files. 
so this can not be happen agien

Thx  Harteex for fixing åäö in the .rc file 

svn path=/trunk/; revision=14972
2005-05-04 17:41:27 +00:00
Magnus Olsen
35b46085ea filip0402 : patch for taskmgr to remove some hardcode string tested by Harteex
svn path=/trunk/; revision=14971
2005-05-04 16:54:48 +00:00
Hervé Poussineau
60bdc5ad60 Set Thread->SystemThread to TRUE when creating a system thread. Patch by Filip Navara
svn path=/trunk/; revision=14970
2005-05-04 16:00:39 +00:00
Aleksey Bragin
d534342503 RegOpenKey, RegOpenKeyEx A/W imported and ported from WINE. This keeps the current test set in advapi32_test registry on 85/0 level
svn path=/trunk/; revision=14969
2005-05-04 15:53:54 +00:00
Aleksey Bragin
8460c6e770 NtOpenKey modified to correctly behave when wrong input params are given (according to WINE tests).
svn path=/trunk/; revision=14968
2005-05-04 15:27:05 +00:00
Hervé Poussineau
ed23d5951d Fix flags checking in I8042ReadData (patch by Tinus_)
Check error codes returned by IoCreateDevice
Replace ExFreePool by ExFreePoolWithTag

svn path=/trunk/; revision=14967
2005-05-04 13:28:34 +00:00
Alex Ionescu
985abe1494 Fix horrible bug where Queued Threads were treated like Threads on the Ready list. I was aware of this bug for months and it's fixed in my new scheduler but now that tinus has seen it happen, I'm comitting the fix temporarly in trunk.
svn path=/trunk/; revision=14966
2005-05-03 23:24:26 +00:00
Magnus Olsen
151078eab1 bugfix from, tinus mailto:o112w8r02@sneakemail.com
fixining http://reactos.com/bugzilla/show_bug.cgi?id=616#c1
bug in mozila 

There's a small bug in usetup/bootsup.c which makes it fail formatting the disk.
It tries to read the bootsector image on the cdrom for write access (which
succeeds), then tries to read from the handle (which fails).

svn path=/trunk/; revision=14965
2005-05-03 23:18:21 +00:00
Hartmut Birr
5255b326ec Do always set the UserIosb of an irp in IoSecondStageCompletion.
svn path=/trunk/; revision=14964
2005-05-03 21:42:35 +00:00
Hervé Poussineau
f2b9954c3f Add French translation for sndvol32 (Patch by Usurp)
Set properties for Cz.rc and Sv.rc

svn path=/trunk/; revision=14963
2005-05-03 21:25:41 +00:00
Magnus Olsen
0d5f3d84cb Implement WSAStringToAddressA
svn path=/trunk/; revision=14962
2005-05-03 18:37:51 +00:00
Magnus Olsen
4732ce19d1 Implement WSAStringToAddressW
svn path=/trunk/; revision=14961
2005-05-03 17:22:52 +00:00
Hervé Poussineau
d6ce9d647e Remove Disk driver for Bochs.
It doesn't compile and shouldn't be usefull as we have a normal disk driver in drivers/storage/disk

svn path=/trunk/; revision=14960
2005-05-03 13:14:59 +00:00
Martin Fuchs
aa0e827382 rosshell: printer and network folder in start menu
svn path=/trunk/; revision=14959
2005-05-03 12:15:27 +00:00
Alex Ionescu
e49c3dc30f revert accidental commit
svn path=/trunk/; revision=14958
2005-05-03 11:56:46 +00:00
Martin Fuchs
61ce6acfa9 context menu interface pointer cleanup
svn path=/trunk/; revision=14957
2005-05-03 09:32:10 +00:00
Martin Fuchs
7b8809480b small optimization for the last change
svn path=/trunk/; revision=14956
2005-05-03 09:21:42 +00:00
Martin Fuchs
63415000fe display custom folders in start menu root
svn path=/trunk/; revision=14955
2005-05-03 08:04:58 +00:00
Martin Fuchs
7bb756385c context menu interface pointer cleanup
svn path=/trunk/; revision=14954
2005-05-03 08:03:46 +00:00
Hartmut Birr
c853c0b6e3 Open/create all files with the necessary rights.
svn path=/trunk/; revision=14951
2005-05-02 20:30:29 +00:00
Hartmut Birr
98c1f41b90 - Check first for a valid returned object in ObOpenObjectByName.
- Free always the remaining path string if an error is returned in ObOpenObjectByName.

svn path=/trunk/; revision=14950
2005-05-02 19:12:31 +00:00
Hervé Poussineau
82eacd2e6d Add i8042prt.sys and kbdclass.sys to boot cd
Remove leftover of keyboard.sys and psaux.sys drivers
(Pointed by Usurp)

svn path=/trunk/; revision=14949
2005-05-02 16:35:58 +00:00
Emanuele Aliberti
143f5e1f74 Move VMS subtree in the proper place.
svn path=/trunk/; revision=14948
2005-05-02 14:15:56 +00:00
Filip Navara
51e5c11dc8 Fix Alex's completely wrong fix for NtUserScrollWindowEx (aka bug #606).
svn path=/trunk/; revision=14947
2005-05-02 14:05:38 +00:00
Alex Ionescu
6c331c3529 Fix many of the scrollbar issues. However, MDI Scrollbars are still not working perfectly. Patch by tinus <o112w8r02@sneakemail.com>. Fixes bug 606
svn path=/trunk/; revision=14946
2005-05-02 11:42:41 +00:00
Alex Ionescu
dff743f85a Don't call internal function which checks parameters since our parameter is kernel mode.
svn path=/trunk/; revision=14945
2005-05-02 11:38:48 +00:00
Hervé Poussineau
252332e971 Don't free unicode strings in case of error
svn path=/trunk/; revision=14944
2005-05-02 11:03:54 +00:00
Art Yerkes
dabd9ab597 Fix KDSERIAL.
svn path=/trunk/; revision=14943
2005-05-02 07:04:36 +00:00
Alex Ionescu
f19732f822 Same kind of fixes for NtFlushBuffersFile
svn path=/trunk/; revision=14942
2005-05-02 05:27:32 +00:00
Alex Ionescu
fb52d69134 Fix NtQueryInformationFile. Use right device object in case of FO_DIRECT_DEVICE_OPEN, use local event, set proper flags so that the I/O manager does the copying and freeing of the buffers, respect syyncronous I/O. Same kind of fixes for IoQueryFileInformation
svn path=/trunk/; revision=14941
2005-05-02 05:15:20 +00:00
Martin Fuchs
7997eff27f implement owner drawn context menus for winefile
svn path=/trunk/; revision=14940
2005-05-01 23:19:48 +00:00
Hervé Poussineau
f4bf96a034 Fix garbage text output with cmd.exe in GUI mode.
Thanks to Hartmut for pointing me the problem

svn path=/trunk/; revision=14939
2005-05-01 22:30:13 +00:00
Alex Ionescu
b099687f31 Byebye decrepit drivers
svn path=/trunk/; revision=14938
2005-05-01 22:29:18 +00:00
Alex Ionescu
24f249ab54 Remove incorrect change
svn path=/trunk/; revision=14936
2005-05-01 22:20:13 +00:00
Alex Ionescu
f3a824a347 remove accidental commit
svn path=/trunk/; revision=14935
2005-05-01 22:06:38 +00:00
Alex Ionescu
f38095c406 Remove incorrect change
svn path=/trunk/; revision=14934
2005-05-01 21:57:57 +00:00
Alex Ionescu
13c655b516 Do not signal event twice. Thanks to Gunnar for finding the bug
svn path=/trunk/; revision=14933
2005-05-01 21:51:57 +00:00
Martin Fuchs
8441c8115e merge ROS Shell without integrated explorer part into trunk
svn path=/trunk/; revision=14932
2005-05-01 21:22:13 +00:00
Thomas Bluemel
38055bc7ed DeleteFile should create a handle with DELETE access rights
svn path=/trunk/; revision=14931
2005-05-01 21:19:04 +00:00
Hervé Poussineau
9420d88967 SVN maintenance on new directories/files
svn path=/trunk/; revision=14929
2005-05-01 21:03:02 +00:00
Filip Navara
27fff4b070 Potapnik <jirka@studioprojekt.cz>
Czech translation of Registry Editor.

svn path=/trunk/; revision=14928
2005-05-01 20:53:29 +00:00
Filip Navara
a5584f9242 Potapnik <jirka@studioprojekt.cz>
Czech translation of VMWInst, Welcome and WinLogon (with one change by me).

svn path=/trunk/; revision=14927
2005-05-01 20:48:20 +00:00
Alex Ionescu
a70444fab1 i8042prt driver by tinus.
svn path=/trunk/; revision=14926
2005-05-01 20:38:29 +00:00
Magnus Olsen
82b7f31f61 reverted them back from ekohl change it create
alot of problem example chater are not being display right
if you switch reactos to another langues. 

svn path=/trunk/; revision=14925
2005-05-01 20:30:41 +00:00
Hervé Poussineau
fbad02ab35 Please give names to your PDOs. Should correct the boot on non-ACPI systems.
svn path=/trunk/; revision=14924
2005-05-01 20:20:59 +00:00
Martin Fuchs
7562cce403 more rosshell separations
svn path=/branches/lean-explorer/; revision=14923
2005-05-01 20:12:06 +00:00
Martin Fuchs
2547a93939 experimental ROS Shell without integrated explorer part
svn path=/branches/lean-explorer/; revision=14922
2005-05-01 20:02:30 +00:00
Alex Ionescu
aa1fd35178 Fix IopCloseFile: Use IRP_SYNC_API flag, use local stack event, get the right deviceobject if FO_DIRECT_DEVICE_OPEN is set, set IRP_CLOSE_OPERATION flag.
svn path=/trunk/; revision=14921
2005-05-01 19:46:51 +00:00
Alex Ionescu
f7695b0f53 Fix IopDeleteFile: Use IRP_SYNC_API flag, use local stack event, fix memory leak (Free completion context), dereference completion port, get the right deviceobject if FO_DIRECT_DEVICE_OPEN is set
svn path=/trunk/; revision=14920
2005-05-01 19:36:00 +00:00
Thomas Bluemel
722d9a84e4 fixed some warnings with gcc4 (mostly assignment differs in signedness warnings)
svn path=/trunk/; revision=14919
2005-05-01 19:30:06 +00:00
Magnus Olsen
832cfa1af7 Fix so it can compile agein
svn path=/trunk/; revision=14918
2005-05-01 18:23:08 +00:00
Magnus Olsen
62bf02deb7 Remove some hardcode strings
to En.rc

svn path=/trunk/; revision=14917
2005-05-01 17:32:09 +00:00
Magnus Olsen
7a4df43bd1 Move english langues to own .rc file (En.rc) so it be more easy to maintain all langues
svn path=/trunk/; revision=14916
2005-05-01 15:18:45 +00:00
Magnus Olsen
6ee6ce325b Move english langues to own .rc file (En.rc) so it be more easy to maintain all langues
svn path=/trunk/; revision=14915
2005-05-01 14:53:57 +00:00
Magnus Olsen
dfa965f933 Andreas Bjerkeholt: Swedish translation, proofread by David Nordenberg
svn path=/trunk/; revision=14914
2005-05-01 14:42:04 +00:00
Magnus Olsen
27da6bdc5d David Nordenberg: Swedish translation, proofread by Andreas Bjerkeholt
svn path=/trunk/; revision=14913
2005-05-01 14:39:01 +00:00
Eric Kohl
2603ff574e - Use fixed message buffer size.
- Don't translate command options.
- Only use _one_ message buffer per function.
- Fix indentation mess.

svn path=/trunk/; revision=14912
2005-05-01 13:58:30 +00:00
Martin Fuchs
ca6a77b739 restore the IDS_TERMINATE strings trashed by the commit in rev. 14769
Could please someone with a swedish environment check if the character encoding in codepage 1252 is correct?

svn path=/trunk/; revision=14911
2005-05-01 12:56:25 +00:00
Art Yerkes
196bd4d6aa Added HOST=mingw32-linux64 setting.
Fixed various small breakage for linux64 host.

svn path=/trunk/; revision=14910
2005-05-01 11:24:07 +00:00
Filip Navara
515d8e34ac tinus <o112w8r02@sneakemail.com>
Call the shell hook on showing/hiding window.

svn path=/trunk/; revision=14909
2005-05-01 11:15:11 +00:00
Hartmut Birr
ea130b3ba2 Made the loading of resource strings more unicode compatibly.
svn path=/trunk/; revision=14908
2005-05-01 10:28:58 +00:00
Hartmut Birr
7ce3991a5c Return the correct data length for FSCTL_PIPE_GET_STATE.
svn path=/trunk/; revision=14907
2005-05-01 09:53:19 +00:00
Hartmut Birr
65deeff1c1 Fixed the calculation of timeout values.
svn path=/trunk/; revision=14906
2005-05-01 09:51:06 +00:00
Hartmut Birr
d226234328 Print symbol names if DBG is defined.
svn path=/trunk/; revision=14905
2005-05-01 09:49:45 +00:00
Filip Navara
ecba11e64f Potapnik <jirka@studioprojekt.cz>
Czech translation of Task Manager statusbar messages.

svn path=/trunk/; revision=14904
2005-05-01 09:45:35 +00:00
Filip Navara
d13148cece Forgot to change the sprintf statements in revision 14902.
svn path=/trunk/; revision=14903
2005-05-01 09:29:20 +00:00
Filip Navara
3ce5a90320 Move the statusbar strings to resources.
svn path=/trunk/; revision=14902
2005-05-01 09:23:12 +00:00
Eric Kohl
ccbb2fb84b Use default locale until ReactOS fully suports all required locale functions!
svn path=/trunk/; revision=14901
2005-05-01 09:07:31 +00:00
Filip Navara
334e2d762a Fix coordinate mapping of unmodRect in DefWndDoSizeMove.
svn path=/trunk/; revision=14900
2005-05-01 08:25:33 +00:00
Filip Navara
0c23b97544 Set the message point/time for keyboard and hotkey messages.
svn path=/trunk/; revision=14899
2005-05-01 08:03:41 +00:00
Filip Navara
4913443e7e Change the default system menu icon in MDI_AugmentFrameMenu to application icon (based on patch by tinus <o112w8r02@sneakemail.com>).
svn path=/trunk/; revision=14898
2005-05-01 07:10:47 +00:00
Gé van Geldorp
dd735b0384 svn maintenance
svn path=/trunk/; revision=14897
2005-05-01 07:08:18 +00:00
Filip Navara
4fee912dfe - Merge changes to MDI_AugmentFrameMenu from Wine (fixes part of bug #606).
- Fix deleting of bitmap in MDI_RestoreFrameMenu.

svn path=/trunk/; revision=14896
2005-05-01 07:05:13 +00:00
Gé van Geldorp
d679231534 svn maintenance
svn path=/trunk/; revision=14895
2005-05-01 06:38:51 +00:00
Thomas Bluemel
6e1ab38590 fixed uninitialized variable warning
svn path=/trunk/; revision=14894
2005-04-30 22:45:58 +00:00
Eric Kohl
8f40adc5eb NtQueryInformationFile/NtSetInformationFile:
- Check for information class specific access rights.
- Clean-up some indentation mess.

svn path=/trunk/; revision=14893
2005-04-30 22:00:26 +00:00
Aleksey Bragin
be9f61a8b9 Fixed RegEnumValueA/W behaviour when output buffers are too small. This fixes 20+ tests from "advapi32_test registry" (now it has only 2 failures - but that's a reduced tests set!).
I beg my pardon for reformatting these two funcs and fixing bugs in one commit, I will do it in different commits in the future.

svn path=/trunk/; revision=14891
2005-04-30 21:11:34 +00:00
Magnus Olsen
acb9e6951d forget this file
thx <hpoussin>

svn path=/trunk/; revision=14890
2005-04-30 21:07:32 +00:00
Magnus Olsen
671be67001 Remove all hardcode string to En.rc
Hopplyfull all hardcoing string are gone now 


svn path=/trunk/; revision=14888
2005-04-30 19:00:46 +00:00
Filip Navara
a14761769e Potapnik <jirka@studioprojekt.cz>
Czech translation of Task Manager.

svn path=/trunk/; revision=14887
2005-04-30 18:55:44 +00:00
Filip Navara
7765507978 Potapnik <jirka@studioprojekt.cz>
Czech translations of appwiz, control, desk, intl, ncpa, sysdm and timedate.

svn path=/trunk/; revision=14885
2005-04-30 18:49:41 +00:00
Alex Ionescu
9ff89d4fd7 Add hack for ROS's weird behavior. Will investigate but this lets you boot for now
svn path=/trunk/; revision=14884
2005-04-30 17:43:18 +00:00
Hartmut Birr
d7ea77e414 Set the readed size within the irp.
svn path=/trunk/; revision=14883
2005-04-30 17:37:11 +00:00
Alex Ionescu
f04a0c4e50 Remove debug message
svn path=/trunk/; revision=14882
2005-04-30 17:30:05 +00:00
Magnus Olsen
7b4892749e Remove all hardcode string to En.rc
Hopplyfull all hardcoing string are gone now 
in cmd


svn path=/trunk/; revision=14878
2005-04-30 16:21:06 +00:00
Magnus Olsen
f1dad288cd Remove all hardcode string to En.rc
for all file 

This changes are only for  ver.c
Remove hardcode dev list to cmd.rc

update mailing adress for bug report to ros-dev@reactos.com
sugestion by GvG 

I did leave copyright year hardcode in ver.c


svn path=/trunk/; revision=14877
2005-04-30 15:46:59 +00:00
Hervé Poussineau
5c87a8787a Register GUID_DEVINTERFACE_COMPORT for serial devices
Register GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR for serenum devices
Fix some comments

svn path=/trunk/; revision=14876
2005-04-30 15:04:10 +00:00
Hervé Poussineau
8293cc1006 Patch by Tinus_: Check for right error code returned by ZwOpenSymbolicLinkObject
svn path=/trunk/; revision=14875
2005-04-30 14:53:41 +00:00
Hervé Poussineau
71486fdc01 Don't double define GUID_DEVICE_INTERFACE_ARRIVAL and GUID_DEVICE_INTERFACE_REMOVAL in include/ntos/ntpnp.h and w32api/include/ddk/wdmguid.h
svn path=/trunk/; revision=14874
2005-04-30 14:36:05 +00:00
Gé van Geldorp
c15811bc14 Change BootDrive/BootPartition examples to BootPath
svn path=/trunk/; revision=14873
2005-04-30 14:15:38 +00:00
Hervé Poussineau
08b9a8878b I forgot to dereference FileObject in IoSetDeviceInterfaceState
svn path=/trunk/; revision=14872
2005-04-30 13:53:39 +00:00
Magnus Olsen
6510ad1387 Remove all hardcode string to En.rc
svn path=/trunk/; revision=14871
2005-04-30 13:35:52 +00:00
Magnus Olsen
e705463f4a Remove all hardcode string to En.rc
svn path=/trunk/; revision=14870
2005-04-30 13:13:36 +00:00
Magnus Olsen
04dd142850 Remove all hardcode string to En.rc
svn path=/trunk/; revision=14869
2005-04-30 12:36:36 +00:00
Magnus Olsen
39458d7a85 Remove all hardcode string to En.rc
svn path=/trunk/; revision=14868
2005-04-30 11:53:15 +00:00
Magnus Olsen
fcedc0bf07 Remove all hardcode string to En.rc
from misc.c, move.c pause.c, prompt.c

svn path=/trunk/; revision=14867
2005-04-30 11:16:47 +00:00
Hervé Poussineau
b8bccfb8b4 Implement IoRegisterPlugPlayNotification, IoUnregisterPlugPlayNotification
Implement IoSetDeviceInterfaceState
Fix IoRegisterDeviceInterface
Add prototype for ExFreePoolWithTag

namespc.c: change STATUS_UNSUCCESSFUL to STATUS_OBJECT_NAME_INVALID

SVN maintenance in ntoskrnl/kd/wrappers/

svn path=/trunk/; revision=14866
2005-04-30 09:39:09 +00:00
Filip Navara
847279d106 Denzil <d3nzil@gmail.com>
Czech translation of Package Manager (with minor corrections by myself).

svn path=/trunk/; revision=14865
2005-04-30 05:08:13 +00:00
Filip Navara
eddbd1a4e3 tinus <o112w8r02@sneakemail.com>
Change the backtrace command to show current EIP too.

svn path=/trunk/; revision=14864
2005-04-30 04:43:17 +00:00
Magnus Olsen
6985385b7d Remove all hardcode string to En.rc
from locale.c

svn path=/trunk/; revision=14863
2005-04-29 19:49:50 +00:00
Thomas Bluemel
827c16db5f - added stubs for NtSuspendProcess and NtResumeProcess
- the ProcessDebugPort information class is read-only on NT5.1+

svn path=/trunk/; revision=14862
2005-04-29 16:41:52 +00:00
Alex Ionescu
aff5e61f45 IRP Completion Fixes for 2nd-Stage:
- Free ALL Mdls, not just the first
- Don't copy buffered data just because the Device Object is buffered. Check if the IRP is.
- Don't handle MajorFunctions differenty, use flags which are now correctly set in order to determine course of action.
- Free memory by using flag.
- Don't remove IRP from Thread List too soon.
- Don't use FileObject fields after dereferencing it.
- Don't call IO Completion if there is already an APC routine.
- Signal FileObject/UserEvent properly depending on cases.
- Don't call UserAPC and set events like before if the IRP actually failed.

svn path=/trunk/; revision=14861
2005-04-29 14:38:05 +00:00
Aleksey Bragin
11e90a8e41 Import from WINE 25.04.05 (just because we have old version sitting in our SVN, which shows failures even on WinXP).
Now "advapi32_test registry" has 0 failures on Windows XP Pro. (and generally should have 0 failures under ROS too...)

svn path=/trunk/; revision=14860
2005-04-29 11:25:55 +00:00
Hervé Poussineau
aa182938a2 Remove debug message
svn path=/trunk/; revision=14859
2005-04-29 07:35:01 +00:00
Alex Ionescu
19a014905e And look who made a dumber mistake ;). Thanks WaxDragon
svn path=/trunk/; revision=14858
2005-04-29 02:13:42 +00:00
Magnus Olsen
b35cd289ca Swedish translations by Kris Engeman
svn path=/trunk/; revision=14857
2005-04-28 23:17:13 +00:00
Magnus Olsen
2a0755fbb0 Translate by Andreas Bjerkeholt (harteex@gmail.com)
svn path=/trunk/; revision=14856
2005-04-28 23:15:26 +00:00
Hervé Poussineau
cc5a10001c SVN maintenance:
Add svn:eol-style = native
Add svn:keywords = author date id revision

svn path=/trunk/; revision=14855
2005-04-28 23:14:54 +00:00
Magnus Olsen
32d6f2faa4 David Nordenberg: Swedish translation
svn path=/trunk/; revision=14854
2005-04-28 23:11:04 +00:00
Alex Ionescu
e606cb3718 Remove rant. H&E are very competent developers and made a typical bug that anyone could've made. I was just pissed for having lost an hour finding it ;)
svn path=/trunk/; revision=14853
2005-04-28 22:39:50 +00:00
Magnus Olsen
0dd12c923f Remove all hardcode string to En.rc
from memmory.c

svn path=/trunk/; revision=14852
2005-04-28 22:05:26 +00:00
Hervé Poussineau
1e92d6dfb5 Don't pass a NULL pointer as offset when creating a IRP_MJ_READ irp.
svn path=/trunk/; revision=14851
2005-04-28 21:56:36 +00:00
Magnus Olsen
cadb55139f Remove all hardcode string to En.rc
from free.c, goto.c, if.c label.c 

svn path=/trunk/; revision=14850
2005-04-28 21:17:07 +00:00
Aleksey Bragin
23c9abb0b3 Fix (registry.c:325, dated 20050425) test failure. Description: Added RegOpenKeyA/W check for input param (if it's NULL pointer, returning error)
svn path=/trunk/; revision=14849
2005-04-28 20:26:06 +00:00
Magnus Olsen
492c96c8f9 change _T((LPTSTR)szMsg)) to (LPTSTR)szMsg)
thanks royce3 he did see my small mistage

Remove all hardcode string to En.rc 
from for.c


svn path=/trunk/; revision=14848
2005-04-28 20:00:37 +00:00
Magnus Olsen
5571662474 Remove all hardcode string to En.rc
from echo.c and error.c

svn path=/trunk/; revision=14847
2005-04-28 17:44:34 +00:00
Aleksey Bragin
9e858b535b Added Nls\Locale registry tree, it corresponds to locales I imported from WINE a few revisions ago.
svn path=/trunk/; revision=14846
2005-04-28 14:48:28 +00:00
Magnus Olsen
b6ef59c124 Fix all these warings
libnurbs/nurbtess/sampleComp.cc: In function `void sampleCompLeft(Real*, Real*, vertexArray*, Int, Int, vertexArray*, Int, Int, gridBoundaryChain*, Int, Int, Int, Int, Int, Int, primStream*)':
libnurbs/nurbtess/sampleComp.cc:162: warning: 'gridMidIndex1' might be used uninitialized in this function
libnurbs/nurbtess/sampleComp.cc:162: warning: 'gridMidIndex2' might be used uninitialized in this function

libnurbs/nurbtess/sampleCompRight.cc: In function `void sampleCompRight(Real*, Real*, vertexArray*, Int, Int, vertexArray*, Int, Int, gridBoundaryChain*, Int, Int, Int, Int, Int, Int, primStream*)':
libnurbs/nurbtess/sampleCompRight.cc:75: warning: 'gridMidIndex1' might be used uninitialized in this function
libnurbs/nurbtess/sampleCompRight.cc:75: warning: 'gridMidIndex2' might be used uninitialized in this function

svn path=/trunk/; revision=14845
2005-04-28 13:55:35 +00:00
Aleksey Bragin
4e01611563 Imported locales information from WINE. Sorry it isn't done the "right way" (store all info in locales.nls as WinXP does), but for now I think this way will do.
Also some locales aren't imported because their info contains unicode characters, and I didn't want to switch kernel32 from windres to wrc.

svn path=/trunk/; revision=14844
2005-04-28 13:54:19 +00:00
Aleksey Bragin
af4afa4f65 Imported LANG_ and SUBLANG_ defines from WINE
svn path=/trunk/; revision=14843
2005-04-28 13:50:32 +00:00
Magnus Olsen
4a2a65e916 Fix all these waring by initaielize them where they are declare
libutil/quad.c: In function `gluPartialDisk':
libutil/quad.c:451: warning: 'texLow' might be used uninitialized in this function
libutil/quad.c:451: warning: 'texHigh' might be used uninitialized in this function
libutil/quad.c: In function `gluSphere':
libutil/quad.c:720: warning: 'sintemp2' might be used uninitialized in this function
libutil/quad.c:720: warning: 'sintemp3' might be used uninitialized in this function
libutil/quad.c:720: warning: 'sintemp4' might be used uninitialized in this function
libutil/quad.c:721: warning: 'costemp2' might be used uninitialized in this function
libutil/quad.c:721: warning: 'costemp3' might be used uninitialized in this function
libutil/quad.c:721: warning: 'costemp4' might be used uninitialized in this function

svn path=/trunk/; revision=14842
2005-04-28 13:38:30 +00:00
Magnus Olsen
dada212f2a fix this waring
libutil/mipmap.c: In function `gluBuild3DMipmaps':
libutil/mipmap.c:7382: warning: 'proxyTarget' might be used uninitialized in this function
by initialized the value when it declare


svn path=/trunk/; revision=14841
2005-04-28 13:19:23 +00:00
Magnus Olsen
fadd959c12 fix waring with insiate iter
libutil/mipmap.c: In function `gluScaleImage':
libutil/mipmap.c:5105: warning: 'iter' might be used uninitialized in this function

remve outindex it is not being use at all 
libutil/mipmap.c: In function `scaleInternalPackedPixel':
libutil/mipmap.c:5990: warning: 'outindex' might be used uninitialized in this function


svn path=/trunk/; revision=14840
2005-04-28 13:01:57 +00:00
Steven Edwards
6184590544 we have two copies of a better calc floating around
svn path=/trunk/; revision=14839
2005-04-28 03:37:01 +00:00
Alex Ionescu
f43691583f My mistake
svn path=/trunk/; revision=14838
2005-04-28 00:57:35 +00:00
Alex Ionescu
defaccea55 IO Manager Cleanup continues:
- Removed many extra files that expanded the I/O Manager too much. We usually stick with the standard of
      one object/class per file, like io/device.c or io/controller.c, so it was very confusing to have some
      objects split up in 5 or 6 different files, some containing only one api. Additionally, even a third
      system was used, were objects were bunched up together by class. This mess was so bad that NtCreateFile,
      IopCreateFile, IoCreateFile, IopDeleteFile, NtDeleteFile and NtWriteFile were in 5 different files (as an
      example).
    - Cleaned up some IRP code and fixed a couple of bugs, mainly:
        - Write I/O Type in IRP
        - Write proper IRP Flags where they shoudl be used (Will help for completing requests when i clean up that code)
        - Do *NOT* zero out buffers or data that shouldn't be zeroed. Scsiport actually dependen on this incorrect
          behaviour. Code should never depend on a buffer being zeroed!
        - Remove a lot of duplicated code and helper/alternate functions that weren't really useful.
        - Free MDL and IRP on some failures where we didn't
     - Alphabetized some of the large io files for easier lookup of functions. This and the deletions have resulted
       in a completely bloated diff file. I will provide a cleaned up diff on request by manually downloading the
       old revision and copy/pasting the new code directly above it. The functions which we touched are: 
           - IoAllocateIrp
           - IoBuild[A]SyncronousFsdRequest
           - IoBuildDeviceIoControlRequest
           - IoInitializeIrp
           - IoPageRead, IoSynchronousPageWrite

svn path=/trunk/; revision=14837
2005-04-28 00:54:59 +00:00
Hartmut Birr
612461644d Fixed the check for a created first thread.
svn path=/trunk/; revision=14836
2005-04-27 21:57:24 +00:00
Hartmut Birr
a6d944ecfc Close only the Nls directory handle if the directory was created.
svn path=/trunk/; revision=14835
2005-04-27 21:55:02 +00:00
Hartmut Birr
5e1d995563 Fixed _SEH2_END.
svn path=/trunk/; revision=14834
2005-04-27 21:51:55 +00:00
Hartmut Birr
2c12af40a1 Guarded some calls to handle functions with KeEnterCriticalRegion/KeLeaveCriticalRegion in PsDeleteCidHandle.
svn path=/trunk/; revision=14833
2005-04-27 21:47:34 +00:00
Hartmut Birr
d38a2745a9 Made the physical memory section permanent.
svn path=/trunk/; revision=14832
2005-04-27 21:44:27 +00:00
Hartmut Birr
68f8b9f89b Reinitialized the palette entries after setting the video mode in DrvAssertMode.
svn path=/trunk/; revision=14831
2005-04-27 21:10:44 +00:00
Aleksey Bragin
06ff525737 Added language 0419 (russian) into NLS\Language
svn path=/trunk/; revision=14830
2005-04-27 19:46:41 +00:00
Art Yerkes
2e9d113d86 turned off DEBUG output (thanks to gge for pointing it out).
svn path=/trunk/; revision=14829
2005-04-27 19:04:20 +00:00
Magnus Olsen
f00d82e494 remove ddalphablt worng functions
it should have been NtGdiDdAddAlphaBlt

svn path=/trunk/; revision=14828
2005-04-26 22:28:24 +00:00
Magnus Olsen
3bd5362791 implement NtGdiDdBlt and NtGdiDdAlphaBlt
NtGdiDdAlphaBlt are not supportet by microsoft 
so we report unsupport directx function 


svn path=/trunk/; revision=14827
2005-04-26 22:02:32 +00:00
Aleksey Bragin
dd182c1076 A few locales entries added, though we have currently only 4 locales imported from wine (france, eng, enu, german)
svn path=/trunk/; revision=14826
2005-04-26 21:26:06 +00:00
Aleksey Bragin
037d9d7e8b More DPRINTs added for better tracing of locale-related calls, but NDEBUG is defined.
svn path=/trunk/; revision=14825
2005-04-26 21:23:43 +00:00
Aleksey Bragin
23e1c587a2 Minor changes into a way locales are get and listed
svn path=/trunk/; revision=14824
2005-04-26 21:21:32 +00:00
Gé van Geldorp
c5106fcc0a Sync to Wine-20050419:
Mike McCormack <mike@codeweavers.com>
- Load and display bitmaps in the dialogs.
- Make sure there's only one place we allocate dialog controls.
- Rename dupstrW to strdupW, and remove duplicate definition.
- Move definition of string manipulation functions to msipriv.h.
- Split out database functions, remove dependence on wine/unicode.h.
- Fix loading of the summary information.
- test cases for summary information
- fix memory leaks
- Implement summary information loading and saving.
- Declare MsiExportDatabase* in the spec file, and fix a typo.
- Replace instances of HeapAlloc/MultiByteToWideChar with the internally
  defined strdupAtoW.
- Use strdup, implement MsiDatabaseImportA.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Peter Berg Larsen <pebl@math.ku.dk>
- Janitorial: Get rid of strncpy/strncpyW.
- Remove 2 identicals calls to strlenW.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Spanish translations updated.
Aric Stewart <aric@codeweavers.com>
- Implement Publish Components in order for MsiGetQualifiedComponent
  apis to work. Also implement MsiGetQualifiedComponent, or at least some
  of the functionality as it is supposed to install stuff if it is
  absent, which it does not do yet.
- Make sure the GUID of the typelib we are registering matches the guid
  requested from MSI. If not search the given typelib file to find the
  typelib requested to register.
- If running in UI mode, then display the UI mode dialogs at the end of
  the installs.
Steven Edwards <steven_ed4153@yahoo.com>
- Avoid using ver.h in favor of winver.h.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Hans Leidekker <hans@it.vu.nl>
- Dutch resource translation.
Marcus Meissner <meissner@suse.de>
- Fixed MsiDatabaseImportA, MsiDatabaseImportW, and
  MsiCreateAndVerifyInstallerDirectory stub parameter counts.
Juan Lang <juan_lang@yahoo.com>
- Log missing environment vars for easier debugging.

svn path=/trunk/; revision=14823
2005-04-26 20:39:02 +00:00
Gé van Geldorp
f668ceb14f Sync to Wine-20050419:
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Spanish translations updated.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.

svn path=/trunk/; revision=14822
2005-04-26 20:05:25 +00:00
Gé van Geldorp
6119adfe22 Sync to Wine-20050419:
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
- SBSP_ABSOLUTE is 0 so we cannot do (wFlags & SBSP_ABSOLUTE).
- Add COMDLG32_DumpSBSPFlags().
Eric Pouech <pouech-eric@wanadoo.fr>
- Added proper definition for PRINTDLGEX[AW] structures.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Juan Lang <juan_lang@yahoo.com>
- Change a fixme to a warn, and use W version of call.
Peter Berg Larsen <pebl@math.ku.dk>
- Replace strncpy with memcpy or lstrcpyn.
- Janitorial: Get rid of strncpy/strncpyW.

svn path=/trunk/; revision=14821
2005-04-26 19:18:13 +00:00
Hartmut Birr
c292d7ed88 - Preinitialise the com port infos with default values.
- Set the baud rate also in SerialPortInfo.

svn path=/trunk/; revision=14820
2005-04-26 19:06:19 +00:00
Gé van Geldorp
b55b368e31 Re-apply 14698 - 14762 and fix resulting problem
svn path=/trunk/; revision=14819
2005-04-26 18:18:36 +00:00
Magnus Olsen
9b91fad21c Implement NtGdiDdCanCreateSurface
not tested 

svn path=/trunk/; revision=14818
2005-04-26 17:19:06 +00:00
Hartmut Birr
c087372392 - Used SysProcessorTimeInfo to calculate the idle time.
- Fixed the allocation of SysProcessorTimeInfo.  
- Used the process creation time as second unique id.


svn path=/trunk/; revision=14817
2005-04-26 16:28:38 +00:00
Alex Ionescu
946594bdc0 Implement IoRaiseHardError, combine error stuff, fix hideously wrong implementatin of Controller Objects.
svn path=/trunk/; revision=14816
2005-04-26 14:51:18 +00:00
Alex Ionescu
c6c78c3133 Fixedd CTM for sedwards. happy birthday to me
svn path=/trunk/; revision=14815
2005-04-26 13:17:44 +00:00
Alex Ionescu
d54cf3af82 Enable flags only for 3.4.3, should fix the build for people with versions below. Disabled on 4.0 since they are automatic
svn path=/trunk/; revision=14814
2005-04-26 12:35:32 +00:00
Thomas Bluemel
72612ded64 don't request write access in NtReadVirtualMemory, this should fix the listdlls.exe issues
svn path=/trunk/; revision=14813
2005-04-26 09:40:30 +00:00
Art Yerkes
869e1792b8 Fixes by WaxDragon:
- Implement get* integer reading.
- Properly implement ipv4addrs (validates a set of IPv4 addresses)
- Limit returned DNS servers to 1 until we fix iphlpapi.

svn path=/trunk/; revision=14812
2005-04-26 07:11:02 +00:00
Alex Ionescu
940803cd14 Do not strip if KDBG is used
svn path=/trunk/; revision=14811
2005-04-26 05:13:49 +00:00
Alex Ionescu
ae45230c20 Change optimization settings for retail builds. Change to -Os for smaller executables which are not slower, and enable more advanced optimizations. funitatatime is already included by default in GCC 4.0. Strip debug info from retail builds, since we don't parse the symbols anyways. I hope these options don't break anything, they don't for me; Debugging is unaffected.
svn path=/trunk/; revision=14810
2005-04-26 05:10:58 +00:00
Alex Ionescu
da26306086 Fix compilation with optimizations
svn path=/trunk/; revision=14809
2005-04-26 04:58:32 +00:00
Hartmut Birr
02202bd8b1 Fixed the initialising of bochs debug.
svn path=/trunk/; revision=14808
2005-04-25 20:35:37 +00:00
Alex Ionescu
b92778d49a Remove excess header
svn path=/trunk/; revision=14807
2005-04-25 19:43:50 +00:00
Alex Ionescu
d06c1ef5e9 Remove dbg.h and move it to kd.h, it was getting confusing to have so many debug files. Also fixes hal to compile
svn path=/trunk/; revision=14806
2005-04-25 19:42:48 +00:00
Alex Ionescu
a3bf890534 Merge in wrappers with DBG setting as requested
svn path=/trunk/; revision=14805
2005-04-25 18:31:20 +00:00
Alex Ionescu
a893ce48dd Fix compilation problem..
svn path=/trunk/; revision=14804
2005-04-25 18:29:16 +00:00
Hartmut Birr
7519345381 Replaced a dirty hack by another.
svn path=/trunk/; revision=14803
2005-04-25 17:57:57 +00:00
Alex Ionescu
6f666f0ad4 Simplify and correct KiDebugService
svn path=/trunk/; revision=14802
2005-04-25 16:17:35 +00:00
Alex Ionescu
3ebd40dd0f Add GDB = 1 to makefile to compile-in the GDB Wrapper. These options will be better manged with rbuild
svn path=/trunk/; revision=14801
2005-04-25 15:20:15 +00:00
Alex Ionescu
6458f12f54 Added KiDebugService. Will optimize soon to use common Exit code
svn path=/trunk/; revision=14800
2005-04-25 15:02:11 +00:00
Alex Ionescu
e160c0fb26 KD System Rewrite:
- Totally dynamic based on the principle of Native Providers built-in the Kernel (like Screen, 
      FileLog and Serial) and a pluggable Wrapper which is optionally compiled (Bochs, GDB)
    - Nothing changed in KDBG, except for that its settings (KDSERIAL/KDNOECHO) are now stored in
      KdbDebugState instead.
    - Wrappers are currently built uncondtionally. With rbuild, I'll make them easily removable.
    - Debug Log code simplified greatly, sped up and now supports printing even the first boot messages,
      which wasn't supported before.
    - Removed most of KDBG compile-time settings, ones which are needed are in include/dbg as macros now.
    - Left in some kdbg init code and break code, but it could be made to be used as a 'wrapper' for those
      functions. I will do it later.
    - Made a hack for KdpEnterDebuggerException..it seems to be called differently and at different times
      for GDB vs KDBG and I couldn't unite them.
    - KdpServiceDispatcher now does both the documented and ros-internal debug functions and will eventually
      be called through INT2D from keyboard.sys instead of as an API.

All in all, this patch makes KD  separated from KDBG and creates a pluggable architecture for creating future wrappers that don't require changing tons of code in the future. It improves the debug
log by printing even the earliest debug messages to it and it removes many of the manual ifdef(KDBG) but making them automatic though a single macro file. It makes extra debugging functionality optional and it
allows removal of a private API from our exports.

svn path=/trunk/; revision=14799
2005-04-25 14:44:48 +00:00
Gé van Geldorp
753a3c0e99 Sync to Wine-20050419:
Juan Lang <juan_lang@yahoo.com>
- Always initialize header file name, to prevent "#include (null)"
  statements in generated files.
- Put space between include directive and include file.
- Add proxy/stub options to widl man page.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Add support for single in idl files.
- Keep types sorted in alphabetical order.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.

svn path=/trunk/; revision=14798
2005-04-25 10:58:34 +00:00
Gé van Geldorp
2b5f3c76a1 Sync to Wine-20050419:
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Michael Lin <mlin@corvu.com.au>
- Change menu item options to use optional comma.

svn path=/trunk/; revision=14797
2005-04-25 09:12:35 +00:00
Gé van Geldorp
c782c3c14d Sync to Wine-20040419:
Jon Griffiths <jon_p_griffiths@yahoo.com>
- -Wunsigned fixes.
Alexandre Julliard <julliard@winehq.org>
- Use the correct file name in the "generated automatically" comments.
- Don't crash on xrealloc(0) (found by Jon Griffiths).
Marcus Meissner <meissner@suse.de>
- Use correct movw instead of movl when handling segment registers.

svn path=/trunk/; revision=14796
2005-04-25 08:26:29 +00:00
Gé van Geldorp
1900553907 SVN maintenance
svn path=/trunk/; revision=14794
2005-04-25 07:13:04 +00:00
Thomas Bluemel
a075aaef57 add missing typecast
svn path=/trunk/; revision=14793
2005-04-24 20:12:14 +00:00
Eric Kohl
4fd3eee227 Implement the time format page for the regional settings control panel.
svn path=/trunk/; revision=14792
2005-04-24 14:49:56 +00:00
Maarten Bosma
63b33dd9b3 PackageManager: HTML Log
svn path=/trunk/; revision=14791
2005-04-24 10:37:17 +00:00
Alex Ionescu
88d6fe5cb4 Don't use hack for trap frames anymore, read TempEsp and TempSegSs for kernel-mode traps during debugging.
svn path=/trunk/; revision=14790
2005-04-23 20:02:39 +00:00
Alex Ionescu
5673eb73b9 Use fake frame in KDBG mode, not DBG
svn path=/trunk/; revision=14789
2005-04-23 19:23:00 +00:00
Alex Ionescu
8057554d01 forgot to delete this one too
svn path=/trunk/; revision=14787
2005-04-23 18:17:11 +00:00
Alex Ionescu
a1151864cc Share compiler-generated asm exports between ntdll and ntoskrnl (stuff like aullshr, alldiv, etc
svn path=/trunk/; revision=14785
2005-04-23 18:15:39 +00:00
Alex Ionescu
1d0c612395 Remove MDA support
svn path=/trunk/; revision=14784
2005-04-23 18:00:59 +00:00
Alex Ionescu
9a7799d8b8 Delete cruft
svn path=/trunk/; revision=14783
2005-04-23 17:56:10 +00:00
Alex Ionescu
7f7e3e1cf6 Add more detailed comment about ThreadListEntry so people don't get confused liek I did
svn path=/trunk/; revision=14779
2005-04-23 16:23:57 +00:00
Alex Ionescu
6c66ab6c64 Move removing process from active list to PspDeleteProcess instead of PspExitProcess. This way we don't have to do it manually after ObInsertObject failure in PspCreateProces. Also, set the Process Query Time at the end of Process Creation, since the process doesn't really exist before then. Thanks to Hartmut for finding the bugs.
svn path=/trunk/; revision=14778
2005-04-23 16:17:27 +00:00
Alex Ionescu
e60561fb17 Move removing process from active list to PspDeleteProcess instead of PspExitProcess. This way we don't have to do it manually after ObInsertObject failure in PspCreateProces. Also, set the Process Query Time at the end of Process Creation, since the process doesn't really exist before then. Thanks to Hartmut for finding the bus.
svn path=/trunk/; revision=14777
2005-04-23 16:16:59 +00:00
Hartmut Birr
efa3efe5bb Fixed restoring of registers.
svn path=/trunk/; revision=14776
2005-04-23 16:09:06 +00:00
Magnus Olsen
b331ee2104 Swedish translation
Andreas Bjerkeholt (harteex@gmail.com) 

svn path=/trunk/; revision=14775
2005-04-23 14:16:48 +00:00
Magnus Olsen
18ca7ef010 Swedish translation by Kris Engeman
irc : nick "Wacko"

svn path=/trunk/; revision=14774
2005-04-23 14:14:16 +00:00
Magnus Olsen
e3f6aacd83 forget use lates winfile.rc
svn path=/trunk/; revision=14773
2005-04-23 14:09:44 +00:00
Magnus Olsen
7a1c9f6f2d Fix a bug in sv.rc so it can compile
and it is working now in ros


svn path=/trunk/; revision=14772
2005-04-23 14:01:43 +00:00
Magnus Olsen
a893ac134a reverit swedish translation
svn path=/trunk/; revision=14771
2005-04-23 13:42:15 +00:00
Magnus Olsen
aeb0176d0e David Nordenberg: Swedish translation, proofread by Andreas Bjerkeholt
svn path=/trunk/; revision=14770
2005-04-23 13:39:53 +00:00
Magnus Olsen
b37e882082 2005-04-07 For swedish translations in explorer
* David Nordenberg: Fixed & on two idetical letters and switched to codepage 1252

svn path=/trunk/; revision=14769
2005-04-23 13:36:06 +00:00
Hartmut Birr
8235965b9e Fixed the smp build.
svn path=/trunk/; revision=14768
2005-04-23 12:44:42 +00:00
Hartmut Birr
d00288c263 - Initialized the process create time.
- Fixed some minor bugs.

svn path=/trunk/; revision=14767
2005-04-23 10:18:43 +00:00
Hartmut Birr
4db3d406aa Removed a wrong additional reference in IoCreateDevice.
svn path=/trunk/; revision=14766
2005-04-23 10:16:18 +00:00
Gé van Geldorp
ed7c0b9e7c Revert freeldr back to revision 14697
svn path=/trunk/; revision=14765
2005-04-23 10:15:49 +00:00
Hartmut Birr
493afd1118 Do not remove an entry from the parent for twice.
svn path=/trunk/; revision=14764
2005-04-23 10:14:29 +00:00
Hartmut Birr
ff121124b1 Remove the thread from the list when terminating.
svn path=/trunk/; revision=14763
2005-04-23 10:11:37 +00:00
Alex Ionescu
3ff5700950 And these should've been added...
svn path=/trunk/; revision=14762
2005-04-23 06:45:56 +00:00
Alex Ionescu
9732c7adea Bug in previous commit...these should've been deleted
svn path=/trunk/; revision=14761
2005-04-23 06:43:39 +00:00
Alex Ionescu
665e646216 Small Debugging Services re-arrangement. /dbgk created for User-Mode debugging and Native Debug Objects (implemented an experimental NtCreateDebugObject. Untested and doesn't work since the DbgkObjectType isn't created yet. Added dbgk.h with the basic structures for now. Removed /dbg and split up code in ex/debug.c for executive and rtl/debug.c for RunTime Library Debug calls. Kdbg now dedicated in /kdbg.
svn path=/trunk/; revision=14760
2005-04-23 06:41:25 +00:00
Art Yerkes
45ae6da0c6 Fixes a problem reported by WaxDragon when acquiring the nameserver address
from DHCP.  This needs to be rechecked but seems harmless.

svn path=/trunk/; revision=14759
2005-04-23 05:43:35 +00:00
Alex Ionescu
98f1613a52 Implement KiServiceExit2 which restores debug registers and exits with IRET, used during user-mode return without a syscall
svn path=/trunk/; revision=14758
2005-04-23 05:00:10 +00:00
Alex Ionescu
e43b4d5c1a Terminate System Thread after execution...forgot to add this for some reason.Thanks to WaxDragon for reporting it
svn path=/trunk/; revision=14756
2005-04-23 04:19:35 +00:00
Alex Ionescu
1928c25d73 Add KDBG debugging hack from old code and convert it to fit new one. Not enabled yet because it underflows the stack after a while (researching why). Also complete KeContextToTrapFrame and have Ke386InitThreadWithContext call it to handle creating the Initial Trap Frame
svn path=/trunk/; revision=14754
2005-04-23 04:12:26 +00:00
Martin Fuchs
0341aa671d protect system image list
svn path=/branches/lean-explorer/; revision=14473
2005-04-03 12:14:30 +00:00
Martin Fuchs
89e885955c show logoff dialog in lean explorer
svn path=/branches/lean-explorer/; revision=14470
2005-04-03 11:38:08 +00:00
Martin Fuchs
00bf273c43 merge from trunk: enable multiline tooltips
svn path=/branches/lean-explorer/; revision=14437
2005-04-02 11:09:39 +00:00
Martin Fuchs
6369325505 merge from trunk: launch shell DDE server
svn path=/branches/lean-explorer/; revision=14436
2005-04-02 11:00:58 +00:00
Martin Fuchs
f2cca3cd47 merge from trunk: hide login screen to make the login on XP faster
svn path=/branches/lean-explorer/; revision=14435
2005-04-02 10:59:49 +00:00
Martin Fuchs
ddef57fcd4 owner drawn context menus for lean explorer version
svn path=/branches/lean-explorer/; revision=13440
2005-02-06 14:03:25 +00:00
Martin Fuchs
49f4d8010f Handle "." and ".." as special direcory names and move them at the very first beginning of directory listings
svn path=/branches/lean-explorer/; revision=10889
2004-09-17 16:56:47 +00:00
Martin Fuchs
62f920f0c7 display lean explorer version in about dialog
svn path=/branches/lean-explorer/; revision=10573
2004-08-16 19:12:31 +00:00
Martin Fuchs
6f15da7d91 fix clean target for new standard makefiles
svn path=/branches/lean-explorer/; revision=10399
2004-08-04 21:42:33 +00:00
Martin Fuchs
a3a634bd46 fix clean target for new standard makefiles
svn path=/branches/lean-explorer/; revision=10398
2004-08-04 21:42:33 +00:00
Steven Edwards
6c3634add7 Fix building the lean explorer
svn path=/branches/lean-explorer/; revision=10391
2004-08-04 14:21:52 +00:00
Martin Fuchs
cdf16e21fe get version number to display from RES_STR_PRODUCT_VERSION
svn path=/branches/lean-explorer/; revision=10373
2004-08-03 19:43:45 +00:00
Martin Fuchs
91aa9f2a2a get version number to display from RES_STR_PRODUCT_VERSION
svn path=/branches/lean-explorer/; revision=10372
2004-08-03 19:43:45 +00:00
Martin Fuchs
3010e741cd get version number to display from RES_STR_PRODUCT_VERSION
svn path=/branches/lean-explorer/; revision=10371
2004-08-03 19:43:45 +00:00
Martin Fuchs
b4b7900286 implement IServiceprovider interface
svn path=/branches/lean-explorer/; revision=10335
2004-08-01 09:26:27 +00:00
Martin Fuchs
94b18145e8 implement IServiceprovider interface
svn path=/branches/lean-explorer/; revision=10334
2004-08-01 09:26:27 +00:00
Martin Fuchs
3419d837b4 use same startmenu entries height as MS explorer
svn path=/branches/lean-explorer/; revision=10323
2004-07-31 08:53:19 +00:00
Martin Fuchs
aaaf91d697 precompiled header support for the lean version of explorer
svn path=/branches/lean-explorer/; revision=10293
2004-07-26 18:41:36 +00:00
Martin Fuchs
ef27e16221 eliminate useless GCC warning
svn path=/branches/lean-explorer/; revision=10282
2004-07-24 20:15:47 +00:00
Martin Fuchs
a5b6fb6224 recalculate start menu root position for any call
svn path=/branches/lean-explorer/; revision=10280
2004-07-24 20:09:31 +00:00
The ReactOS Team
953956d508 This commit was manufactured by cvs2svn to create branch
'lean-explorer'.

svn path=/branches/lean-explorer/; revision=10195
2004-07-18 13:03:06 +00:00
Martin Fuchs
64e7f90242 fix root path for folders opened from the desktop
svn path=/branches/lean-explorer/; revision=10136
2004-07-15 21:19:05 +00:00
Martin Fuchs
bb344f6544 ignore unexpected exceptions while extracting icons
svn path=/branches/lean-explorer/; revision=10134
2004-07-15 21:04:20 +00:00
Martin Fuchs
e92def1b07 scroll mode for very long start menus in lean explorer branch
svn path=/branches/lean-explorer/; revision=10131
2004-07-15 20:20:39 +00:00
The ReactOS Team
9dd56c39d7 This commit was manufactured by cvs2svn to create branch
'lean-explorer'.

svn path=/branches/lean-explorer/; revision=10130
2004-07-15 20:20:39 +00:00
Martin Fuchs
89c345f0f6 remove useless comment
svn path=/branches/lean-explorer/; revision=9772
2004-06-20 19:28:54 +00:00
Martin Fuchs
d80f04c021 adjustments for GCC 3.4
svn path=/branches/lean-explorer/; revision=9710
2004-06-18 17:05:44 +00:00
Martin Fuchs
6936b33b44 fix Entry::read_tree() and get_next_path_component()
svn path=/branches/lean-explorer/; revision=9104
2004-04-12 15:55:36 +00:00
Steven Edwards
61f0b4504d I hope I didnt mess up committing this to the lean-branch.....
Add Windows Explorer menus (File, Edit, View, Tools - Disabled atm)
Merge "explorer -install" support to lean-explorer.
Merge some of the traynotify cleanups.

svn path=/branches/lean-explorer/; revision=9049
2004-04-09 19:02:59 +00:00
Steven Edwards
ea30a0dc0f Testing something
svn path=/branches/lean-explorer/; revision=9048
2004-04-09 18:55:23 +00:00
Martin Fuchs
e7cd739664 option "display version on desktop background"
svn path=/branches/lean-explorer/; revision=8909
2004-03-28 20:32:23 +00:00
Martin Fuchs
283e814418 option "display version on desktop background"
svn path=/branches/lean-explorer/; revision=8908
2004-03-28 20:32:23 +00:00
Martin Fuchs
b7d05c55c1 lean version comments
svn path=/branches/lean-explorer/; revision=8812
2004-03-20 13:55:58 +00:00
Martin Fuchs
54fff5eacf UNICODE fix for Tooltips
svn path=/branches/lean-explorer/; revision=8740
2004-03-14 22:27:44 +00:00
Martin Fuchs
aa1994fbc7 resize taskbar buttons on WM_SIZE
svn path=/branches/lean-explorer/; revision=8730
2004-03-14 18:51:36 +00:00
Martin Fuchs
655eff3fef move create_absolute_pidl() member function implementation from Enry into WinEntry
svn path=/branches/lean-explorer/; revision=8707
2004-03-14 12:11:19 +00:00
Martin Fuchs
821980ba92 french translation for some start menu entries from Gge
svn path=/branches/lean-explorer/; revision=8692
2004-03-13 20:05:33 +00:00
Martin Fuchs
02818cac57 small 'Explorer' string adjustment for french
svn path=/branches/lean-explorer/; revision=8671
2004-03-12 21:20:03 +00:00
Martin Fuchs
2906835b92 adjust start button to text size
svn path=/branches/lean-explorer/; revision=8669
2004-03-12 21:12:28 +00:00
Martin Fuchs
a16e73576f adjust start button to text size
svn path=/branches/lean-explorer/; revision=8668
2004-03-12 21:12:28 +00:00
Martin Fuchs
982fa99488 add opened files to the "recent documents" list
svn path=/branches/lean-explorer/; revision=8522
2004-03-03 20:29:52 +00:00
Martin Fuchs
2436649677 add opened files to the "recent documents" list
svn path=/branches/lean-explorer/; revision=8521
2004-03-03 20:29:52 +00:00
Martin Fuchs
9f36b56be8 up/down navigation for shell views in SDI mode
svn path=/branches/lean-explorer/; revision=8461
2004-02-28 23:32:05 +00:00
Martin Fuchs
6788d779df disable context information for lean release builds
svn path=/branches/lean-explorer/; revision=8455
2004-02-28 17:38:55 +00:00
Martin Fuchs
d22ce95a23 "up" button
svn path=/branches/lean-explorer/; revision=8454
2004-02-28 17:38:34 +00:00
Martin Fuchs
1ed75817b2 - fix for restoring applications using task bar buttons
- project file maintainancement
- docu update

svn path=/branches/lean-explorer/; revision=8451
2004-02-28 16:41:55 +00:00
Martin Fuchs
696e9fab75 - fix for restoring applications using task bar buttons
- project file maintainancement
- docu update

svn path=/branches/lean-explorer/; revision=8450
2004-02-28 16:41:55 +00:00
Martin Fuchs
c0442f2fa3 compatibility fix for "Sleipnir" web browser: minimizing by clicks on taskbar
svn path=/branches/lean-explorer/; revision=8449
2004-02-28 16:05:34 +00:00
Martin Fuchs
df7a6033ec desktop switching: allow applications to be visible only on one desktop
svn path=/branches/lean-explorer/; revision=8447
2004-02-28 15:14:39 +00:00
Martin Fuchs
153276234c remember last foreground window when switching desktops
svn path=/branches/lean-explorer/; revision=8439
2004-02-28 13:45:33 +00:00
Martin Fuchs
91554083e0 remember last foreground window when switching desktops
svn path=/branches/lean-explorer/; revision=8437
2004-02-28 13:45:32 +00:00
Martin Fuchs
3b06f79ff4 another foreground window fix for clicks on notification icons
svn path=/branches/lean-explorer/; revision=8435
2004-02-28 10:57:02 +00:00
Martin Fuchs
55b5f0c114 implemented 'minimize all' feature
svn path=/branches/lean-explorer/; revision=8432
2004-02-28 10:27:39 +00:00
Martin Fuchs
1f3fa7df38 disable start menu entries for non-existing folders
svn path=/branches/lean-explorer/; revision=8417
2004-02-26 21:52:34 +00:00
Martin Fuchs
fb350b3059 fix admin and printer folders
svn path=/branches/lean-explorer/; revision=8415
2004-02-26 21:28:48 +00:00
Martin Fuchs
2c1003c0c6 include explorer windows in desktop switching
svn path=/branches/lean-explorer/; revision=8414
2004-02-26 21:20:51 +00:00
Martin Fuchs
9fe0326582 avoid displaying context menu for application button _and_ desktop bar at the same time
svn path=/branches/lean-explorer/; revision=8412
2004-02-26 20:38:33 +00:00
Martin Fuchs
83fbf6968d docu update
svn path=/branches/lean-explorer/; revision=8410
2004-02-26 20:26:11 +00:00
Martin Fuchs
2211cc9503 fix foreground window handling when clicking on notification area icons
svn path=/branches/lean-explorer/; revision=8409
2004-02-26 20:20:44 +00:00
Martin Fuchs
eb17639f37 resize taskbar buttons according to number of running applications
svn path=/branches/lean-explorer/; revision=8405
2004-02-26 19:47:39 +00:00
Martin Fuchs
73a9af76fa resize taskbar buttons according to number of running applications
svn path=/branches/lean-explorer/; revision=8404
2004-02-26 19:47:39 +00:00
Martin Fuchs
4f32541e64 fix taksbar icons after closing previous applications
svn path=/branches/lean-explorer/; revision=8380
2004-02-25 20:21:30 +00:00
Martin Fuchs
ea3d021bfd set background brush for the short moment of displaying the background color while moving foreground windows
svn path=/branches/lean-explorer/; revision=8374
2004-02-25 19:29:13 +00:00
Martin Fuchs
b5a4206184 fixed bug #224
svn path=/branches/lean-explorer/; revision=8372
2004-02-25 18:58:34 +00:00
Martin Fuchs
3f5fd6a3b2 fixed more GDI handle leaks
svn path=/branches/lean-explorer/; revision=8356
2004-02-24 22:15:41 +00:00
Martin Fuchs
f537ac11a5 - launch task manager
- set foregroundwindow when opening start menu (CTRL-ESC shortcut)

svn path=/branches/lean-explorer/; revision=8353
2004-02-24 20:00:03 +00:00
Martin Fuchs
48da412f74 keyboard navigation in start menu using first character of display names
svn path=/branches/lean-explorer/; revision=8343
2004-02-23 22:16:54 +00:00
Martin Fuchs
7bbbc66715 fixed icon handle leak in notification area
svn path=/branches/lean-explorer/; revision=8338
2004-02-23 20:39:16 +00:00
Martin Fuchs
479967c7f3 strip down resource images
svn path=/branches/lean-explorer/; revision=8270
2004-02-19 20:57:27 +00:00
Martin Fuchs
982ba5e7ea - eiminated compiler warning
- removed NTFS streams support since it never displayed in this version

svn path=/branches/lean-explorer/; revision=8247
2004-02-18 19:38:36 +00:00
Martin Fuchs
a8cf2dad56 SDI interface for lean explorer
svn path=/branches/lean-explorer/; revision=8240
2004-02-18 00:01:02 +00:00
Martin Fuchs
1707fd147a disable autostart if the SHIFT key is pressed
svn path=/branches/lean-explorer/; revision=8224
2004-02-17 20:20:03 +00:00
Martin Fuchs
361d931d0c - disable lazy icon extraction in start menu to be as fast as possible
- convert settings start menus into buttons

svn path=/branches/lean-explorer/; revision=8217
2004-02-16 23:32:30 +00:00
Martin Fuchs
d6a11826cd first draft of a lean explorer version
svn path=/branches/lean-explorer/; revision=8214
2004-02-16 22:53:38 +00:00
The ReactOS Team
aea6a56335 This commit was manufactured by cvs2svn to create branch
'lean-explorer'.

svn path=/branches/lean-explorer/; revision=8213
2004-02-16 22:53:38 +00:00
8292 changed files with 274584 additions and 147728 deletions

View File

@@ -1,13 +0,0 @@
# $Id$
PATH_TO_TOP = ../../..
TARGET_TYPE = driver
TARGET_NAME = sdisk
TARGET_OBJECTS = sdisk.o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk

View File

@@ -1,163 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: services/sdisk/sdisk.c
* PURPOSE: Disk driver for Bochs
* PROGRAMMER: David Welch (welch@mcmail.com)
* UPDATE HISTORY:
*/
/* INCLUDES ****************************************************************/
#include <ddk/ntddk.h>
#include <internal/halio.h>
#define NDEBUG
#include <internal/debug.h>
/* FUNCTIONS **************************************************************/
#define PORT (0x3ec)
static VOID SdWriteOffset(ULONG Offset)
{
outl_p(PORT,Offset);
}
NTSTATUS STDCALL
Dispatch(PDEVICE_OBJECT DeviceObject, PIRP Irp)
/*
* FUNCTION: Handles user mode requests
* ARGUMENTS:
* DeviceObject = Device for request
* Irp = I/O request packet describing request
* RETURNS: Success or failure
*/
{
PIO_STACK_LOCATION Stack = IoGetCurrentIrpStackLocation(Irp);
NTSTATUS status;
int i;
PCH Buffer;
ULONG Length;
ULONG Information = 0;
switch (Stack->MajorFunction)
{
case IRP_MJ_CREATE:
DPRINT("Creating\n",0);
status = STATUS_SUCCESS;
break;
case IRP_MJ_CLOSE:
status = STATUS_SUCCESS;
break;
case IRP_MJ_WRITE:
DPRINT("Writing %d bytes\n",
Stack->Parameters.Write.Length);
Length = Stack->Parameters.Write.Length;
if ((Length%512)>0)
{
Length = Length - (Length%512);
}
Buffer = MmGetSystemAddressForMdl(Irp->MdlAddress);
DPRINT("Buffer %x\n",Buffer);
#if 0
for (i=0;i<Length;i++)
{
if ((i%512)==0)
{
DPRINT("Offset %x\n",
Stack->Parameters.Write.ByteOffset.LowPart+i);
SdWriteOffset(Stack->Parameters.Write.ByteOffset.LowPart+i);
}
outb_p(PORT,Buffer[i]);
DbgPrint("%c",Buffer[i]);
}
#endif
for (i=0;i<(Length/512);i++)
{
DPRINT("Offset %x\n",
Stack->Parameters.Write.ByteOffset.LowPart+i);
SdWriteOffset(Stack->Parameters.Write.ByteOffset.LowPart+i);
outsb(PORT,Buffer,512);
}
status = STATUS_SUCCESS;
Information = Length;
break;
case IRP_MJ_READ:
DPRINT("Reading %d bytes\n",
Stack->Parameters.Write.Length);
Length = Stack->Parameters.Write.Length;
if ((Length%512)>0)
{
Length = Length - (Length%512);
}
Buffer = MmGetSystemAddressForMdl(Irp->MdlAddress);
for (i=0;i<Length;i++)
{
if ((i%512)==0)
{
DPRINT("Offset %d\n",
Stack->Parameters.Write.ByteOffset.LowPart+i);
SdWriteOffset(Stack->Parameters.Write.ByteOffset.LowPart+i);
}
Buffer[i]=inb_p(PORT);
}
status = STATUS_SUCCESS;
break;
default:
status = STATUS_NOT_IMPLEMENTED;
break;
}
Irp->IoStatus.Status = status;
Irp->IoStatus.Information = Information;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
return(status);
}
NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
/*
* FUNCTION: Called by the system to initalize the driver
* ARGUMENTS:
* DriverObject = object describing this driver
* RegistryPath = path to our configuration entries
* RETURNS: Success or failure
*/
{
PDEVICE_OBJECT DeviceObject;
NTSTATUS ret;
ANSI_STRING astr;
UNICODE_STRING ustr;
ANSI_STRING asymlink;
UNICODE_STRING usymlink;
DbgPrint("Simple Disk Driver 0.0.1\n");
RtlInitAnsiString(&astr,"\\Device\\SDisk");
RtlAnsiStringToUnicodeString(&ustr,&astr,TRUE);
ret = IoCreateDevice(DriverObject,0,&ustr,
FILE_DEVICE_DISK,0,FALSE,&DeviceObject);
if (ret!=STATUS_SUCCESS)
{
return(ret);
}
RtlInitAnsiString(&asymlink,"\\??\\C:");
RtlAnsiStringToUnicodeString(&usymlink,&asymlink,TRUE);
IoCreateSymbolicLink(&usymlink,&ustr);
DeviceObject->Flags=DO_DIRECT_IO;
DriverObject->MajorFunction[IRP_MJ_CLOSE] = Dispatch;
DriverObject->MajorFunction[IRP_MJ_CREATE] = Dispatch;
DriverObject->MajorFunction[IRP_MJ_READ] = Dispatch;
DriverObject->MajorFunction[IRP_MJ_WRITE] = Dispatch;
DriverObject->DriverUnload = NULL;
return(STATUS_SUCCESS);
}

View File

@@ -1,907 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: services/dd/keyboard/keyboard.c
* PURPOSE: Keyboard driver
* PROGRAMMER: Victor Kirhenshtein (sauros@iname.com)
* Jason Filby (jasonfilby@yahoo.com)
*/
/* INCLUDES ****************************************************************/
#include <ddk/ntddk.h>
#include <string.h>
#include <ntos/keyboard.h>
#include <ntos/minmax.h>
#include <rosrtl/string.h>
#include <ddk/ntddkbd.h>
#include <ddk/ntdd8042.h>
#define NDEBUG
#include <debug.h>
#include "keyboard.h"
/* GLOBALS *******************************************************************/
/*
* Driver data
*/
static KEY_EVENT_RECORD kbdBuffer[KBD_BUFFER_SIZE];
static int bufHead,bufTail;
static int keysInBuffer;
static int extKey;
static BYTE ledStatus;
static BYTE capsDown,numDown,scrollDown;
static DWORD ctrlKeyState;
static PKINTERRUPT KbdInterrupt;
static KDPC KbdDpc;
static PIO_WORKITEM KbdWorkItem = NULL;
static BOOLEAN AlreadyOpened = FALSE;
/*
* PURPOSE: Current irp being processed
*/
static PIRP CurrentIrp;
/*
* PURPOSE: Number of keys that have been read into the current irp's buffer
*/
static ULONG KeysRead;
static ULONG KeysRequired;
/*
* Virtual key codes table
*
* Comments:
* * PrtSc = VK_PRINT
* * Alt+PrtSc (SysRq) = VK_EXECUTE
* * Alt = VK_MENU
*/
static const WORD vkTable[128]=
{
/* 00 - 07 */ 0, VK_ESCAPE, VK_1, VK_2, VK_3, VK_4, VK_5, VK_6,
/* 08 - 0F */ VK_7, VK_8, VK_9, VK_0, 189, 187, VK_BACK, VK_TAB,
/* 10 - 17 */ VK_Q, VK_W, VK_E, VK_R, VK_T, VK_Y, VK_U, VK_I,
/* 18 - 1F */ VK_O, VK_P, 219, 221, VK_RETURN, VK_CONTROL, VK_A, VK_S,
/* 20 - 27 */ VK_D, VK_F, VK_G, VK_H, VK_J, VK_K, VK_L, 186,
/* 28 - 2F */ 222, 192, VK_SHIFT, 220, VK_Z, VK_X, VK_C, VK_V,
/* 30 - 37 */ VK_B, VK_N, VK_M, 188, 190, 191, VK_SHIFT, VK_MULTIPLY,
/* 38 - 3F */ VK_MENU, VK_SPACE, VK_CAPITAL, VK_F1, VK_F2, VK_F3, VK_F4, VK_F5,
/* 40 - 47 */ VK_F6, VK_F7, VK_F8, VK_F9, VK_F10, VK_NUMLOCK, VK_SCROLL, VK_HOME,
/* 48 - 4F */ VK_UP, VK_PRIOR, VK_SUBTRACT, VK_LEFT, VK_CLEAR, VK_RIGHT, VK_ADD, VK_END,
/* 50 - 57 */ VK_DOWN, VK_NEXT, VK_INSERT, VK_DELETE, VK_EXECUTE, 0, 0, VK_F11,
/* 58 - 5F */ VK_F12, 0, 0, 91, 92, 93, 0, 0,
/* 60 - 67 */ 0, 0, 0, 0, 0, 0, 0, 0,
/* 68 - 6F */ 0, 0, 0, 0, 0, 0, 0, 0,
/* 70 - 77 */ 0, 0, 0, 0, 0, 0, 0, 0,
/* 78 - 7F */ 0, 0, 0, 0, 0, 0, 0, VK_PAUSE
};
static const WORD vkKeypadTable[13]= /* 47 - 53 */
{
VK_NUMPAD7, VK_NUMPAD8, VK_NUMPAD9, VK_SUBTRACT,
VK_NUMPAD4, VK_NUMPAD5, VK_NUMPAD6, VK_ADD,
VK_NUMPAD1, VK_NUMPAD2, VK_NUMPAD3, VK_NUMPAD0, VK_DECIMAL
};
/*
* ASCII translation tables
*/
static const BYTE asciiTable1[10]=
{
')','!','@','#','$','%','^','&','*','('
};
static const BYTE asciiTable2[16]=
{
'0','1','2','3','4','5','6','7','8','9','*','+',0,'-','.','/'
};
static const BYTE asciiTable3[37]=
{
';','=',',','-','.','/','`', 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'[', '\\', ']', '\''
};
static const BYTE asciiTable4[37]=
{
':','+','<','_','>','?','~', 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'{', '|', '}', '"'
};
VOID STDCALL
KdSystemDebugControl(ULONG Code);
static LONG DoSystemDebug = -1;
static BOOLEAN InSysRq = FALSE;
/* FUNCTIONS *****************************************************************/
static void KbdWrite(int addr,BYTE data)
/*
* FUNCTION: Write data to keyboard
*/
{
BYTE status;
do
{
status=READ_PORT_UCHAR((PUCHAR)KBD_CTRL_PORT); // Wait until input buffer empty
} while(status & KBD_IBF);
WRITE_PORT_UCHAR((PUCHAR)addr,data);
}
static int KbdReadData(void)
/*
* FUNCTION: Read data from port 0x60
*/
{
int i;
BYTE status,data;
i=500000;
do
{
status=READ_PORT_UCHAR((PUCHAR)KBD_CTRL_PORT);
if (!(status & KBD_OBF)) // Check if data available
continue;
data=READ_PORT_UCHAR((PUCHAR)KBD_DATA_PORT);
if (status & (KBD_GTO | KBD_PERR)) // Check for timeout error
continue;
return data;
} while(--i);
return -1; // Timed out
}
/*
* Set keyboard LED's
*/
static void SetKeyboardLEDs(BYTE status)
{
KbdWrite(KBD_DATA_PORT,0xED);
if (KbdReadData()!=KBD_ACK) // Error
return;
KbdWrite(KBD_DATA_PORT,status);
KbdReadData();
}
/*
* Process scan code
*/
static void ProcessScanCode(BYTE scanCode,BOOL isDown)
{
switch(scanCode)
{
case 0x1D: // Ctrl
if (extKey)
{
if (isDown)
ctrlKeyState|=RIGHT_CTRL_PRESSED;
else
ctrlKeyState&=~RIGHT_CTRL_PRESSED;
}
else
{
if (isDown)
ctrlKeyState|=LEFT_CTRL_PRESSED;
else
ctrlKeyState&=~LEFT_CTRL_PRESSED;
}
break;
case 0x2A: // Left shift
case 0x36: // Right shift
if (isDown)
ctrlKeyState|=SHIFT_PRESSED;
else
ctrlKeyState&=~SHIFT_PRESSED;
break;
case 0x38: // Alt
if (extKey)
{
if (isDown)
ctrlKeyState|=RIGHT_ALT_PRESSED;
else
ctrlKeyState&=~RIGHT_ALT_PRESSED;
}
else
{
if (isDown)
ctrlKeyState|=LEFT_ALT_PRESSED;
else
ctrlKeyState&=~LEFT_ALT_PRESSED;
}
break;
case 0x3A: // CapsLock
if (ctrlKeyState & CTRL_PRESSED)
break;
if (isDown)
{
if (!capsDown)
{
capsDown=1;
if (ctrlKeyState & CAPSLOCK_ON)
{
ledStatus&=~KBD_LED_CAPS;
ctrlKeyState&=~CAPSLOCK_ON;
}
else
{
ledStatus|=KBD_LED_CAPS;
ctrlKeyState|=CAPSLOCK_ON;
}
SetKeyboardLEDs(ledStatus);
}
}
else
{
capsDown=0;
}
break;
case 0x45: // NumLock
if (ctrlKeyState & CTRL_PRESSED)
break;
if (isDown)
{
if (!numDown)
{
numDown=1;
if (ctrlKeyState & NUMLOCK_ON)
{
ledStatus&=~KBD_LED_NUM;
ctrlKeyState&=~NUMLOCK_ON;
}
else
{
ledStatus|=KBD_LED_NUM;
ctrlKeyState|=NUMLOCK_ON;
}
SetKeyboardLEDs(ledStatus);
}
}
else
{
numDown=0;
}
break;
case 0x46: // ScrollLock
if (ctrlKeyState & CTRL_PRESSED)
break;
if (isDown)
{
if (!scrollDown)
{
scrollDown=1;
if (ctrlKeyState & SCROLLLOCK_ON)
{
ledStatus&=~KBD_LED_SCROLL;
ctrlKeyState&=~SCROLLLOCK_ON;
}
else
{
ledStatus|=KBD_LED_SCROLL;
ctrlKeyState|=SCROLLLOCK_ON;
}
SetKeyboardLEDs(ledStatus);
}
}
else
{
scrollDown=0;
}
break;
default:
break;
}
}
/*
* Translate virtual key code to ASCII
*/
static BYTE VirtualToAscii(WORD keyCode,BOOL isDown)
{
if ((ctrlKeyState & ALT_PRESSED)&&(ctrlKeyState & CTRL_PRESSED))
return 0; // Ctrl+Alt+char always 0
if ((!isDown)&&(ctrlKeyState & ALT_PRESSED))
return 0; // Alt+char is 0 when key is released
if (ctrlKeyState & CTRL_PRESSED)
{
if ((keyCode>=VK_A)&&(keyCode<=VK_Z))
return keyCode-VK_A+1;
switch(keyCode)
{
case VK_SPACE:
return ' ';
case VK_BACK:
return 127;
case VK_RETURN:
return '\r';
case 219: /* [ */
if (ctrlKeyState & SHIFT_PRESSED)
return 0;
return 27;
case 220: /* \ */
if (ctrlKeyState & SHIFT_PRESSED)
return 0;
return 28;
case 221: /* ] */
if (ctrlKeyState & SHIFT_PRESSED)
return 0;
return 29;
default:
return 0;
}
}
if ((keyCode>=VK_A)&&(keyCode<=VK_Z))
{
if (ctrlKeyState & CAPSLOCK_ON)
if (ctrlKeyState & SHIFT_PRESSED)
return keyCode-VK_A+'a';
else
return keyCode-VK_A+'A';
else
if (ctrlKeyState & SHIFT_PRESSED)
return keyCode-VK_A+'A';
else
return keyCode-VK_A+'a';
}
if ((keyCode>=VK_0)&&(keyCode<=VK_9))
{
if (ctrlKeyState & SHIFT_PRESSED)
return asciiTable1[keyCode-VK_0];
else
return keyCode-VK_0+'0';
}
if ((keyCode>=VK_NUMPAD0)&&(keyCode<=VK_DIVIDE))
return asciiTable2[keyCode-VK_NUMPAD0];
if ((keyCode>=186)&&(keyCode<=222))
{
if (ctrlKeyState & SHIFT_PRESSED)
return asciiTable4[keyCode-186];
else
return asciiTable3[keyCode-186];
}
switch(keyCode)
{
case VK_SPACE:
return ' ';
case VK_RETURN:
return '\r';
case VK_BACK:
return 8;
case VK_TAB:
return 9;
}
return 0;
}
/*
* Translate scan code to virtual key code
*/
static WORD ScanToVirtual(BYTE scanCode)
{
if ((scanCode>=0x47)&&(scanCode<=0x53)&&(ctrlKeyState & NUMLOCK_ON)&&
(!extKey)&&(!(ctrlKeyState & SHIFT_PRESSED)))
return vkKeypadTable[scanCode-0x47];
if ((scanCode==0x35)&&(extKey)) // Gray divide
return VK_DIVIDE;
if ((scanCode==0x37)&&(extKey)) // Print screen
return VK_PRINT;
return vkTable[scanCode];
}
/*
* Debug request handler
*/
static VOID STDCALL
KbdWorkItemRoutine(IN PDEVICE_OBJECT DeviceObject,
IN PVOID Context)
{
LONG Debug;
Debug = InterlockedExchange(&DoSystemDebug, -1);
if (Debug != -1)
{
KdSystemDebugControl(Debug);
}
}
/*
* Keyboard IRQ handler
*/
static VOID STDCALL
KbdDpcRoutine(PKDPC Dpc,
PVOID DeferredContext,
PVOID SystemArgument1,
PVOID SystemArgument2)
{
PIRP Irp = (PIRP)SystemArgument2;
PDEVICE_OBJECT DeviceObject = (PDEVICE_OBJECT)SystemArgument1;
if (SystemArgument1 == NULL && DoSystemDebug != -1)
{
if (KbdWorkItem != NULL && DoSystemDebug == 10) /* 10 is Tab + K (enter kernel debugger) */
{
IoQueueWorkItem(KbdWorkItem, (PIO_WORKITEM_ROUTINE)KbdWorkItemRoutine, DelayedWorkQueue, NULL);
}
else
{
KdSystemDebugControl(DoSystemDebug);
DoSystemDebug = -1;
}
return;
}
CHECKPOINT;
DPRINT("KbdDpcRoutine(DeviceObject %x, Irp %x)\n",
DeviceObject,Irp);
Irp->IoStatus.Status = STATUS_SUCCESS;
Irp->IoStatus.Information = 0;
IoCompleteRequest(Irp,IO_NO_INCREMENT);
IoStartNextPacket(DeviceObject,FALSE);
}
static BOOLEAN STDCALL
KeyboardHandler(PKINTERRUPT Interrupt,
PVOID Context)
{
BYTE thisKey;
BOOL isDown;
static BYTE lastKey;
CHAR Status;
PDEVICE_OBJECT deviceObject = (PDEVICE_OBJECT) Context;
PDEVICE_EXTENSION deviceExtension = (PDEVICE_EXTENSION) deviceObject->DeviceExtension;
CHECKPOINT;
/*
* Check status
*/
Status = READ_PORT_UCHAR((PUCHAR)KBD_CTRL_PORT);
if (!(Status & KBD_OBF))
{
return (FALSE);
}
// Read scan code
thisKey=READ_PORT_UCHAR((PUCHAR)KBD_DATA_PORT);
// Call hook routine. May change scancode value.
if (deviceExtension->IsrHookCallback) {
BOOLEAN cont = FALSE, ret;
//BUG BUG: rewrite to have valid CurrentScanState!!!
ret = (*deviceExtension->IsrHookCallback)(
deviceObject,
NULL,//&deviceExtension->CurrentInput,
NULL,//&deviceExtension->CurrentOutput,
Status,
&thisKey, //&scanCode,
&cont,
NULL //&deviceExtension->CurrentScanState
);
if (!cont) {
return ret;
}
}
if ((thisKey==0xE0)||(thisKey==0xE1)) // Extended key
{
extKey=1; // Wait for next byte
lastKey=thisKey;
return FALSE;
}
isDown=!(thisKey & 0x80);
thisKey&=0x7F;
// The keyboard maintains its own internal caps lock and num lock
// statuses. In caps lock mode E0 AA precedes make code and
// E0 2A follow break code. In num lock mode, E0 2A precedes
// make code and E0 AA follow break code. We maintain our own caps lock
// and num lock statuses, so we will just ignore these.
// Some keyboards have L-Shift/R-Shift modes instead of caps lock
// mode. If right shift pressed, E0 B6 / E0 36 pairs generated.
if (extKey & ((thisKey==0x2A)||(thisKey==0x36)))
{
extKey=0;
return FALSE;
}
// Check for PAUSE sequence
if (extKey && (lastKey==0xE1))
{
if (thisKey==0x1D)
lastKey=0xFF; // Sequence is OK
else
extKey=0;
return FALSE;
}
if (extKey && (lastKey==0xFF))
{
if (thisKey!=0x45)
{
extKey=0; // Bad sequence
return FALSE;
}
thisKey=0x7F; // Pseudo-code for PAUSE
}
ProcessScanCode(thisKey,isDown);
// DbgPrint("Key: %c\n",VirtualToAscii(ScanToVirtual(thisKey),isDown));
// DbgPrint("Key: %x\n",ScanToVirtual(thisKey));
if (ScanToVirtual(thisKey) == VK_TAB && isDown)
{
InSysRq = TRUE;
}
else if (ScanToVirtual(thisKey) == VK_TAB && !isDown)
{
InSysRq = FALSE;
}
else if (InSysRq == TRUE && ScanToVirtual(thisKey) >= VK_A &&
ScanToVirtual(thisKey) <= VK_Z && isDown)
{
InterlockedExchange(&DoSystemDebug, ScanToVirtual(thisKey) - VK_A);
KeInsertQueueDpc(&KbdDpc, NULL, NULL);
return(TRUE);
}
if (CurrentIrp!=NULL)
{
KEY_EVENT_RECORD* rec = (KEY_EVENT_RECORD *)
CurrentIrp->AssociatedIrp.SystemBuffer;
CHECKPOINT;
rec[KeysRead].bKeyDown=isDown;
rec[KeysRead].wRepeatCount=1;
rec[KeysRead].wVirtualKeyCode=ScanToVirtual(thisKey);
rec[KeysRead].wVirtualScanCode=thisKey;
rec[KeysRead].uChar.AsciiChar=VirtualToAscii(rec->wVirtualKeyCode,isDown);
rec[KeysRead].dwControlKeyState=ctrlKeyState;
if (extKey)
{
rec[KeysRead].dwControlKeyState|=ENHANCED_KEY;
extKey = 0;
}
KeysRead++;
DPRINT("KeysRequired %d KeysRead %x\n",KeysRequired,KeysRead);
if (KeysRead==KeysRequired)
{
PDEVICE_OBJECT DeviceObject = (PDEVICE_OBJECT) Context;
KeInsertQueueDpc(&KbdDpc,DeviceObject,CurrentIrp);
CurrentIrp=NULL;
}
CHECKPOINT;
return TRUE;
}
// Buffer is full ?
if (keysInBuffer==KBD_BUFFER_SIZE) // Buffer is full
{
extKey=0;
return(TRUE);
}
kbdBuffer[bufHead].bKeyDown=isDown;
kbdBuffer[bufHead].wRepeatCount=1;
kbdBuffer[bufHead].wVirtualKeyCode=ScanToVirtual(thisKey);
kbdBuffer[bufHead].wVirtualScanCode=thisKey;
kbdBuffer[bufHead].uChar.UnicodeChar=0;
// kbdBuffer[bufHead].uChar.AsciiChar=TranslateScanCode(thisKey);
kbdBuffer[bufHead].uChar.AsciiChar=VirtualToAscii(kbdBuffer[bufHead].wVirtualKeyCode,isDown);
kbdBuffer[bufHead].dwControlKeyState=ctrlKeyState;
if (extKey)
kbdBuffer[bufHead].dwControlKeyState|=ENHANCED_KEY;
bufHead++;
bufHead&=KBD_WRAP_MASK; // Modulo KBD_BUFFER_SIZE
keysInBuffer++;
extKey=0;
return TRUE;
}
//
// Initialize keyboard
//
static void KeyboardConnectInterrupt(PDEVICE_OBJECT DeviceObject)
{
ULONG MappedIrq;
KIRQL Dirql;
KAFFINITY Affinity;
NTSTATUS Status;
MappedIrq = HalGetInterruptVector(Internal,
0,
0,
KEYBOARD_IRQ,
&Dirql,
&Affinity);
Status = IoConnectInterrupt(&KbdInterrupt,
KeyboardHandler,
(PVOID)DeviceObject,
NULL,
MappedIrq,
Dirql,
Dirql,
0,
FALSE,
Affinity,
FALSE);
}
VOID
KbdClearInput(VOID)
{
ULONG i;
CHAR Status;
for (i = 0; i < 100; i++)
{
Status = READ_PORT_UCHAR((PUCHAR)KBD_CTRL_PORT);
if (!(Status & KBD_OBF))
{
return;
}
(VOID)READ_PORT_UCHAR((PUCHAR)KBD_DATA_PORT);
}
}
static int InitializeKeyboard(PDEVICE_OBJECT DeviceObject)
{
// Initialize variables
bufHead=0;
bufTail=0;
keysInBuffer=0;
ledStatus=0;
capsDown=0;
numDown=0;
scrollDown=0;
ctrlKeyState=0;
extKey=0;
KbdClearInput();
KeyboardConnectInterrupt(DeviceObject);
KeInitializeDpc(&KbdDpc,KbdDpcRoutine,NULL);
KbdWorkItem = IoAllocateWorkItem(DeviceObject);
if (KbdWorkItem == NULL)
{
DPRINT("Warning: Couldn't allocate work item!\n");
}
return 0;
}
/*
* Read data from keyboard buffer
*/
BOOLEAN STDCALL
KbdSynchronizeRoutine(PVOID Context)
{
PIRP Irp = (PIRP)Context;
KEY_EVENT_RECORD* rec = (KEY_EVENT_RECORD *)Irp->AssociatedIrp.SystemBuffer;
PIO_STACK_LOCATION stk = IoGetCurrentIrpStackLocation(Irp);
ULONG NrToRead = stk->Parameters.Read.Length/sizeof(KEY_EVENT_RECORD);
int i;
DPRINT("NrToRead %d keysInBuffer %d\n",NrToRead,keysInBuffer);
NrToRead = min(NrToRead,keysInBuffer);
DPRINT("NrToRead %d stk->Parameters.Read.Length %d\n",
NrToRead,stk->Parameters.Read.Length);
DPRINT("sizeof(KEY_EVENT_RECORD) %d\n",sizeof(KEY_EVENT_RECORD));
for (i=0;i<NrToRead;i++)
{
memcpy(&rec[i],&kbdBuffer[bufTail],sizeof(KEY_EVENT_RECORD));
bufTail++;
bufTail&=KBD_WRAP_MASK;
keysInBuffer--;
}
if ((stk->Parameters.Read.Length/sizeof(KEY_EVENT_RECORD))==NrToRead)
{
return(TRUE);
}
KeysRequired=stk->Parameters.Read.Length/sizeof(KEY_EVENT_RECORD);
KeysRead=NrToRead;
CurrentIrp=Irp;
return(FALSE);
}
VOID STDCALL KbdStartIo(PDEVICE_OBJECT DeviceObject, PIRP Irp)
{
#ifndef NDEBUG
PIO_STACK_LOCATION stk = IoGetCurrentIrpStackLocation(Irp);
#endif
DPRINT("KeyboardStartIo(DeviceObject %x Irp %x)\n",DeviceObject,Irp);
if (KeSynchronizeExecution(KbdInterrupt, KbdSynchronizeRoutine, Irp))
{
KIRQL oldIrql;
Irp->IoStatus.Status = STATUS_SUCCESS;
Irp->IoStatus.Information = 0;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
oldIrql = KeGetCurrentIrql();
if (oldIrql < DISPATCH_LEVEL)
{
KeRaiseIrql (DISPATCH_LEVEL, &oldIrql);
IoStartNextPacket (DeviceObject, FALSE);
KeLowerIrql(oldIrql);
}
else
{
IoStartNextPacket (DeviceObject, FALSE);
}
}
DPRINT("stk->Parameters.Read.Length %d\n",stk->Parameters.Read.Length);
DPRINT("KeysRequired %d\n",KeysRequired);
}
NTSTATUS STDCALL KbdInternalDeviceControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
{
PIO_STACK_LOCATION stk;
PINTERNAL_I8042_HOOK_KEYBOARD hookKeyboard;
PDEVICE_EXTENSION DevExt = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension;
NTSTATUS status = STATUS_INVALID_DEVICE_REQUEST;
Irp->IoStatus.Information = 0;
stk = IoGetCurrentIrpStackLocation(Irp);
switch (stk->Parameters.DeviceIoControl.IoControlCode)
{
/*-----------------11/29/2001 4:12PM----------------
* This internal ioctrl belongs in i8042 driver. Should be
* moved to the appropriate driver later.
* --------------------------------------------------*/
case IOCTL_INTERNAL_I8042_HOOK_KEYBOARD:
if (stk->Parameters.DeviceIoControl.InputBufferLength < sizeof(INTERNAL_I8042_HOOK_KEYBOARD))
{
DPRINT(("Keyboard IOCTL_INTERNAL_I8042_HOOK_KEYBOARD invalid buffer size\n"));
status = STATUS_INVALID_PARAMETER;
}
else {
//
// Copy the values if they are filled in
//
hookKeyboard = (PINTERNAL_I8042_HOOK_KEYBOARD)
stk->Parameters.DeviceIoControl.Type3InputBuffer;
DevExt->HookContext = hookKeyboard->Context;
if (hookKeyboard->InitializationRoutine) {
DbgPrint("Keyboard: InitializationHookCallback NOT IMPLEMENTED\n");
DevExt->InitializationHookCallback =
hookKeyboard->InitializationRoutine;
}
if (hookKeyboard->IsrRoutine) {
DevExt->IsrHookCallback = hookKeyboard->IsrRoutine;
}
status = STATUS_SUCCESS;
}
break;
default:
status = STATUS_INVALID_DEVICE_REQUEST;
break;
}
Irp->IoStatus.Status = status;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
return status;
}
NTSTATUS STDCALL KbdDispatch(PDEVICE_OBJECT DeviceObject, PIRP Irp)
{
PIO_STACK_LOCATION stk = IoGetCurrentIrpStackLocation(Irp);
NTSTATUS Status;
DPRINT("DeviceObject %x\n",DeviceObject);
DPRINT("Irp %x\n",Irp);
DPRINT("IRP_MJ_CREATE %d stk->MajorFunction %d\n",
IRP_MJ_CREATE, stk->MajorFunction);
DPRINT("AlreadyOpened %d\n",AlreadyOpened);
switch (stk->MajorFunction)
{
case IRP_MJ_CREATE:
if (AlreadyOpened == TRUE)
{
CHECKPOINT;
// Status = STATUS_UNSUCCESSFUL;
Status = STATUS_SUCCESS;
}
else
{
CHECKPOINT;
Status = STATUS_SUCCESS;
AlreadyOpened = TRUE;
}
break;
case IRP_MJ_CLOSE:
Status = STATUS_SUCCESS;
break;
case IRP_MJ_READ:
DPRINT("Handling Read request\n");
DPRINT("Queueing packet\n");
IoMarkIrpPending(Irp);
IoStartPacket(DeviceObject,Irp,NULL,NULL);
return(STATUS_PENDING);
default:
Status = STATUS_NOT_IMPLEMENTED;
break;
}
Irp->IoStatus.Status = Status;
Irp->IoStatus.Information = 0;
IoCompleteRequest(Irp,IO_NO_INCREMENT);
DPRINT("Status %d\n",Status);
return(Status);
}
NTSTATUS STDCALL DriverEntry(PDRIVER_OBJECT DriverObject,
PUNICODE_STRING RegistryPath)
/*
* FUNCTION: Module entry point
*/
{
PDEVICE_OBJECT DeviceObject;
UNICODE_STRING DeviceName = ROS_STRING_INITIALIZER(L"\\Device\\Keyboard");
UNICODE_STRING SymlinkName = ROS_STRING_INITIALIZER(L"\\??\\Keyboard");
DPRINT("Keyboard Driver 0.0.4\n");
DriverObject->MajorFunction[IRP_MJ_CREATE] = KbdDispatch;
DriverObject->MajorFunction[IRP_MJ_CLOSE] = KbdDispatch;
DriverObject->MajorFunction[IRP_MJ_READ] = KbdDispatch;
DriverObject->MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] =
KbdInternalDeviceControl;
DriverObject->DriverStartIo = KbdStartIo;
IoCreateDevice(DriverObject,
sizeof(DEVICE_EXTENSION),
&DeviceName,
FILE_DEVICE_KEYBOARD,
0,
TRUE,
&DeviceObject);
RtlZeroMemory(DeviceObject->DeviceExtension, sizeof(DEVICE_EXTENSION));
DeviceObject->Flags = DeviceObject->Flags | DO_BUFFERED_IO;
InitializeKeyboard( DeviceObject );
IoCreateSymbolicLink(&SymlinkName, &DeviceName);
return(STATUS_SUCCESS);
}

View File

@@ -1,157 +0,0 @@
// All or parts of this file are from CHAOS (http://www.se.chaosdev.org/).
// CHAOS is also under the GNU General Public License.
#include <ddk/ntddk.h>
#include "controller.h"
#include "keyboard.h"
#include "mouse.h"
/* This reads the controller status port, and does the appropriate
action. It requires that we hold the keyboard controller spinlock. */
int controller_read_data(void);
unsigned handle_event(void)
{
unsigned status = controller_read_status();
unsigned int work;
for(work = 0; (work < 10000) && ((status & CONTROLLER_STATUS_OUTPUT_BUFFER_FULL) != 0); work++)
{
unsigned scancode;
scancode = controller_read_input();
#if 0
/* Ignore error bytes. */
if((status &(CONTROLLER_STATUS_GENERAL_TIMEOUT |
CONTROLLER_STATUS_PARITY_ERROR)) == 0)
#endif
{
if((status & CONTROLLER_STATUS_MOUSE_OUTPUT_BUFFER_FULL) != 0)
{
// mouse_handle_event(scancode); we just use the mouse handler directly..
}
else
{
// keyboard_handle_event(scancode);
}
}
status = controller_read_status();
}
if(work == 10000)
{
DbgPrint("PSAUX: Keyboard controller jammed\n");
}
return status;
}
/* Wait for keyboard controller input buffer to drain.
Quote from PS/2 System Reference Manual:
"Address hex 0060 and address hex 0064 should be written only
when the input-buffer-full bit and output-buffer-full bit in the
Controller Status register are set 0." */
void controller_wait(void)
{
unsigned long timeout;
LARGE_INTEGER Millisecond_Timeout;
Millisecond_Timeout.QuadPart = -10000L;
for(timeout = 0; timeout < CONTROLLER_TIMEOUT; timeout++)
{
// "handle_keyboard_event()" will handle any incoming events
// while we wait -- keypresses or mouse movement
unsigned char status = handle_event();
if((status & CONTROLLER_STATUS_INPUT_BUFFER_FULL) == 0) return;
// Sleep for one millisecond
KeDelayExecutionThread (KernelMode, FALSE, &Millisecond_Timeout);
}
DbgPrint("PSAUX: Keyboard timed out\n");
}
/* Wait for input from the keyboard controller. */
int controller_wait_for_input(void)
{
int timeout;
LARGE_INTEGER Millisecond_Timeout;
Millisecond_Timeout.QuadPart = -10000L;
for(timeout = KEYBOARD_INIT_TIMEOUT; timeout > 0; timeout--)
{
int return_value = controller_read_data();
if(return_value >= 0) return return_value;
// Sleep for one millisecond
KeDelayExecutionThread (KernelMode, FALSE, &Millisecond_Timeout);
}
DbgPrint("PSAUX: Timed out on waiting for input from controller\n");
return -1;
}
/* Write a command word to the keyboard controller. */
void controller_write_command_word(unsigned data)
{
controller_wait();
controller_write_command(data);
}
/* Write an output word to the keyboard controller. */
void controller_write_output_word(unsigned data)
{
controller_wait();
controller_write_output(data);
}
/* Empty the keyboard input buffer. */
void keyboard_clear_input(void)
{
int max_read;
for(max_read = 0; max_read < 100; max_read++)
{
if(controller_read_data() == KEYBOARD_NO_DATA)
{
break;
}
}
}
/* Read data from the keyboard controller. */
int controller_read_data(void)
{
int return_value = KEYBOARD_NO_DATA;
unsigned status;
status = controller_read_status();
if(status & CONTROLLER_STATUS_OUTPUT_BUFFER_FULL)
{
unsigned data = controller_read_input();
return_value = data;
if(status &(CONTROLLER_STATUS_GENERAL_TIMEOUT |
CONTROLLER_STATUS_PARITY_ERROR))
{
return_value = KEYBOARD_BAD_DATA;
}
}
return return_value;
}

View File

@@ -1,140 +0,0 @@
// All or parts of this file are from CHAOS (http://www.se.chaosdev.org/).
// CHAOS is also under the GNU General Public License.
/* Keyboard controller registers. */
#define CONTROLLER_REGISTER_STATUS 0x64
#define CONTROLLER_REGISTER_CONTROL 0x64
#define CONTROLLER_REGISTER_DATA 0x60
/* Keyboard controller commands. */
/* Read mode bits. */
#define CONTROLLER_COMMAND_READ_MODE 0x20
/* Write mode bits. */
#define CONTROLLER_COMMAND_WRITE_MODE 0x60
/* Get controller version. */
#define CONTROLLER_COMMAND_GET_VERSION 0xA1
/* Disable mouse interface. */
#define CONTROLLER_COMMAND_MOUSE_DISABLE 0xA7
/* Enable mouse interface. */
#define CONTROLLER_COMMAND_MOUSE_ENABLE 0xA8
/* Mouse interface test. */
#define CONTROLLER_COMMAND_TEST_MOUSE 0xA9
/* Controller self test. */
#define CONTROLLER_COMMAND_SELF_TEST 0xAA
/* Keyboard interface test. */
#define CONTROLLER_COMMAND_KEYBOARD_TEST 0xAB
/* Keyboard interface disable. */
#define CONTROLLER_COMMAND_KEYBOARD_DISABLE 0xAD
/* Keyboard interface enable. */
#define CONTROLLER_COMMAND_KEYBOARD_ENABLE 0xAE
/* Write to output buffer as if initiated by the auxiliary device. */
#define CONTROLLER_COMMAND_WRITE_MOUSE_OUTPUT_BUFFER 0xD3
/* Write the following byte to the mouse. */
#define CONTROLLER_COMMAND_WRITE_MOUSE 0xD4
/* Status Register Bits. */
/* Keyboard output buffer full. */
#define CONTROLLER_STATUS_OUTPUT_BUFFER_FULL 0x01
/* Keyboard input buffer full. */
#define CONTROLLER_STATUS_INPUT_BUFFER_FULL 0x02
/* Self test successful. */
#define CONTROLLER_STATUS_SELF_TEST 0x04
/* Last write was a command write. (0 = data) */
#define CONTROLLER_STATUS_COMMAND 0x08
/* Zero if keyboard locked. */
#define CONTROLLER_STATUS_UNLOCKED 0x10
/* Mouse output buffer full. */
#define CONTROLLER_STATUS_MOUSE_OUTPUT_BUFFER_FULL 0x20
/* General receive/xmit timeout. */
#define CONTROLLER_STATUS_GENERAL_TIMEOUT 0x40
/* Parity error. */
#define CONTROLLER_STATUS_PARITY_ERROR 0x80
#define AUX_STATUS_OUTPUT_BUFFER_FULL (CONTROLLER_STATUS_OUTPUT_BUFFER_FULL | \
CONTROLLER_STATUS_MOUSE_OUTPUT_BUFFER_FULL)
/* Controller mode register bits. */
/* Keyboard data generate IRQ1. */
#define CONTROLLER_MODE_KEYBOARD_INTERRUPT 0x01
/* Mouse data generate IRQ12. */
#define CONTROLLER_MODE_MOUSE_INTERRUPT 0x02
/* The system flag. (?) */
#define CONTROLLER_MODE_SYS 0x04
/* The keylock doesn't affect the keyboard if set. */
#define CONTROLLER_MODE_NO_KEYLOCK 0x08
/* Disable keyboard interface. */
#define CONTROLLER_MODE_DISABLE_KEYBOARD 0x10
/* Disable mouse interface. */
#define CONTROLLER_MODE_DISABLE_MOUSE 0x20
/* Scan code conversion to PC format. */
#define CONTROLLER_MODE_KCC 0x40
#define CONTROLLER_MODE_RFU 0x80
/* Timeout in ms for sending to keyboard controller. */
#define CONTROLLER_TIMEOUT 250
/* Hardware defines. */
#define CONTROLLER_PORT_BASE 0x60
#define CONTROLLER_PORTS 0x10
/* Macros for accessing the keyboard controller on this platform. */
#define controller_read_input() READ_PORT_UCHAR ((PUCHAR)CONTROLLER_REGISTER_DATA)
#define controller_read_status() READ_PORT_UCHAR ((PUCHAR)CONTROLLER_REGISTER_STATUS)
#define controller_write_output(value) WRITE_PORT_UCHAR ((PUCHAR)CONTROLLER_REGISTER_DATA, value)
#define controller_write_command(value) WRITE_PORT_UCHAR ((PUCHAR)CONTROLLER_REGISTER_CONTROL, value)
void controller_write_command_word(unsigned data);

View File

@@ -1,51 +0,0 @@
// All or parts of this file are from CHAOS (http://www.se.chaosdev.org/).
// CHAOS is also under the GNU General Public License.
/* Timeout in ms for keyboard command acknowledge. */
#define KEYBOARD_TIMEOUT 1000
/* Timeout in ms for initializing the keyboard. */
#define KEYBOARD_INIT_TIMEOUT 1000
/* Keyboard commands. */
#define KEYBOARD_COMMAND_SET_LEDS 0xED
#define KEYBOARD_COMMAND_SET_RATE 0xF3
#define KEYBOARD_COMMAND_ENABLE 0xF4
#define KEYBOARD_COMMAND_DISABLE 0xF5
#define KEYBOARD_COMMAND_RESET 0xFF
/* Keyboard replies. */
/* Power on reset. */
#define KEYBOARD_REPLY_POWER_ON_RESET 0xAA
/* Acknowledgement of previous command. */
#define KEYBOARD_REPLY_ACK 0xFA
/* Command NACK, send the command again. */
#define KEYBOARD_REPLY_RESEND 0xFE
/* Hardware defines. */
#define KEYBOARD_IRQ 1
/* Return values from keyboard_read_data (). */
/* No data. */
#define KEYBOARD_NO_DATA (-1)
/* Parity or other error. */
#define KEYBOARD_BAD_DATA (-2)
/* Common variables. */
int mouse_replies_expected;
BOOLEAN has_mouse;
// mailbox_id_type keyboard_target_mailbox_id;
unsigned keyboard_pressed_keys[16];

View File

@@ -1,239 +0,0 @@
/*
* Logitech PS/2++ mouse driver
*
* Copyright (c) 1999-2003 Vojtech Pavlik <vojtech@suse.cz>
* Copyright (c) 2003 Eric Wong <eric@yhbt.net>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published by
* the Free Software Foundation.
*/
#include <ddk/ntddk.h>
#include <ddk/ntddmou.h>
#include "mouse.h"
#include "logips2pp.h"
/*
* Process a PS2++ or PS2T++ packet.
*/
int SendCommand(PDEVICE_EXTENSION DeviceExtension, unsigned char *param, int command);
void PS2PPProcessPacket(PDEVICE_EXTENSION DeviceExtension, PMOUSE_INPUT_DATA Input, int *wheel)
{
unsigned char *packet = DeviceExtension->MouseBuffer;
if ((packet[0] & 0x48) == 0x48 && (packet[1] & 0x02) == 0x02) {
switch ((packet[1] >> 4) | (packet[0] & 0x30)) {
case 0x0d: /* Mouse extra info */
/* FIXME - mouse seems to have 2 wheels
input_report_rel(dev, packet[2] & 0x80 ? REL_HWHEEL : REL_WHEEL,
(int) (packet[2] & 8) - (int) (packet[2] & 7)); */
*wheel = (int)(packet[2] & 8) - (int)(packet[2] & 7);
Input->RawButtons |= (((packet[2] >> 4) & 1) ? GPM_B_FOURTH : 0);
Input->RawButtons |= (((packet[2] >> 5) & 1) ? GPM_B_FIFTH : 0);
break;
case 0x0e: /* buttons 4, 5, 6, 7, 8, 9, 10 info */
Input->RawButtons |= ((packet[2] & 1) ? GPM_B_FOURTH : 0);
Input->RawButtons |= (((packet[2] >> 1) & 1) ? GPM_B_FIFTH : 0);
/* FIXME - support those buttons???
input_report_key(dev, BTN_BACK, (packet[2] >> 3) & 1);
input_report_key(dev, BTN_FORWARD, (packet[2] >> 4) & 1);
input_report_key(dev, BTN_TASK, (packet[2] >> 2) & 1);
*/
break;
case 0x0f: /* TouchPad extra info */
/* FIXME - mouse seems to have 2 wheels
input_report_rel(dev, packet[2] & 0x08 ? REL_HWHEEL : REL_WHEEL,
(int) ((packet[2] >> 4) & 8) - (int) ((packet[2] >> 4) & 7)); */
*wheel = (int) ((packet[2] >> 4) & 8) - (int) ((packet[2] >> 4) & 7);
packet[0] = packet[2] | 0x08;
break;
default:
DbgPrint("logips2pp.c: Received PS2++ packet 0x%x, but don't know how to handle.\n",
(packet[1] >> 4) | (packet[0] & 0x30));
}
packet[0] &= 0x0f;
packet[1] = 0;
packet[2] = 0;
}
}
/*
* ps2pp_cmd() sends a PS2++ command, sliced into two bit
* pieces through the SETRES command. This is needed to send extended
* commands to mice on notebooks that try to understand the PS/2 protocol
* Ugly.
*/
static int ps2pp_cmd(PDEVICE_EXTENSION DeviceExtension, unsigned char *param, unsigned char command)
{
unsigned char d;
int i;
if (SendCommand(DeviceExtension, NULL, PSMOUSE_CMD_SETSCALE11))
return -1;
for (i = 6; i >= 0; i -= 2) {
d = (command >> i) & 3;
if(SendCommand(DeviceExtension, &d, PSMOUSE_CMD_SETRES))
return -1;
}
if (SendCommand(DeviceExtension, param, PSMOUSE_CMD_POLL))
return -1;
return 0;
}
/*
* SmartScroll / CruiseControl for some newer Logitech mice Defaults to
* enabled if we do nothing to it. Of course I put this in because I want it
* disabled :P
* 1 - enabled (if previously disabled, also default)
* 0/2 - disabled
*/
static void ps2pp_set_smartscroll(PDEVICE_EXTENSION DeviceExtension)
{
unsigned char param[4];
ps2pp_cmd(DeviceExtension, param, 0x32);
param[0] = 0;
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRES);
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRES);
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRES);
if (DeviceExtension->SmartScroll == 1)
param[0] = 1;
else
if (DeviceExtension->SmartScroll > 2)
return;
/* else leave param[0] == 0 to disable */
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRES);
}
/*
* Support 800 dpi resolution _only_ if the user wants it (there are good
* reasons to not use it even if the mouse supports it, and of course there are
* also good reasons to use it, let the user decide).
*/
void PS2PPSet800dpi(PDEVICE_EXTENSION DeviceExtension)
{
unsigned char param = 3;
SendCommand(DeviceExtension, NULL, PSMOUSE_CMD_SETSCALE11);
SendCommand(DeviceExtension, NULL, PSMOUSE_CMD_SETSCALE11);
SendCommand(DeviceExtension, NULL, PSMOUSE_CMD_SETSCALE11);
SendCommand(DeviceExtension, &param, PSMOUSE_CMD_SETRES);
}
/*
* Detect the exact model and features of a PS2++ or PS2T++ Logitech mouse or
* touchpad.
*/
int PS2PPDetectModel(PDEVICE_EXTENSION DeviceExtension, unsigned char *param)
{
int i;
//char *vendor, *name;
static int logitech_wheel[] = { 52, 53, 75, 76, 80, 81, 83, 88, 112, -1 };
static int logitech_ps2pp[] = { 12, 13, 40, 41, 42, 43, 50, 51, 52, 53, 73, 75,
76, 80, 81, 83, 88, 96, 97, 112, -1 };
static int logitech_mx[] = { 112, -1 };
//vendor = "Logitech";
//DbgPrint("Vendor: %s, name: %s\n", vendor, name);
DeviceExtension->MouseModel = ((param[0] >> 4) & 0x07) | ((param[0] << 3) & 0x78);
/*if (param[1] < 3)
clear_bit(BTN_MIDDLE, DeviceExtension->dev.keybit);
if (param[1] < 2)
clear_bit(BTN_RIGHT, DeviceExtension->dev.keybit);*/
DeviceExtension->MouseType = PSMOUSE_PS2;
for (i = 0; logitech_ps2pp[i] != -1; i++)
if (logitech_ps2pp[i] == DeviceExtension->MouseModel)
DeviceExtension->MouseType = PSMOUSE_PS2PP;
if (DeviceExtension->MouseType == PSMOUSE_PS2PP) {
/* for (i = 0; logitech_4btn[i] != -1; i++)
if (logitech_4btn[i] == DeviceExtension->MouseModel)
set_bit(BTN_SIDE, psmouse->dev.keybit);
*/
for (i = 0; logitech_wheel[i] != -1; i++)
if (logitech_wheel[i] == DeviceExtension->MouseModel) {
// set_bit(REL_WHEEL, psmouse->dev.relbit);
//name = "Wheel Mouse";DbgPrint("Vendor: %s, name: %s\n", vendor, name);
}
for (i = 0; logitech_mx[i] != -1; i++)
if (logitech_mx[i] == DeviceExtension->MouseModel) {
/* set_bit(BTN_SIDE, psmouse->dev.keybit);
set_bit(BTN_EXTRA, psmouse->dev.keybit);
set_bit(BTN_BACK, psmouse->dev.keybit);
set_bit(BTN_FORWARD, psmouse->dev.keybit);
set_bit(BTN_TASK, psmouse->dev.keybit);
*/ //name = "MX Mouse";DbgPrint("Vendor: %s, name: %s\n", vendor, name);
}
/*
* Do Logitech PS2++ / PS2T++ magic init.
*/
if (DeviceExtension->MouseModel == 97) { /* TouchPad 3 */
// set_bit(REL_WHEEL, psmouse->dev.relbit);
// set_bit(REL_HWHEEL, psmouse->dev.relbit);
param[0] = 0x11; param[1] = 0x04; param[2] = 0x68; /* Unprotect RAM */
SendCommand(DeviceExtension, param, 0x30d1);
param[0] = 0x11; param[1] = 0x05; param[2] = 0x0b; /* Enable features */
SendCommand(DeviceExtension, param, 0x30d1);
param[0] = 0x11; param[1] = 0x09; param[2] = 0xc3; /* Enable PS2++ */
SendCommand(DeviceExtension, param, 0x30d1);
param[0] = 0;
if (!SendCommand(DeviceExtension, param, 0x13d1) &&
param[0] == 0x06 && param[1] == 0x00 && param[2] == 0x14) {
//name = "TouchPad 3";DbgPrint("Vendor: %s, name: %s\n", vendor, name);
return PSMOUSE_PS2TPP;
}
} else {
param[0] = param[1] = param[2] = 0;
ps2pp_cmd(DeviceExtension, param, 0x39); /* Magic knock */
ps2pp_cmd(DeviceExtension, param, 0xDB);
if ((param[0] & 0x78) == 0x48 && (param[1] & 0xf3) == 0xc2 &&
(param[2] & 3) == ((param[1] >> 2) & 3)) {
ps2pp_set_smartscroll(DeviceExtension);
return PSMOUSE_PS2PP;
}
}
}
return 0;
}

View File

@@ -1,19 +0,0 @@
/*
* Logitech PS/2++ mouse driver header
*
* Copyright (c) 2003 Vojtech Pavlik <vojtech@suse.cz>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published by
* the Free Software Foundation.
*/
#include <ddk/ntddk.h>
#include <ddk/iotypes.h>
#include "psaux.h"
#ifndef _LOGIPS2PP_H
#define _LOGIPS2PP_H
void ps2pp_process_packet(PDEVICE_EXTENSION DeviceExtension, PMOUSE_INPUT_DATA Input);
void ps2pp_set_800dpi(PDEVICE_EXTENSION DeviceExtension);
int ps2pp_detect_model(PDEVICE_EXTENSION DeviceExtension, unsigned char *param);
#endif

View File

@@ -1,15 +0,0 @@
# $Id$
PATH_TO_TOP = ../../..
TARGET_TYPE = driver
TARGET_NAME = psaux
TARGET_CFLAGS = -Wall -Werror
TARGET_OBJECTS = $(TARGET_NAME).o controller.o mouse.o logips2pp.o synaptics.o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk

View File

@@ -1,679 +0,0 @@
/*
** PS/2 Mouse Driver
** Written by Thomas Weidenmueller (w3seek@users.sourceforge.net)
** For ReactOS (www.reactos.com)
** Adapted from the linux 2.6 mouse driver
*/
#include <ddk/ntddk.h>
#include <ddk/ntddmou.h>
#include "controller.h"
#include "mouse.h"
#include "psaux.h"
#define NDEBUG
#include <debug.h>
int InitSynaptics(PDEVICE_EXTENSION DeviceExtension);
void PS2PPProcessPacket(PDEVICE_EXTENSION DeviceExtension, PMOUSE_INPUT_DATA Input, int *wheel);
void PS2PPSet800dpi(PDEVICE_EXTENSION DeviceExtension);
int PS2PPDetectModel(PDEVICE_EXTENSION DeviceExtension, unsigned char *param);
// Parse incoming packets
BOOLEAN FASTCALL
ParsePackets(PDEVICE_EXTENSION DeviceExtension, PMOUSE_INPUT_DATA Input)
{
ULONG ButtonsDiff;
int wheel = 0;
unsigned char *packet = DeviceExtension->MouseBuffer;
/* Determine the current state of the buttons */
Input->RawButtons = ((packet[0] & 1) ? GPM_B_LEFT : 0);
Input->RawButtons |= (((packet[0] >> 1) & 1) ? GPM_B_RIGHT : 0);
Input->RawButtons |= (((packet[0] >> 2) & 1) ? GPM_B_MIDDLE : 0);
/*
* The PS2++ protocol is a little bit complex
*/
if(DeviceExtension->MouseType == PSMOUSE_PS2PP || DeviceExtension->MouseType == PSMOUSE_PS2TPP)
PS2PPProcessPacket(DeviceExtension, Input, &wheel);
/*
* Scroll wheel on IntelliMice, scroll buttons on NetMice
*/
if(DeviceExtension->MouseType == PSMOUSE_IMPS || DeviceExtension->MouseType == PSMOUSE_GENPS)
{
wheel = (int)(-(signed char) packet[3]);
}
/*
* Scroll wheel and buttons on IntelliMouse Explorer
*/
if(DeviceExtension->MouseType == PSMOUSE_IMEX)
{
wheel = (int)(packet[3] & 8) - (int)(packet[3] & 7);
Input->RawButtons |= (((packet[3] >> 4) & 1) ? GPM_B_FOURTH : 0);
Input->RawButtons |= (((packet[3] >> 5) & 1) ? GPM_B_FIFTH : 0);
}
/*
* Extra buttons on Genius NewNet 3D
*/
if(DeviceExtension->MouseType == PSMOUSE_GENPS)
{
Input->RawButtons |= (((packet[0] >> 6) & 1) ? GPM_B_FOURTH : 0);
Input->RawButtons |= (((packet[0] >> 7) & 1) ? GPM_B_FIFTH : 0);
}
/*
* Determine ButtonFlags
*/
Input->ButtonFlags = 0;
ButtonsDiff = DeviceExtension->PreviousButtons ^ Input->RawButtons;
/*
* Generic PS/2 Mouse
*/
if(ButtonsDiff & GPM_B_LEFT)
Input->ButtonFlags |= ((Input->RawButtons & GPM_B_LEFT) ? MOUSE_BUTTON_1_DOWN : MOUSE_BUTTON_1_UP);
if(ButtonsDiff & GPM_B_RIGHT)
Input->ButtonFlags |= ((Input->RawButtons & GPM_B_RIGHT) ? MOUSE_BUTTON_2_DOWN : MOUSE_BUTTON_2_UP);
if(ButtonsDiff & GPM_B_MIDDLE)
Input->ButtonFlags |= ((Input->RawButtons & GPM_B_MIDDLE) ? MOUSE_BUTTON_3_DOWN : MOUSE_BUTTON_3_UP);
if(ButtonsDiff & GPM_B_FOURTH)
Input->ButtonFlags |= ((Input->RawButtons & GPM_B_FOURTH) ? MOUSE_BUTTON_4_DOWN : MOUSE_BUTTON_4_UP);
if(ButtonsDiff & GPM_B_FIFTH)
Input->ButtonFlags |= ((Input->RawButtons & GPM_B_FIFTH) ? MOUSE_BUTTON_5_DOWN : MOUSE_BUTTON_5_UP);
/* Some PS/2 mice send reports with negative bit set in data[0] and zero for
* movement. I think this is a bug in the mouse, but working around it only
* causes artifacts when the actual report is -256; they'll be treated as zero.
* This should be rare if the mouse sampling rate is set to a reasonable value;
* the default of 100 Hz is plenty. (Stephen Tell) */
/* Determine LastX */
if(packet[1])
Input->LastX = ((packet[0] & 0x10) ? (int)(packet[1] - 256) : (int) packet[1]);
else
Input->LastX = 0;
/* Determine LastY */
if(packet[2])
Input->LastY = -((packet[0] & 0x20) ? (int)(packet[2] - 256) : (int) packet[2]);
else
Input->LastY = 0;
/* Copy RawButtons to Previous Buttons for Input */
DeviceExtension->PreviousButtons = Input->RawButtons;
if((wheel != 0) && (wheel >= -8) && (wheel <= 7))
{
Input->ButtonFlags |= MOUSE_WHEEL;
Input->ButtonData = (UINT)(wheel * WHEEL_DELTA);
}
return TRUE;
}
// Handle a mouse event
BOOLEAN STDCALL
MouseHandler(PKINTERRUPT Interrupt, PVOID ServiceContext)
{
PDEVICE_OBJECT DeviceObject = (PDEVICE_OBJECT)ServiceContext;
PDEVICE_EXTENSION DeviceExtension = DeviceObject->DeviceExtension;
PMOUSE_INPUT_DATA Input;
ULONG Queue;
BOOLEAN ret;
unsigned scancode;
unsigned status = controller_read_status();
scancode = controller_read_input();
/* Don't handle the mouse event if we aren't connected to the mouse class driver */
if (DeviceExtension->ClassInformation.CallBack == NULL)
{
return FALSE;
}
if ((status & CONTROLLER_STATUS_MOUSE_OUTPUT_BUFFER_FULL) != 0)
{
// mouse_handle_event(scancode); proceed to handle it
}
else
{
return FALSE; // keyboard_handle_event(scancode);
}
/* Add this scancode to the mouse event queue. */
DeviceExtension->MouseBuffer[DeviceExtension->MouseBufferPosition] = scancode;
DeviceExtension->MouseBufferPosition++;
/* If the buffer is full, parse this event */
if (DeviceExtension->MouseBufferPosition == DeviceExtension->MouseBufferSize)
{
Queue = DeviceExtension->ActiveQueue % 2;
/* Reset the buffer state. */
DeviceExtension->MouseBufferPosition = 0;
/* Prevent buffer overflow */
if (DeviceExtension->InputDataCount[Queue] == MOUSE_BUFFER_SIZE)
{
return TRUE;
}
Input = &DeviceExtension->MouseInputData[Queue]
[DeviceExtension->InputDataCount[Queue]];
ret = ParsePackets(DeviceExtension, Input);
/* Send the Input data to the Mouse Class driver */
DeviceExtension->InputDataCount[Queue]++;
KeInsertQueueDpc(&DeviceExtension->IsrDpc, DeviceObject->CurrentIrp, NULL);
return ret;
}
return TRUE;
}
// Write a PS/2 mouse command.
static void mouse_write_command(int command)
{
controller_wait();
controller_write_command(CONTROLLER_COMMAND_WRITE_MODE);
controller_wait();
controller_write_output(command);
}
// Sends a byte to the mouse
static int SendByte(PDEVICE_EXTENSION DeviceExtension, unsigned char byte)
{
int timeout = 100; /* 100 msec */
int scancode;
unsigned char status;
LARGE_INTEGER Millisecond_Timeout;
Millisecond_Timeout.QuadPart = -10000L;
DeviceExtension->ack = 0;
DeviceExtension->acking = 1;
controller_wait();
controller_write_command(CONTROLLER_COMMAND_WRITE_MOUSE);
controller_wait();
controller_write_output(byte);
while ((DeviceExtension->ack == 0) && timeout--)
{
status = controller_read_status();
if((status & CONTROLLER_STATUS_OUTPUT_BUFFER_FULL) != 0)
{
scancode = controller_read_input();
if(scancode >= 0)
{
switch(scancode)
{
case PSMOUSE_RET_ACK:
DeviceExtension->ack = 1;
break;
case PSMOUSE_RET_NAK:
DeviceExtension->ack = -1;
break;
default:
DeviceExtension->ack = 1; /* Workaround for mice which don't ACK the Get ID command */
if (DeviceExtension->RepliesExpected)
DeviceExtension->pkt[--DeviceExtension->RepliesExpected] = scancode;
break;
}
return (int)(-(DeviceExtension->ack <= 0));
}
}
KeDelayExecutionThread (KernelMode, FALSE, &Millisecond_Timeout);
}
return (int)(-(DeviceExtension->ack <= 0));
}
// Send a PS/2 command to the mouse.
int SendCommand(PDEVICE_EXTENSION DeviceExtension, unsigned char *param, int command)
{
LARGE_INTEGER Millisecond_Timeout;
unsigned char status;
int scancode;
int timeout = 500; /* 500 msec */
int send = (command >> 12) & 0xf;
int receive = (command >> 8) & 0xf;
int i;
Millisecond_Timeout.QuadPart = -10000L;
DeviceExtension->RepliesExpected = receive;
if (command == PSMOUSE_CMD_RESET_BAT)
timeout = 2000; /* 2 sec */
if (command & 0xff)
if (SendByte(DeviceExtension, command & 0xff))
return (int)(DeviceExtension->RepliesExpected = 0) - 1;
for (i = 0; i < send; i++)
if (SendByte(DeviceExtension, param[i]))
return (int)(DeviceExtension->RepliesExpected = 0) - 1;
while (DeviceExtension->RepliesExpected && timeout--)
{
if (DeviceExtension->RepliesExpected == 1 && command == PSMOUSE_CMD_RESET_BAT)
timeout = 100;
if (DeviceExtension->RepliesExpected == 1 && command == PSMOUSE_CMD_GETID &&
DeviceExtension->pkt[1] != 0xab && DeviceExtension->pkt[1] != 0xac)
{
DeviceExtension->RepliesExpected = 0;
break;
}
status = controller_read_status();
if((status & CONTROLLER_STATUS_OUTPUT_BUFFER_FULL) != 0)
{
scancode = controller_read_input();
if(scancode >= 0)
{
DeviceExtension->pkt[--DeviceExtension->RepliesExpected] = scancode;
}
}
KeDelayExecutionThread (KernelMode, FALSE, &Millisecond_Timeout);
}
for (i = 0; i < receive; i++)
param[i] = DeviceExtension->pkt[(receive - 1) - i];
if (DeviceExtension->RepliesExpected)
return (int)(DeviceExtension->RepliesExpected = 0) - 1;
return 0;
}
// changes the resolution of the mouse
void SetResolution(PDEVICE_EXTENSION DeviceExtension)
{
unsigned char param[1];
if(DeviceExtension->MouseType == PSMOUSE_PS2PP && DeviceExtension->Resolution > 400)
{
PS2PPSet800dpi(DeviceExtension);
return;
}
if(!DeviceExtension->Resolution || DeviceExtension->Resolution >= 200)
param[0] = 3;
else if(DeviceExtension->Resolution >= 100)
param[0] = 2;
else if(DeviceExtension->Resolution >= 50)
param[0] = 1;
else if(DeviceExtension->Resolution )
param[0] = 0;
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRES);
}
// Detect mouse models
int TestMouseExtensions(PDEVICE_EXTENSION DeviceExtension)
{
unsigned char param[4];
int type = 0;
param[0] = 0;
// vendor = Generic
// name = Mouse
DeviceExtension->MouseModel = 0;
/*
* Try Synaptics TouchPad magic ID
*/
param[0] = 0;
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRES);
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRES);
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRES);
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRES);
SendCommand(DeviceExtension, param, PSMOUSE_CMD_GETINFO);
if(param[1] == 0x47)
{
// vendor = Synaptics
// name = TouchPad
if(!InitSynaptics(DeviceExtension))
return PSMOUSE_SYNAPTICS;
else
return PSMOUSE_PS2;
}
/*
* Try Genius NetMouse magic init.
*/
param[0] = 3;
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRES);
SendCommand(DeviceExtension, NULL, PSMOUSE_CMD_SETSCALE11);
SendCommand(DeviceExtension, NULL, PSMOUSE_CMD_SETSCALE11);
SendCommand(DeviceExtension, NULL, PSMOUSE_CMD_SETSCALE11);
SendCommand(DeviceExtension, param, PSMOUSE_CMD_GETINFO);
if(param[0] == 0x00 && param[1] == 0x33 && param[2] == 0x55)
{
// vendor = Genius
// name = Wheel Mouse
// Features = 4th, 5th, Wheel
return PSMOUSE_GENPS;
}
/*
* Try Logitech magic ID.
*/
param[0] = 0;
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRES);
SendCommand(DeviceExtension, NULL, PSMOUSE_CMD_SETSCALE11);
SendCommand(DeviceExtension, NULL, PSMOUSE_CMD_SETSCALE11);
SendCommand(DeviceExtension, NULL, PSMOUSE_CMD_SETSCALE11);
param[1] = 0;
SendCommand(DeviceExtension, param, PSMOUSE_CMD_GETINFO);
if(param[1])
{
type = PS2PPDetectModel(DeviceExtension, param);
if(type)
return type;
}
/*
* Try IntelliMouse magic init.
*/
param[0] = 200;
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRATE);
param[0] = 100;
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRATE);
param[0] = 80;
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRATE);
SendCommand(DeviceExtension, param, PSMOUSE_CMD_GETID);
if(param[0] == 3)
{
// Features = Wheel
/*
* Try IntelliMouse/Explorer magic init.
*/
param[0] = 200;
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRATE);
param[0] = 200;
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRATE);
param[0] = 80;
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRATE);
SendCommand(DeviceExtension, param, PSMOUSE_CMD_GETID);
if(param[0] == 4)
{
// name = Explorer Mouse
// Features = 4th, 5th, Wheel
return PSMOUSE_IMEX;
}
// name = Wheel Mouse
return PSMOUSE_IMPS;
}
/*
* Okay, all failed, we have a standard mouse here. The number of the buttons
* is still a question, though. We assume 3.
*/
return PSMOUSE_PS2;
}
// Detect if mouse is just a standard ps/2 mouse
int TestMouse(PDEVICE_EXTENSION DeviceExtension)
{
unsigned char param[4];
param[0] = param[1] = 0xa5;
/*
* First, we check if it's a mouse. It should send 0x00 or 0x03
* in case of an IntelliMouse in 4-byte mode or 0x04 for IM Explorer.
*/
if(SendCommand(DeviceExtension, param, PSMOUSE_CMD_GETID))
return -1;
if(param[0] != 0x00 && param[0] != 0x03 && param[0] != 0x04)
return -1;
/*
* Then we reset and disable the mouse so that it doesn't generate events.
*/
if(DeviceExtension->NoExtensions)
{
return DeviceExtension->MouseType = PSMOUSE_PS2;
}
if(SendCommand(DeviceExtension, NULL, PSMOUSE_CMD_RESET_DIS))
return -1;
return DeviceExtension->MouseType = TestMouseExtensions(DeviceExtension);
}
// Initialize and enable the mouse
void InitializeMouse(PDEVICE_EXTENSION DeviceExtension)
{
unsigned char param[4];
/*
* We set the mouse report rate to a highest possible value.
* We try 100 first in case mouse fails to set 200.
*/
param[0] = 200;
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRATE);
param[0] = 100;
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETRATE);
SetResolution(DeviceExtension);
SendCommand(DeviceExtension, NULL, PSMOUSE_CMD_SETSCALE11);
/*
* We set the mouse into streaming mode.
*/
SendCommand(DeviceExtension, param, PSMOUSE_CMD_SETSTREAM);
/*
* Last, we enable the mouse so that we get reports from it.
*/
if(SendCommand(DeviceExtension, NULL, PSMOUSE_CMD_ENABLE))
DbgPrint("mouse.c: Failed to enable mouse!\n");
}
// Load settings from registry (by Filip Navara)
BOOL LoadMouseSettings(PDEVICE_EXTENSION DeviceExtension, PUNICODE_STRING RegistryPath)
{
/*
* Get the parameters from registry
*/
ULONG DefaultMouseResolution = 0;
ULONG DisableExtensionDetection = 1;
UNICODE_STRING ParametersPath;
RTL_QUERY_REGISTRY_TABLE Parameters[3];
PWSTR ParametersKeyPath = L"\\Parameters";
NTSTATUS Status;
RtlZeroMemory(Parameters, sizeof(Parameters));
/*
* Formulate path to registry
*/
RtlInitUnicodeString(&ParametersPath, NULL);
ParametersPath.MaximumLength = RegistryPath->Length +
(wcslen(ParametersKeyPath) * sizeof(WCHAR)) + sizeof(UNICODE_NULL);
ParametersPath.Buffer = ExAllocatePool(PagedPool,
ParametersPath.MaximumLength);
if (!ParametersPath.Buffer)
{
DPRINT("Can't allocate buffer for parameters\n");
return FALSE;
}
RtlZeroMemory(ParametersPath.Buffer, ParametersPath.MaximumLength);
RtlAppendUnicodeToString(&ParametersPath, RegistryPath->Buffer);
RtlAppendUnicodeToString(&ParametersPath, ParametersKeyPath);
DPRINT("Parameters Path: %wZ\n", &ParametersPath);
Parameters[0].Flags = RTL_QUERY_REGISTRY_DIRECT;
Parameters[0].Name = L"Resolution";
Parameters[0].EntryContext = &DeviceExtension->Resolution;
Parameters[0].DefaultType = REG_DWORD;
Parameters[0].DefaultData = &DefaultMouseResolution;
Parameters[0].DefaultLength = sizeof(ULONG);
Parameters[1].Flags = RTL_QUERY_REGISTRY_DIRECT;
Parameters[1].Name = L"DisableExtensionDetection";
Parameters[1].EntryContext = &DeviceExtension->NoExtensions;
Parameters[1].DefaultType = REG_DWORD;
Parameters[1].DefaultData = &DisableExtensionDetection;
Parameters[1].DefaultLength = sizeof(ULONG);
Status = RtlQueryRegistryValues(
RTL_REGISTRY_ABSOLUTE | RTL_REGISTRY_OPTIONAL,
ParametersPath.Buffer,
Parameters,
NULL,
NULL);
if (!NT_SUCCESS(Status))
{
DPRINT("RtlQueryRegistryValues failed (0x%x)\n", Status);
return FALSE;
}
return TRUE;
}
// Initialize the PS/2 mouse support
BOOLEAN SetupMouse(PDEVICE_OBJECT DeviceObject, PUNICODE_STRING RegistryPath)
{
PDEVICE_EXTENSION DeviceExtension = DeviceObject->DeviceExtension;
ULONG MappedIrq;
KIRQL Dirql;
KAFFINITY Affinity;
LARGE_INTEGER Millisecond_Timeout;
Millisecond_Timeout.QuadPart = -10000L;
/* setup */
DeviceExtension->NoExtensions = 0;
DeviceExtension->InputDataCount[0] = 0;
DeviceExtension->InputDataCount[1] = 0;
DeviceExtension->ActiveQueue = 0;
DeviceExtension->MouseBufferPosition = 0;
DeviceExtension->MouseBufferSize = 3;
DeviceExtension->Resolution = 0;
DeviceExtension->RepliesExpected = 0;
DeviceExtension->PreviousButtons = 0;
DeviceExtension->SmartScroll = 1;
DeviceExtension->ack = 0;
DeviceExtension->acking = 0;
LoadMouseSettings(DeviceExtension, RegistryPath);
// Enable the PS/2 mouse port
controller_write_command_word (CONTROLLER_COMMAND_MOUSE_ENABLE);
//InitializeMouse(DeviceExtension);
DeviceExtension->MouseType = TestMouse(DeviceExtension);
if(DeviceExtension->MouseType > 0)
{
/* set the incoming buffer to 4 if needed */
DeviceExtension->MouseBufferSize += (DeviceExtension->MouseType >= PSMOUSE_GENPS);
DPRINT("Detected Mouse: 0x%x\n", DeviceExtension->MouseType);
InitializeMouse(DeviceExtension);
// Enable controller interrupts
mouse_write_command (MOUSE_INTERRUPTS_ON);
// Connect the interrupt for the mouse irq
MappedIrq = HalGetInterruptVector(Internal, 0, 0, MOUSE_IRQ, &Dirql, &Affinity);
IoConnectInterrupt(&DeviceExtension->MouseInterrupt, MouseHandler, DeviceObject, NULL, MappedIrq,
Dirql, Dirql, 0, FALSE, Affinity, FALSE);
}
else
{
/* FIXME - this fixes the crash if no mouse was detected */
// Connect the interrupt for the mouse irq
MappedIrq = HalGetInterruptVector(Internal, 0, 0, MOUSE_IRQ, &Dirql, &Affinity);
IoConnectInterrupt(&DeviceExtension->MouseInterrupt, MouseHandler, DeviceObject, NULL, MappedIrq,
Dirql, Dirql, 0, FALSE, Affinity, FALSE);
}
return TRUE;
}
// Check if this is a dual port controller.
BOOLEAN DetectPS2Port(void)
{
int loops;
unsigned scancode;
BOOLEAN return_value = FALSE;
LARGE_INTEGER Millisecond_Timeout;
Millisecond_Timeout.QuadPart = -10000L;
//return TRUE; // The rest of this code fails under BOCHs
/* Put the value 0x5A in the output buffer using the "WriteAuxiliary Device Output Buffer" command (0xD3).
Poll the Status Register for a while to see if the value really turns up in the Data Register. If the
KEYBOARD_STATUS_MOUSE_OBF bit is also set to 1 in the Status Register, we assume this controller has an
Auxiliary Port (a.k.a. Mouse Port). */
controller_wait ();
controller_write_command(CONTROLLER_COMMAND_WRITE_MOUSE_OUTPUT_BUFFER);
controller_wait ();
/* 0x5A is a random dummy value */
controller_write_output(0x5A);
for (loops = 0; loops < 10; loops++)
{
unsigned char status = controller_read_status();
if((status & CONTROLLER_STATUS_OUTPUT_BUFFER_FULL) != 0)
{
scancode = controller_read_input();
if((status & CONTROLLER_STATUS_MOUSE_OUTPUT_BUFFER_FULL) != 0)
{
return_value = TRUE;
}
break;
}
KeDelayExecutionThread(KernelMode, FALSE, &Millisecond_Timeout);
}
return return_value;
}

View File

@@ -1,59 +0,0 @@
// All or parts of this file are from CHAOS (http://www.se.chaosdev.org/).
// CHAOS is also under the GNU General Public License.
#define WHEEL_DELTA (120)
#define PSMOUSE_CMD_SETSCALE11 0x00e6
#define PSMOUSE_CMD_SETRES 0x10e8
#define PSMOUSE_CMD_GETINFO 0x03e9
#define PSMOUSE_CMD_SETSTREAM 0x00ea
#define PSMOUSE_CMD_POLL 0x03eb
#define PSMOUSE_CMD_GETID 0x02f2
#define PSMOUSE_CMD_SETRATE 0x10f3
#define PSMOUSE_CMD_ENABLE 0x00f4
#define PSMOUSE_CMD_RESET_DIS 0x00f6
#define PSMOUSE_CMD_RESET_BAT 0x02ff
#define PSMOUSE_RET_BAT 0xaa
#define PSMOUSE_RET_ACK 0xfa
#define PSMOUSE_RET_NAK 0xfe
#define MOUSE_INTERRUPTS_OFF (CONTROLLER_MODE_KCC | \
CONTROLLER_MODE_DISABLE_MOUSE | \
CONTROLLER_MODE_SYS | \
CONTROLLER_MODE_KEYBOARD_INTERRUPT)
#define MOUSE_INTERRUPTS_ON (CONTROLLER_MODE_KCC | \
CONTROLLER_MODE_SYS | \
CONTROLLER_MODE_MOUSE_INTERRUPT | \
CONTROLLER_MODE_KEYBOARD_INTERRUPT)
// Used with mouse buttons
#define GPM_B_LEFT 0x01
#define GPM_B_RIGHT 0x02
#define GPM_B_MIDDLE 0x04
#define GPM_B_FOURTH 0x10
#define GPM_B_FIFTH 0x20
// Mouse types
#define PSMOUSE_PS2 1
#define PSMOUSE_PS2PP 2
#define PSMOUSE_PS2TPP 3
#define PSMOUSE_GENPS 4
#define PSMOUSE_IMPS 5
#define PSMOUSE_IMEX 6
#define PSMOUSE_SYNAPTICS 7
// Some aux operations take long time
#define MAX_RETRIES 60
// Hardware defines
#define MOUSE_IRQ 12
#define MOUSE_WRAP_MASK 0x1F
#define MOUSE_ISINTELLIMOUSE 0x03
#define MOUSE_ISINTELLIMOUSE5BUTTONS 0x04
BOOLEAN DetectPS2Port(void);
BOOLEAN SetupMouse(PDEVICE_OBJECT DeviceObject, PUNICODE_STRING RegistryPath);
void controller_wait(void);

View File

@@ -1,253 +0,0 @@
/*
** PS/2 driver 0.0.2
** Written by Jason Filby (jasonfilby@yahoo.com)
** For ReactOS (www.reactos.com)
** Handles the keyboard and mouse on the PS/2 ports
** TODO: Fix detect_ps2_port(void) so that it works under BOCHs
*/
#include <ddk/ntddk.h>
#include <ddk/ntddmou.h>
#include "mouse.h"
#include "psaux.h"
#define NDEBUG
#include <debug.h>
static PIRP CurrentIrp;
static ULONG MouseDataRead;
static ULONG MouseDataRequired;
static BOOLEAN AlreadyOpened = FALSE;
BOOLEAN STDCALL
MouseSynchronizeRoutine(PVOID Context)
{
PIRP Irp = (PIRP)Context;
PIO_STACK_LOCATION stk = IoGetCurrentIrpStackLocation(Irp);
ULONG NrToRead = stk->Parameters.Read.Length/sizeof(MOUSE_INPUT_DATA);
if ((stk->Parameters.Read.Length/sizeof(MOUSE_INPUT_DATA))==NrToRead)
{
return(TRUE);
}
MouseDataRequired=stk->Parameters.Read.Length/sizeof(MOUSE_INPUT_DATA);
MouseDataRead=NrToRead;
CurrentIrp=Irp;
return(FALSE);
}
VOID STDCALL
PS2MouseStartIo(PDEVICE_OBJECT DeviceObject, PIRP Irp)
{
PDEVICE_EXTENSION DeviceExtension = DeviceObject->DeviceExtension;
if (KeSynchronizeExecution(DeviceExtension->MouseInterrupt, MouseSynchronizeRoutine, Irp))
{
KIRQL oldIrql;
Irp->IoStatus.Status = STATUS_SUCCESS;
Irp->IoStatus.Information = 0;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
oldIrql = KeGetCurrentIrql();
if (oldIrql < DISPATCH_LEVEL)
{
KeRaiseIrql (DISPATCH_LEVEL, &oldIrql);
IoStartNextPacket (DeviceObject, FALSE);
KeLowerIrql(oldIrql);
}
else
{
IoStartNextPacket (DeviceObject, FALSE);
}
}
}
NTSTATUS STDCALL
PS2MouseDispatch(PDEVICE_OBJECT DeviceObject, PIRP Irp)
{
PIO_STACK_LOCATION stk = IoGetCurrentIrpStackLocation(Irp);
NTSTATUS Status;
switch (stk->MajorFunction)
{
case IRP_MJ_CREATE:
if (AlreadyOpened == TRUE)
{
Status = STATUS_SUCCESS;
}
else
{
Status = STATUS_SUCCESS;
AlreadyOpened = TRUE;
}
break;
case IRP_MJ_CLOSE:
Status = STATUS_SUCCESS;
break;
default:
DPRINT1("NOT IMPLEMENTED\n");
Status = STATUS_NOT_IMPLEMENTED;
break;
}
if (Status==STATUS_PENDING)
{
IoMarkIrpPending(Irp);
}
else
{
Irp->IoStatus.Status = Status;
Irp->IoStatus.Information = 0;
IoCompleteRequest(Irp,IO_NO_INCREMENT);
}
return(Status);
}
BOOLEAN STDCALL PS2MouseInitializeDataQueue(PVOID Context)
{
return(TRUE);
}
NTSTATUS STDCALL
PS2MouseInternalDeviceControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
{
PDEVICE_EXTENSION DeviceExtension = DeviceObject->DeviceExtension;
PIO_STACK_LOCATION Stack = IoGetCurrentIrpStackLocation(Irp);
NTSTATUS status;
switch(Stack->Parameters.DeviceIoControl.IoControlCode)
{
case IOCTL_INTERNAL_MOUSE_CONNECT:
DeviceExtension->ClassInformation =
*((PCLASS_INFORMATION)Stack->Parameters.DeviceIoControl.Type3InputBuffer);
// Reinitialize the port input data queue synchronously
KeSynchronizeExecution(DeviceExtension->MouseInterrupt,
PS2MouseInitializeDataQueue, DeviceExtension);
status = STATUS_SUCCESS;
break;
default:
status = STATUS_INVALID_DEVICE_REQUEST;
break;
}
Irp->IoStatus.Status = status;
if (status == STATUS_PENDING) {
IoMarkIrpPending(Irp);
IoStartPacket(DeviceObject, Irp, NULL, NULL);
} else {
IoCompleteRequest(Irp, IO_NO_INCREMENT);
}
return status;
}
VOID PS2MouseIsrDpc(PKDPC Dpc, PDEVICE_OBJECT DeviceObject, PIRP Irp, PVOID Context)
{
PDEVICE_EXTENSION DeviceExtension = DeviceObject->DeviceExtension;
ULONG Queue;
Queue = DeviceExtension->ActiveQueue % 2;
InterlockedIncrement((PLONG)&DeviceExtension->ActiveQueue);
(*(PSERVICE_CALLBACK_ROUTINE)DeviceExtension->ClassInformation.CallBack)(
DeviceExtension->ClassInformation.DeviceObject,
DeviceExtension->MouseInputData[Queue],
NULL,
&DeviceExtension->InputDataCount[Queue]);
DeviceExtension->InputDataCount[Queue] = 0;
}
/* Maximum value plus one for \Device\PointerClass* device name */
#define POINTER_PORTS_MAXIMUM 8
/* Letter count for POINTER_PORTS_MAXIMUM variable * sizeof(WCHAR) */
#define SUFFIX_MAXIMUM_SIZE (1 * sizeof(WCHAR))
/* This is almost the same routine as in sermouse.c. */
STATIC PDEVICE_OBJECT
AllocatePointerDevice(PDRIVER_OBJECT DriverObject)
{
PDEVICE_OBJECT DeviceObject;
UNICODE_STRING DeviceName;
UNICODE_STRING SuffixString;
PDEVICE_EXTENSION DeviceExtension;
ULONG Suffix;
NTSTATUS Status;
/* Allocate buffer for full device name */
RtlInitUnicodeString(&DeviceName, NULL);
DeviceName.MaximumLength = sizeof(DD_MOUSE_DEVICE_NAME_U) + SUFFIX_MAXIMUM_SIZE + sizeof(UNICODE_NULL);
DeviceName.Buffer = ExAllocatePool(PagedPool, DeviceName.MaximumLength);
RtlAppendUnicodeToString(&DeviceName, DD_MOUSE_DEVICE_NAME_U);
/* Allocate buffer for device name suffix */
RtlInitUnicodeString(&SuffixString, NULL);
SuffixString.MaximumLength = SUFFIX_MAXIMUM_SIZE + sizeof(UNICODE_NULL);
SuffixString.Buffer = ExAllocatePool(PagedPool, SuffixString.MaximumLength);
/* Generate full qualified name with suffix */
for (Suffix = 0; Suffix < POINTER_PORTS_MAXIMUM; ++Suffix)
{
ANSI_STRING DebugString;
RtlIntegerToUnicodeString(Suffix, 10, &SuffixString);
RtlAppendUnicodeToString(&DeviceName, SuffixString.Buffer);
// FIXME: this isn't really a serial mouse port driver
Status = IoCreateDevice(DriverObject, sizeof(DEVICE_EXTENSION),
&DeviceName, FILE_DEVICE_SERIAL_MOUSE_PORT, 0, TRUE, &DeviceObject);
RtlUnicodeStringToAnsiString(&DebugString, &DeviceName, TRUE);
DPRINT("%s", DebugString.Buffer);
RtlFreeAnsiString(&DebugString);
/* Device successfully created, leave the cyclus */
if (NT_SUCCESS(Status))
break;
DeviceName.Length -= SuffixString.Length;
}
ExFreePool(DeviceName.Buffer);
ExFreePool(SuffixString.Buffer);
/* Couldn't create device */
if (!NT_SUCCESS(Status))
{
return NULL;
}
DeviceObject->Flags = DeviceObject->Flags | DO_BUFFERED_IO;
DeviceExtension = DeviceObject->DeviceExtension;
KeInitializeDpc(&DeviceExtension->IsrDpc, (PKDEFERRED_ROUTINE)PS2MouseIsrDpc, DeviceObject);
return DeviceObject;
}
NTSTATUS STDCALL
DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
{
PDEVICE_OBJECT DeviceObject;
if (DetectPS2Port() == TRUE) {
DPRINT("PS2 Port Driver version 0.0.2\n");
} else {
DPRINT1("PS2 port not found.\n");
return STATUS_UNSUCCESSFUL;
}
DriverObject->MajorFunction[IRP_MJ_CREATE] = PS2MouseDispatch;
DriverObject->MajorFunction[IRP_MJ_CLOSE] = PS2MouseDispatch;
DriverObject->MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] = PS2MouseInternalDeviceControl;
DriverObject->DriverStartIo = PS2MouseStartIo;
DeviceObject = AllocatePointerDevice(DriverObject);
SetupMouse(DeviceObject, RegistryPath);
return(STATUS_SUCCESS);
}

View File

@@ -1,28 +0,0 @@
typedef struct _DEVICE_EXTENSION {
PDEVICE_OBJECT DeviceObject;
ULONG ActiveQueue;
ULONG InputDataCount[2];
MOUSE_INPUT_DATA MouseInputData[2][MOUSE_BUFFER_SIZE];
unsigned char MouseBuffer[8];
unsigned char pkt[8];
unsigned char MouseType;
unsigned char MouseModel;
unsigned char ack, acking;
ULONG SmartScroll;
ULONG NoExtensions;
UINT MouseBufferPosition;
UINT MouseBufferSize;
UINT Resolution;
UINT RepliesExpected;
ULONG PreviousButtons;
CLASS_INFORMATION ClassInformation;
PKINTERRUPT MouseInterrupt;
KDPC IsrDpc;
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;

View File

@@ -1,7 +0,0 @@
/* $Id$ */
#define REACTOS_VERSION_DLL
#define REACTOS_STR_FILE_DESCRIPTION "PS Auxiliary Device Driver\0"
#define REACTOS_STR_INTERNAL_NAME "psaux\0"
#define REACTOS_STR_ORIGINAL_FILENAME "psaux.sys\0"
#include <reactos/version.rc>

View File

@@ -1,410 +0,0 @@
/*
* Synaptics TouchPad PS/2 mouse driver
*
* 2003 Peter Osterlund <petero2@telia.com>
* Ported to 2.5 input device infrastructure.
*
* Copyright (C) 2001 Stefan Gmeiner <riddlebox@freesurf.ch>
* start merging tpconfig and gpm code to a xfree-input module
* adding some changes and extensions (ex. 3rd and 4th button)
*
* Copyright (c) 1997 C. Scott Ananian <cananian@alumni.priceton.edu>
* Copyright (c) 1998-2000 Bruce Kalk <kall@compass.com>
* code for the special synaptics commands (from the tpconfig-source)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published by
* the Free Software Foundation.
*
* Trademarks are the property of their respective owners.
*/
#define NO_SYNAPTICS
#include <ddk/ntddk.h>
#include <ddk/ntddmou.h>
#include <ddk/iotypes.h>
#include "mouse.h"
#include "psaux.h"
#ifndef NO_SYNAPTICS
#include "synaptics.h"
/*****************************************************************************
* Synaptics communications functions
****************************************************************************/
/*
* Use the Synaptics extended ps/2 syntax to write a special command byte.
* special command: 0xE8 rr 0xE8 ss 0xE8 tt 0xE8 uu where (rr*64)+(ss*16)+(tt*4)+uu
* is the command. A 0xF3 or 0xE9 must follow (see synaptics_send_cmd
* and synaptics_set_mode)
*/
static int synaptics_special_cmd(PDEVICE_EXTENSION DeviceExtension, unsigned char command)
{
int i;
if (psmouse_command(DeviceExtension, NULL, PSMOUSE_CMD_SETSCALE11))
return -1;
for (i = 6; i >= 0; i -= 2) {
unsigned char d = (command >> i) & 3;
if (psmouse_command(DeviceExtension, &d, PSMOUSE_CMD_SETRES))
return -1;
}
return 0;
}
/*
* Send a command to the synpatics touchpad by special commands
*/
static int synaptics_send_cmd(PDEVICE_EXTENSION DeviceExtension, unsigned char c, unsigned char *param)
{
if (synaptics_special_cmd(DeviceExtension, c))
return -1;
if (psmouse_command(DeviceExtension, param, PSMOUSE_CMD_GETINFO))
return -1;
return 0;
}
/*
* Set the synaptics touchpad mode byte by special commands
*/
static int synaptics_set_mode(PDEVICE_EXTENSION DeviceExtension, unsigned char mode)
{
unsigned char param[1];
if (synaptics_special_cmd(DeviceExtension, mode))
return -1;
param[0] = 0x14;
if (psmouse_command(DeviceExtension, param, PSMOUSE_CMD_SETRATE))
return -1;
return 0;
}
static int synaptics_reset(PDEVICE_EXTENSION DeviceExtension)
{
unsigned char r[2];
if (psmouse_command(DeviceExtension, r, PSMOUSE_CMD_RESET_BAT))
return -1;
if (r[0] == 0xAA && r[1] == 0x00)
return 0;
return -1;
}
/*
* Read the model-id bytes from the touchpad
* see also SYN_MODEL_* macros
*/
static int synaptics_model_id(struct psmouse *psmouse, unsigned long int *model_id)
{
unsigned char mi[3];
if (synaptics_send_cmd(psmouse, SYN_QUE_MODEL, mi))
return -1;
*model_id = (mi[0]<<16) | (mi[1]<<8) | mi[2];
return 0;
}
/*
* Read the capability-bits from the touchpad
* see also the SYN_CAP_* macros
*/
static int synaptics_capability(struct psmouse *psmouse, unsigned long int *capability)
{
unsigned char cap[3];
if (synaptics_send_cmd(psmouse, SYN_QUE_CAPABILITIES, cap))
return -1;
*capability = (cap[0]<<16) | (cap[1]<<8) | cap[2];
if (SYN_CAP_VALID(*capability))
return 0;
return -1;
}
/*
* Identify Touchpad
* See also the SYN_ID_* macros
*/
static int synaptics_identify(struct psmouse *psmouse, unsigned long int *ident)
{
unsigned char id[3];
if (synaptics_send_cmd(psmouse, SYN_QUE_IDENTIFY, id))
return -1;
*ident = (id[0]<<16) | (id[1]<<8) | id[2];
if (SYN_ID_IS_SYNAPTICS(*ident))
return 0;
return -1;
}
static int synaptics_enable_device(struct psmouse *psmouse)
{
if (psmouse_command(psmouse, NULL, PSMOUSE_CMD_ENABLE))
return -1;
return 0;
}
static void print_ident(struct synaptics_data *priv)
{
printk(KERN_INFO "Synaptics Touchpad, model: %ld\n", SYN_ID_MODEL(priv->identity));
printk(KERN_INFO " Firware: %ld.%ld\n", SYN_ID_MAJOR(priv->identity),
SYN_ID_MINOR(priv->identity));
if (SYN_MODEL_ROT180(priv->model_id))
printk(KERN_INFO " 180 degree mounted touchpad\n");
if (SYN_MODEL_PORTRAIT(priv->model_id))
printk(KERN_INFO " portrait touchpad\n");
printk(KERN_INFO " Sensor: %ld\n", SYN_MODEL_SENSOR(priv->model_id));
if (SYN_MODEL_NEWABS(priv->model_id))
printk(KERN_INFO " new absolute packet format\n");
if (SYN_MODEL_PEN(priv->model_id))
printk(KERN_INFO " pen detection\n");
if (SYN_CAP_EXTENDED(priv->capabilities)) {
printk(KERN_INFO " Touchpad has extended capability bits\n");
if (SYN_CAP_FOUR_BUTTON(priv->capabilities))
printk(KERN_INFO " -> four buttons\n");
if (SYN_CAP_MULTIFINGER(priv->capabilities))
printk(KERN_INFO " -> multifinger detection\n");
if (SYN_CAP_PALMDETECT(priv->capabilities))
printk(KERN_INFO " -> palm detection\n");
}
}
static int query_hardware(struct psmouse *psmouse)
{
struct synaptics_data *priv = psmouse->private;
int retries = 0;
while ((retries++ < 3) && synaptics_reset(psmouse))
printk(KERN_ERR "synaptics reset failed\n");
if (synaptics_identify(psmouse, &priv->identity))
return -1;
if (synaptics_model_id(psmouse, &priv->model_id))
return -1;
if (synaptics_capability(psmouse, &priv->capabilities))
return -1;
if (synaptics_set_mode(psmouse, (SYN_BIT_ABSOLUTE_MODE |
SYN_BIT_HIGH_RATE |
SYN_BIT_DISABLE_GESTURE |
SYN_BIT_W_MODE)))
return -1;
synaptics_enable_device(psmouse);
print_ident(priv);
return 0;
}
/*****************************************************************************
* Driver initialization/cleanup functions
****************************************************************************/
static inline void set_abs_params(struct input_dev *dev, int axis, int min, int max, int fuzz, int flat)
{
dev->absmin[axis] = min;
dev->absmax[axis] = max;
dev->absfuzz[axis] = fuzz;
dev->absflat[axis] = flat;
set_bit(axis, dev->absbit);
}
int synaptics_init(struct psmouse *psmouse)
{
struct synaptics_data *priv;
psmouse->private = priv = kmalloc(sizeof(struct synaptics_data), GFP_KERNEL);
if (!priv)
return -1;
memset(priv, 0, sizeof(struct synaptics_data));
priv->inSync = 1;
if (query_hardware(psmouse)) {
printk(KERN_ERR "Unable to query/initialize Synaptics hardware.\n");
goto init_fail;
}
/*
* The x/y limits are taken from the Synaptics TouchPad interfacing Guide,
* which says that they should be valid regardless of the actual size of
* the senser.
*/
set_bit(EV_ABS, psmouse->dev.evbit);
set_abs_params(&psmouse->dev, ABS_X, 1472, 5472, 0, 0);
set_abs_params(&psmouse->dev, ABS_Y, 1408, 4448, 0, 0);
set_abs_params(&psmouse->dev, ABS_PRESSURE, 0, 255, 0, 0);
set_bit(EV_MSC, psmouse->dev.evbit);
set_bit(MSC_GESTURE, psmouse->dev.mscbit);
set_bit(EV_KEY, psmouse->dev.evbit);
set_bit(BTN_LEFT, psmouse->dev.keybit);
set_bit(BTN_RIGHT, psmouse->dev.keybit);
set_bit(BTN_FORWARD, psmouse->dev.keybit);
set_bit(BTN_BACK, psmouse->dev.keybit);
clear_bit(EV_REL, psmouse->dev.evbit);
clear_bit(REL_X, psmouse->dev.relbit);
clear_bit(REL_Y, psmouse->dev.relbit);
return 0;
init_fail:
kfree(priv);
return -1;
}
void synaptics_disconnect(struct psmouse *psmouse)
{
struct synaptics_data *priv = psmouse->private;
kfree(priv);
}
/*****************************************************************************
* Functions to interpret the absolute mode packets
****************************************************************************/
static void synaptics_parse_hw_state(struct synaptics_data *priv, struct synaptics_hw_state *hw)
{
unsigned char *buf = priv->proto_buf;
hw->x = (((buf[3] & 0x10) << 8) |
((buf[1] & 0x0f) << 8) |
buf[4]);
hw->y = (((buf[3] & 0x20) << 7) |
((buf[1] & 0xf0) << 4) |
buf[5]);
hw->z = buf[2];
hw->w = (((buf[0] & 0x30) >> 2) |
((buf[0] & 0x04) >> 1) |
((buf[3] & 0x04) >> 2));
hw->left = (buf[0] & 0x01) ? 1 : 0;
hw->right = (buf[0] & 0x2) ? 1 : 0;
hw->up = 0;
hw->down = 0;
if (SYN_CAP_EXTENDED(priv->capabilities) &&
(SYN_CAP_FOUR_BUTTON(priv->capabilities))) {
hw->up = ((buf[3] & 0x01)) ? 1 : 0;
if (hw->left)
hw->up = !hw->up;
hw->down = ((buf[3] & 0x02)) ? 1 : 0;
if (hw->right)
hw->down = !hw->down;
}
}
/*
* called for each full received packet from the touchpad
*/
static void synaptics_process_packet(struct psmouse *psmouse)
{
struct input_dev *dev = &psmouse->dev;
struct synaptics_data *priv = psmouse->private;
struct synaptics_hw_state hw;
synaptics_parse_hw_state(priv, &hw);
if (hw.z > 0) {
int w_ok = 0;
/*
* Use capability bits to decide if the w value is valid.
* If not, set it to 5, which corresponds to a finger of
* normal width.
*/
if (SYN_CAP_EXTENDED(priv->capabilities)) {
switch (hw.w) {
case 0 ... 1:
w_ok = SYN_CAP_MULTIFINGER(priv->capabilities);
break;
case 2:
w_ok = SYN_MODEL_PEN(priv->model_id);
break;
case 4 ... 15:
w_ok = SYN_CAP_PALMDETECT(priv->capabilities);
break;
}
}
if (!w_ok)
hw.w = 5;
}
/* Post events */
input_report_abs(dev, ABS_X, hw.x);
input_report_abs(dev, ABS_Y, hw.y);
input_report_abs(dev, ABS_PRESSURE, hw.z);
if (hw.w != priv->old_w) {
input_event(dev, EV_MSC, MSC_GESTURE, hw.w);
priv->old_w = hw.w;
}
input_report_key(dev, BTN_LEFT, hw.left);
input_report_key(dev, BTN_RIGHT, hw.right);
input_report_key(dev, BTN_FORWARD, hw.up);
input_report_key(dev, BTN_BACK, hw.down);
input_sync(dev);
}
void synaptics_process_byte(struct psmouse *psmouse, struct pt_regs *regs)
{
struct input_dev *dev = &psmouse->dev;
struct synaptics_data *priv = psmouse->private;
unsigned char *pBuf = priv->proto_buf;
unsigned char u = psmouse->packet[0];
input_regs(dev, regs);
pBuf[priv->proto_buf_tail++] = u;
/* check first byte */
if ((priv->proto_buf_tail == 1) && ((u & 0xC8) != 0x80)) {
priv->inSync = 0;
priv->proto_buf_tail = 0;
printk(KERN_WARNING "Synaptics driver lost sync at 1st byte\n");
return;
}
/* check 4th byte */
if ((priv->proto_buf_tail == 4) && ((u & 0xc8) != 0xc0)) {
priv->inSync = 0;
priv->proto_buf_tail = 0;
printk(KERN_WARNING "Synaptics driver lost sync at 4th byte\n");
return;
}
if (priv->proto_buf_tail >= 6) { /* Full packet received */
if (!priv->inSync) {
priv->inSync = 1;
printk(KERN_NOTICE "Synaptics driver resynced.\n");
}
synaptics_process_packet(psmouse);
priv->proto_buf_tail = 0;
}
}
#else
int InitSynaptics(PDEVICE_EXTENSION DeviceExtension)
{
return -1;
}
#endif

View File

@@ -1,100 +0,0 @@
/*
* Synaptics TouchPad PS/2 mouse driver
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published by
* the Free Software Foundation.
*/
#ifndef NO_SYNAPTICS
#ifndef _SYNAPTICS_H
#define _SYNAPTICS_H
extern void synaptics_process_byte(DeviceExtension, struct pt_regs *regs);
#endif
extern int synaptics_init(DeviceExtension);
#ifndef NO_SYNAPTICS
extern void synaptics_disconnect(DeviceExtension);
/* synaptics queries */
#define SYN_QUE_IDENTIFY 0x00
#define SYN_QUE_MODES 0x01
#define SYN_QUE_CAPABILITIES 0x02
#define SYN_QUE_MODEL 0x03
#define SYN_QUE_SERIAL_NUMBER_PREFIX 0x06
#define SYN_QUE_SERIAL_NUMBER_SUFFIX 0x07
#define SYN_QUE_RESOLUTION 0x08
/* synatics modes */
#define SYN_BIT_ABSOLUTE_MODE (1 << 7)
#define SYN_BIT_HIGH_RATE (1 << 6)
#define SYN_BIT_SLEEP_MODE (1 << 3)
#define SYN_BIT_DISABLE_GESTURE (1 << 2)
#define SYN_BIT_W_MODE (1 << 0)
/* synaptics model ID bits */
#define SYN_MODEL_ROT180(m) ((m) & (1 << 23))
#define SYN_MODEL_PORTRAIT(m) ((m) & (1 << 22))
#define SYN_MODEL_SENSOR(m) (((m) >> 16) & 0x3f)
#define SYN_MODEL_HARDWARE(m) (((m) >> 9) & 0x7f)
#define SYN_MODEL_NEWABS(m) ((m) & (1 << 7))
#define SYN_MODEL_PEN(m) ((m) & (1 << 6))
#define SYN_MODEL_SIMPLIC(m) ((m) & (1 << 5))
#define SYN_MODEL_GEOMETRY(m) ((m) & 0x0f)
/* synaptics capability bits */
#define SYN_CAP_EXTENDED(c) ((c) & (1 << 23))
#define SYN_CAP_SLEEP(c) ((c) & (1 << 4))
#define SYN_CAP_FOUR_BUTTON(c) ((c) & (1 << 3))
#define SYN_CAP_MULTIFINGER(c) ((c) & (1 << 1))
#define SYN_CAP_PALMDETECT(c) ((c) & (1 << 0))
#define SYN_CAP_VALID(c) ((((c) & 0x00ff00) >> 8) == 0x47)
/* synaptics modes query bits */
#define SYN_MODE_ABSOLUTE(m) ((m) & (1 << 7))
#define SYN_MODE_RATE(m) ((m) & (1 << 6))
#define SYN_MODE_BAUD_SLEEP(m) ((m) & (1 << 3))
#define SYN_MODE_DISABLE_GESTURE(m) ((m) & (1 << 2))
#define SYN_MODE_PACKSIZE(m) ((m) & (1 << 1))
#define SYN_MODE_WMODE(m) ((m) & (1 << 0))
/* synaptics identify query bits */
#define SYN_ID_MODEL(i) (((i) >> 4) & 0x0f)
#define SYN_ID_MAJOR(i) ((i) & 0x0f)
#define SYN_ID_MINOR(i) (((i) >> 16) & 0xff)
#define SYN_ID_IS_SYNAPTICS(i) ((((i) >> 8) & 0xff) == 0x47)
/*
* A structure to describe the state of the touchpad hardware (buttons and pad)
*/
struct synaptics_hw_state {
int x;
int y;
int z;
int w;
int left;
int right;
int up;
int down;
};
struct synaptics_data {
/* Data read from the touchpad */
unsigned long int model_id; /* Model-ID */
unsigned long int capabilities; /* Capabilities */
unsigned long int identity; /* Identification */
/* Data for normal processing */
unsigned char proto_buf[6]; /* Buffer for Packet */
unsigned char last_byte; /* last received byte */
int inSync; /* Packets in sync */
int proto_buf_tail;
int old_w; /* Previous w value */
};
#endif /* _SYNAPTICS_H */
#endif /* NO_SYNAPTICS */

View File

@@ -1,52 +0,0 @@
#include_next <GL/glu.h>
#ifndef GLU_NURBS_BEGIN
#define GLU_NURBS_ERROR 100103
#define GLU_NURBS_BEGIN 100164
#define GLU_NURBS_BEGIN_EXT 100164
#define GLU_NURBS_VERTEX 100165
#define GLU_NURBS_VERTEX_EXT 100165
#define GLU_NURBS_NORMAL 100166
#define GLU_NURBS_NORMAL_EXT 100166
#define GLU_NURBS_COLOR 100167
#define GLU_NURBS_COLOR_EXT 100167
#define GLU_NURBS_TEXTURE_COORD 100168
#define GLU_NURBS_TEX_COORD_EXT 100168
#define GLU_NURBS_END 100169
#define GLU_NURBS_END_EXT 100169
#define GLU_NURBS_BEGIN_DATA 100170
#define GLU_NURBS_BEGIN_DATA_EXT 100170
#define GLU_NURBS_VERTEX_DATA 100171
#define GLU_NURBS_VERTEX_DATA_EXT 100171
#define GLU_NURBS_NORMAL_DATA 100172
#define GLU_NURBS_NORMAL_DATA_EXT 100172
#define GLU_NURBS_COLOR_DATA 100173
#define GLU_NURBS_COLOR_DATA_EXT 100173
#define GLU_NURBS_TEXTURE_COORD_DATA 100174
#define GLU_NURBS_TEX_COORD_DATA_EXT 100174
#define GLU_NURBS_END_DATA 100175
#define GLU_NURBS_END_DATA_EXT 100175
#define GLU_AUTO_LOAD_MATRIX 100200
#define GLU_CULLING 100201
#define GLU_SAMPLING_TOLERANCE 100203
#define GLU_DISPLAY_MODE 100204
#define GLU_PARAMETRIC_TOLERANCE 100202
#define GLU_SAMPLING_METHOD 100205
#define GLU_U_STEP 100206
#define GLU_V_STEP 100207
#define GLU_NURBS_MODE 100160
#define GLU_NURBS_MODE_EXT 100160
#define GLU_NURBS_TESSELLATOR 100161
#define GLU_NURBS_TESSELLATOR_EXT 100161
#define GLU_NURBS_RENDERER 100162
#define GLU_NURBS_RENDERER_EXT 100162
#define GLU_OBJECT_PARAMETRIC_ERROR 100208
#define GLU_OBJECT_PARAMETRIC_ERROR_EXT 100208
#define GLU_OBJECT_PATH_LENGTH 100209
#define GLU_OBJECT_PATH_LENGTH_EXT 100209
#define GLU_PATH_LENGTH 100215
#define GLU_PARAMETRIC_ERROR 100216
#define GLU_DOMAIN_DISTANCE 100217
#endif

View File

@@ -1,136 +0,0 @@
/*
* acledit.h
*
* Access Control List Editor definitions
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAIMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __ACLEDIT_H
#define __ACLEDIT_H
#include <windows.h>
typedef struct _ACL_HELP_CONTROL
{
LPWSTR lpHelpFile;
DWORD dwMainDialogTopic;
DWORD dwACLEditorDialogTopic;
DWORD Reserved1;
DWORD dwAddEntryDialogTopic;
DWORD Reserved2;
DWORD Reserved3;
DWORD dwAccountDialogTopic;
} ACL_HELP_CONTROL, *PACL_HELP_CONTROL;
typedef struct _ACL_DLG_CONTROL
{
UCHAR ucVersion;
BOOL bIsContainer;
BOOL bAllowNewObject;
BOOL bMapSpecificToGeneric;
LPDWORD lpdwGenericAccessMap;
LPDWORD lpdwGenericMappingNewObjects;
LPWSTR lpDialogTitle;
PACL_HELP_CONTROL pHelpInfo;
LPWSTR lpSubReplaceTitle;
LPWSTR lpSubReplaceObjectsTitle;
LPWSTR lpSubReplaceConfirmation;
LPWSTR lpSpecialAccess;
LPWSTR lpSpecialNewAccess;
} ACL_DLG_CONTROL, *PACL_DLG_CONTROL;
typedef struct _ACL_EDIT_ENTRY{
DWORD dwType;
DWORD dwAccessMask;
DWORD dwAccessMask1;
LPWSTR lpName;
} ACL_EDIT_ENTRY, *PACL_EDIT_ENTRY;
typedef struct _ACL_EDIT_CONTROL
{
DWORD dwNumberOfEntries;
PACL_EDIT_ENTRY pEntries;
LPWSTR lpDefaultPermissionName;
} ACL_EDIT_CONTROL, *PACL_EDIT_CONTROL;
typedef DWORD (CALLBACK *PACL_CHANGE)(HWND hWnd,
HINSTANCE hInstance,
PVOID pCallbackContext,
PSECURITY_DESCRIPTOR pNewSD,
PSECURITY_DESCRIPTOR pNewObjectSD,
BOOL bApplyToSubContainers,
BOOL bApplyToSubObjects,
LPDWORD lpdwChangeContextStatus);
DWORD WINAPI
EditAuditInfo(DWORD Unknown);
DWORD WINAPI
EditOwnerInfo(DWORD Unknown);
DWORD WINAPI
EditPermissionInfo(DWORD Unknown);
LONG WINAPI
FMExtensionProcW(HWND hWnd,
WORD wEvent,
LONG lParam);
DWORD WINAPI
SedDiscretionaryAclEditor(HWND hWndOwner,
HINSTANCE hInstance,
LPCWSTR lpMachineName,
PACL_DLG_CONTROL pAclDlgControl,
PACL_EDIT_CONTROL pAclEditControl,
LPCWSTR lpObjectName,
PACL_CHANGE pChangeCallback,
PVOID pChangeCallbackContext,
PSECURITY_DESCRIPTOR pObjectSecurity,
BOOL bNoReadPermission,
BOOL bReadOnly,
LPDWORD lpdwChangeContextStatus,
DWORD Reserved);
DWORD WINAPI
SedTakeOwnership(HWND hWndOwner,
HINSTANCE hInstance,
LPCWSTR lpMachineName,
LPCWSTR lpObjectType,
LPCWSTR lpObjectName,
DWORD dwObjectCount,
PACL_CHANGE pChangeCallback,
PVOID pChangeCallbackContext,
PSECURITY_DESCRIPTOR pObjectSecurity,
BOOL NoReadPermission,
BOOL NoOwnerChange,
LPDWORD lpdwChangeContextStatus,
PACL_HELP_CONTROL pHelpInfo,
DWORD Reserved);
DWORD WINAPI
SedSystemAclEditor(HWND hWndOwner,
HINSTANCE hInstance,
LPCWSTR lpMachineName,
PACL_DLG_CONTROL pAclDlgControl,
PACL_EDIT_CONTROL pAclEditControl,
LPCWSTR lpObjectName,
PACL_CHANGE pChangeCallback,
PVOID pChangeCallbackContext,
PSECURITY_DESCRIPTOR pObjectSecurity,
BOOL bNoReadPermission,
LPDWORD lpdwChangeContextStatus,
DWORD Reserved);
#endif /* __ACLEDIT_H */
/* EOF */

View File

@@ -1,402 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Ancillary Function Driver
* FILE: include/afd/shared.h
* PURPOSE: Shared definitions for AFD.SYS and MSAFD.DLL
*/
#ifndef __AFD_SHARED_H
#define __AFD_SHARED_H
#define AFD_MAX_EVENTS 10
#define AFD_PACKET_COMMAND_LENGTH 15
#define AfdCommand "AfdOpenPacketXX"
/* Extra definition of WSABUF for AFD so that I don't have to include any
* userland winsock headers. */
typedef struct _AFD_WSABUF {
UINT len;
PCHAR buf;
} AFD_WSABUF, *PAFD_WSABUF;
typedef struct _AFD_CREATE_PACKET {
DWORD EndpointFlags;
DWORD GroupID;
DWORD SizeOfTransportName;
WCHAR TransportName[1];
} AFD_CREATE_PACKET, *PAFD_CREATE_PACKET;
typedef struct _AFD_INFO {
ULONG InformationClass;
union {
ULONG Ulong;
LARGE_INTEGER LargeInteger;
} Information;
ULONG Padding;
} AFD_INFO, *PAFD_INFO;
typedef struct _AFD_BIND_DATA {
ULONG ShareType;
TRANSPORT_ADDRESS Address;
} AFD_BIND_DATA, *PAFD_BIND_DATA;
typedef struct _AFD_LISTEN_DATA {
BOOLEAN UseSAN;
ULONG Backlog;
BOOLEAN UseDelayedAcceptance;
} AFD_LISTEN_DATA, *PAFD_LISTEN_DATA;
typedef struct _AFD_HANDLE_ {
SOCKET Handle;
ULONG Events;
NTSTATUS Status;
} AFD_HANDLE, *PAFD_HANDLE;
typedef struct _AFD_POLL_INFO {
LARGE_INTEGER Timeout;
ULONG HandleCount;
ULONG Exclusive;
AFD_HANDLE Handles[1];
} AFD_POLL_INFO, *PAFD_POLL_INFO;
typedef struct _AFD_ACCEPT_DATA {
ULONG UseSAN;
ULONG SequenceNumber;
ULONG ListenHandle;
} AFD_ACCEPT_DATA, *PAFD_ACCEPT_DATA;
typedef struct _AFD_RECEIVED_ACCEPT_DATA {
ULONG SequenceNumber;
TRANSPORT_ADDRESS Address;
} AFD_RECEIVED_ACCEPT_DATA, *PAFD_RECEIVED_ACCEPT_DATA;
typedef struct _AFD_PENDING_ACCEPT_DATA {
ULONG SequenceNumber;
ULONG SizeOfData;
ULONG ReturnSize;
} AFD_PENDING_ACCEPT_DATA, *PAFD_PENDING_ACCEPT_DATA;
typedef struct _AFD_DEFER_ACCEPT_DATA {
ULONG SequenceNumber;
BOOLEAN RejectConnection;
} AFD_DEFER_ACCEPT_DATA, *PAFD_DEFER_ACCEPT_DATA;
typedef struct _AFD_RECV_INFO {
PAFD_WSABUF BufferArray;
ULONG BufferCount;
ULONG AfdFlags;
ULONG TdiFlags;
} AFD_RECV_INFO , *PAFD_RECV_INFO ;
typedef struct _AFD_RECV_INFO_UDP {
PAFD_WSABUF BufferArray;
ULONG BufferCount;
ULONG AfdFlags;
ULONG TdiFlags;
PVOID Address;
PINT AddressLength;
} AFD_RECV_INFO_UDP, *PAFD_RECV_INFO_UDP;
typedef struct _AFD_SEND_INFO {
PAFD_WSABUF BufferArray;
ULONG BufferCount;
ULONG AfdFlags;
ULONG TdiFlags;
} AFD_SEND_INFO , *PAFD_SEND_INFO ;
typedef struct _AFD_SEND_INFO_UDP {
PAFD_WSABUF BufferArray;
ULONG BufferCount;
ULONG AfdFlags;
ULONG Padding[9];
ULONG SizeOfRemoteAddress;
PVOID RemoteAddress;
} AFD_SEND_INFO_UDP, *PAFD_SEND_INFO_UDP;
typedef struct _AFD_CONNECT_INFO {
BOOLEAN UseSAN;
ULONG Root;
ULONG Unknown;
TRANSPORT_ADDRESS RemoteAddress;
} AFD_CONNECT_INFO , *PAFD_CONNECT_INFO ;
typedef struct _AFD_EVENT_SELECT_INFO {
HANDLE EventObject;
ULONG Events;
} AFD_EVENT_SELECT_INFO, *PAFD_EVENT_SELECT_INFO;
typedef struct _AFD_ENUM_NETWORK_EVENTS_INFO {
HANDLE Event;
ULONG PollEvents;
NTSTATUS EventStatus[AFD_MAX_EVENTS];
} AFD_ENUM_NETWORK_EVENTS_INFO, *PAFD_ENUM_NETWORK_EVENTS_INFO;
typedef struct _AFD_DISCONNECT_INFO {
ULONG DisconnectType;
LARGE_INTEGER Timeout;
} AFD_DISCONNECT_INFO, *PAFD_DISCONNECT_INFO;
/* AFD Packet Endpoint Flags */
#define AFD_ENDPOINT_CONNECTIONLESS 0x1
#define AFD_ENDPOINT_MESSAGE_ORIENTED 0x10
#define AFD_ENDPOINT_RAW 0x100
#define AFD_ENDPOINT_MULTIPOINT 0x1000
#define AFD_ENDPOINT_C_ROOT 0x10000
#define AFD_ENDPOINT_D_ROOT 0x100000
/* AFD Info Flags */
#define AFD_INFO_BLOCKING_MODE 0x02L
#define AFD_INFO_SENDS_IN_PROGRESS 0x04L
#define AFD_INFO_RECEIVE_WINDOW_SIZE 0x06L
#define AFD_INFO_SEND_WINDOW_SIZE 0x07L
#define AFD_INFO_GROUP_ID_TYPE 0x10L
/* AFD Share Flags */
#define AFD_SHARE_UNIQUE 0x0L
#define AFD_SHARE_REUSE 0x1L
#define AFD_SHARE_WILDCARD 0x2L
#define AFD_SHARE_EXCLUSIVE 0x3L
/* AFD Disconnect Flags */
#define AFD_DISCONNECT_SEND 0x01L
#define AFD_DISCONNECT_RECV 0x02L
#define AFD_DISCONNECT_ABORT 0x04L
/* AFD Event Flags */
#define AFD_EVENT_RECEIVE 0x1L
#define AFD_EVENT_OOB_RECEIVE 0x2L
#define AFD_EVENT_SEND 0x4L
#define AFD_EVENT_DISCONNECT 0x8L
#define AFD_EVENT_ABORT 0x10L
#define AFD_EVENT_CLOSE 0x20L
#define AFD_EVENT_CONNECT 0x40L
#define AFD_EVENT_ACCEPT 0x80L
#define AFD_EVENT_CONNECT_FAIL 0x100L
#define AFD_EVENT_QOS 0x200L
#define AFD_EVENT_GROUP_QOS 0x400L
/* AFD SEND/RECV Flags */
#define AFD_SKIP_FIO 0x1L
#define AFD_OVERLAPPED 0x2L
#define AFD_IMMEDIATE 0x4L
/* IOCTL Generation */
#define FSCTL_AFD_BASE FILE_DEVICE_NETWORK
#define _AFD_CONTROL_CODE(Operation,Method) \
((FSCTL_AFD_BASE)<<12 | (Operation<<2) | Method)
/* AFD Commands */
#define AFD_BIND 0
#define AFD_CONNECT 1
#define AFD_START_LISTEN 2
#define AFD_WAIT_FOR_LISTEN 3
#define AFD_ACCEPT 4
#define AFD_RECV 5
#define AFD_RECV_DATAGRAM 6
#define AFD_SEND 7
#define AFD_SEND_DATAGRAM 8
#define AFD_SELECT 9
#define AFD_DISCONNECT 10
#define AFD_GET_SOCK_NAME 11
#define AFD_GET_PEER_NAME 12
#define AFD_GET_TDI_HANDLES 13
#define AFD_SET_INFO 14
#define AFD_GET_CONTEXT 16
#define AFD_SET_CONTEXT 17
#define AFD_SET_CONNECT_DATA 18
#define AFD_SET_CONNECT_OPTIONS 19
#define AFD_SET_DISCONNECT_DATA 20
#define AFD_SET_DISCONNECT_OPTIONS 21
#define AFD_GET_CONNECT_DATA 22
#define AFD_GET_CONNECT_OPTIONS 23
#define AFD_GET_DISCONNECT_DATA 24
#define AFD_GET_DISCONNECT_OPTIONS 25
#define AFD_SET_CONNECT_DATA_SIZE 26
#define AFD_SET_CONNECT_OPTIONS_SIZE 27
#define AFD_SET_DISCONNECT_DATA_SIZE 28
#define AFD_SET_DISCONNECT_OPTIONS_SIZE 29
#define AFD_GET_INFO 30
#define AFD_EVENT_SELECT 33
#define AFD_ENUM_NETWORK_EVENTS 34
#define AFD_DEFER_ACCEPT 35
#define AFD_GET_PENDING_CONNECT_DATA 41
/* AFD IOCTLs */
#define IOCTL_AFD_BIND \
_AFD_CONTROL_CODE(AFD_BIND, METHOD_NEITHER)
#define IOCTL_AFD_CONNECT \
_AFD_CONTROL_CODE(AFD_CONNECT, METHOD_NEITHER)
#define IOCTL_AFD_START_LISTEN \
_AFD_CONTROL_CODE(AFD_START_LISTEN, METHOD_NEITHER)
#define IOCTL_AFD_WAIT_FOR_LISTEN \
_AFD_CONTROL_CODE(AFD_WAIT_FOR_LISTEN, METHOD_BUFFERED )
#define IOCTL_AFD_ACCEPT \
_AFD_CONTROL_CODE(AFD_ACCEPT, METHOD_BUFFERED )
#define IOCTL_AFD_RECV \
_AFD_CONTROL_CODE(AFD_RECV, METHOD_NEITHER)
#define IOCTL_AFD_RECV_DATAGRAM \
_AFD_CONTROL_CODE(AFD_RECV_DATAGRAM, METHOD_NEITHER)
#define IOCTL_AFD_SEND \
_AFD_CONTROL_CODE(AFD_SEND, METHOD_NEITHER)
#define IOCTL_AFD_SEND_DATAGRAM \
_AFD_CONTROL_CODE(AFD_SEND_DATAGRAM, METHOD_NEITHER)
#define IOCTL_AFD_SELECT \
_AFD_CONTROL_CODE(AFD_SELECT, METHOD_BUFFERED )
#define IOCTL_AFD_DISCONNECT \
_AFD_CONTROL_CODE(AFD_DISCONNECT, METHOD_NEITHER)
#define IOCTL_AFD_GET_SOCK_NAME \
_AFD_CONTROL_CODE(AFD_GET_SOCK_NAME, METHOD_NEITHER)
#define IOCTL_AFD_GET_PEER_NAME \
_AFD_CONTROL_CODE(AFD_GET_PEER_NAME, METHOD_NEITHER)
#define IOCTL_AFD_GET_TDI_HANDLES \
_AFD_CONTROL_CODE(AFD_GET_TDI_HANDLES, METHOD_NEITHER)
#define IOCTL_AFD_SET_INFO \
_AFD_CONTROL_CODE(AFD_SET_INFO, METHOD_NEITHER)
#define IOCTL_AFD_GET_CONTEXT \
_AFD_CONTROL_CODE(AFD_GET_CONTEXT, METHOD_NEITHER)
#define IOCTL_AFD_SET_CONTEXT \
_AFD_CONTROL_CODE(AFD_SET_CONTEXT, METHOD_NEITHER)
#define IOCTL_AFD_SET_CONNECT_DATA \
_AFD_CONTROL_CODE(AFD_SET_CONNECT_DATA, METHOD_NEITHER)
#define IOCTL_AFD_SET_CONNECT_OPTIONS \
_AFD_CONTROL_CODE(AFD_SET_CONNECT_OPTIONS, METHOD_NEITHER)
#define IOCTL_AFD_SET_DISCONNECT_DATA \
_AFD_CONTROL_CODE(AFD_SET_DISCONNECT_DATA, METHOD_NEITHER)
#define IOCTL_AFD_SET_DISCONNECT_OPTIONS \
_AFD_CONTROL_CODE(AFD_SET_DISCONNECT_OPTIONS, METHOD_NEITHER)
#define IOCTL_AFD_GET_CONNECT_DATA \
_AFD_CONTROL_CODE(AFD_GET_CONNECT_DATA, METHOD_NEITHER)
#define IOCTL_AFD_GET_CONNECT_OPTIONS \
_AFD_CONTROL_CODE(AFD_GET_CONNECT_OPTIONS, METHOD_NEITHER)
#define IOCTL_AFD_GET_DISCONNECT_DATA \
_AFD_CONTROL_CODE(AFD_GET_DISCONNECT_DATA, METHOD_NEITHER)
#define IOCTL_AFD_GET_DISCONNECT_OPTIONS \
_AFD_CONTROL_CODE(AFD_GET_DISCONNECT_OPTIONS, METHOD_NEITHER)
#define IOCTL_AFD_SET_CONNECT_DATA_SIZE \
_AFD_CONTROL_CODE(AFD_SET_CONNECT_DATA_SIZE, METHOD_NEITHER)
#define IOCTL_AFD_SET_CONNECT_OPTIONS_SIZE \
_AFD_CONTROL_CODE(AFD_SET_CONNECT_OPTIONS_SIZE, METHOD_NEITHER)
#define IOCTL_AFD_SET_DISCONNECT_DATA_SIZE \
_AFD_CONTROL_CODE(AFD_SET_DISCONNECT_DATA_SIZE, METHOD_NEITHER)
#define IOCTL_AFD_SET_DISCONNECT_OPTIONS_SIZE \
_AFD_CONTROL_CODE(AFD_SET_DISCONNECT_OPTIONS_SIZE, METHOD_NEITHER)
#define IOCTL_AFD_GET_INFO \
_AFD_CONTROL_CODE(AFD_GET_INFO, METHOD_NEITHER)
#define IOCTL_AFD_EVENT_SELECT \
_AFD_CONTROL_CODE(AFD_EVENT_SELECT, METHOD_NEITHER)
#define IOCTL_AFD_DEFER_ACCEPT \
_AFD_CONTROL_CODE(AFD_DEFER_ACCEPT, METHOD_NEITHER)
#define IOCTL_AFD_GET_PENDING_CONNECT_DATA \
_AFD_CONTROL_CODE(AFD_GET_PENDING_CONNECT_DATA, METHOD_NEITHER)
#define IOCTL_AFD_ENUM_NETWORK_EVENTS \
_AFD_CONTROL_CODE(AFD_ENUM_NETWORK_EVENTS, METHOD_NEITHER)
typedef struct _AFD_SOCKET_INFORMATION {
BOOL CommandChannel;
INT AddressFamily;
INT SocketType;
INT Protocol;
PVOID HelperContext;
DWORD NotificationEvents;
UNICODE_STRING TdiDeviceName;
SOCKADDR Name;
} AFD_SOCKET_INFORMATION, *PAFD_SOCKET_INFORMATION;
typedef struct _FILE_REQUEST_BIND {
SOCKADDR Name;
} FILE_REQUEST_BIND, *PFILE_REQUEST_BIND;
typedef struct _FILE_REPLY_BIND {
INT Status;
HANDLE TdiAddressObjectHandle;
HANDLE TdiConnectionObjectHandle;
} FILE_REPLY_BIND, *PFILE_REPLY_BIND;
typedef struct _FILE_REQUEST_LISTEN {
INT Backlog;
} FILE_REQUEST_LISTEN, *PFILE_REQUEST_LISTEN;
typedef struct _FILE_REPLY_LISTEN {
INT Status;
} FILE_REPLY_LISTEN, *PFILE_REPLY_LISTEN;
typedef struct _FILE_REQUEST_SENDTO {
LPWSABUF Buffers;
DWORD BufferCount;
DWORD Flags;
SOCKADDR To;
INT ToLen;
} FILE_REQUEST_SENDTO, *PFILE_REQUEST_SENDTO;
typedef struct _FILE_REPLY_SENDTO {
INT Status;
DWORD NumberOfBytesSent;
} FILE_REPLY_SENDTO, *PFILE_REPLY_SENDTO;
typedef struct _FILE_REQUEST_RECVFROM {
LPWSABUF Buffers;
DWORD BufferCount;
LPDWORD Flags;
LPSOCKADDR From;
LPINT FromLen;
} FILE_REQUEST_RECVFROM, *PFILE_REQUEST_RECVFROM;
typedef struct _FILE_REPLY_RECVFROM {
INT Status;
DWORD NumberOfBytesRecvd;
} FILE_REPLY_RECVFROM, *PFILE_REPLY_RECVFROM;
typedef struct _FILE_REQUEST_RECV {
LPWSABUF Buffers;
DWORD BufferCount;
LPDWORD Flags;
} FILE_REQUEST_RECV, *PFILE_REQUEST_RECV;
typedef struct _FILE_REPLY_RECV {
INT Status;
DWORD NumberOfBytesRecvd;
} FILE_REPLY_RECV, *PFILE_REPLY_RECV;
typedef struct _FILE_REQUEST_SEND {
LPWSABUF Buffers;
DWORD BufferCount;
DWORD Flags;
} FILE_REQUEST_SEND, *PFILE_REQUEST_SEND;
typedef struct _FILE_REPLY_SEND {
INT Status;
DWORD NumberOfBytesSent;
} FILE_REPLY_SEND, *PFILE_REPLY_SEND;
typedef struct _FILE_REQUEST_ACCEPT {
LPSOCKADDR addr;
INT addrlen;
LPCONDITIONPROC lpfnCondition;
DWORD dwCallbackData;
} FILE_REQUEST_ACCEPT, *PFILE_REQUEST_ACCEPT;
typedef struct _FILE_REPLY_ACCEPT {
INT Status;
INT addrlen;
SOCKET Socket;
} FILE_REPLY_ACCEPT, *PFILE_REPLY_ACCEPT;
typedef struct _FILE_REQUEST_CONNECT {
LPSOCKADDR name;
INT namelen;
LPWSABUF lpCallerData;
LPWSABUF lpCalleeData;
LPQOS lpSQOS;
LPQOS lpGQOS;
} FILE_REQUEST_CONNECT, *PFILE_REQUEST_CONNECT;
typedef struct _FILE_REPLY_CONNECT {
INT Status;
} FILE_REPLY_CONNECT, *PFILE_REPLY_CONNECT;
#endif /*__AFD_SHARED_H */
/* EOF */

View File

@@ -1,749 +0,0 @@
/*
Base.h
Base definitions
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
Author: Scott Christley <scottc@net-community.com>
This file is part of the Windows32 API Library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
If you are interested in a warranty or support for this source code,
contact Scott Christley <scottc@net-community.com> for more information.
You should have received a copy of the GNU Library General Public
License along with this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef _GNU_H_WINDOWS32_BASE
#define _GNU_H_WINDOWS32_BASE
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#ifndef NULL
#ifdef __cplusplus
#define NULL (0)
#else
#define NULL ((void *)0)
#endif
#endif /* !NULL */
#include <ntos/types.h>
/* Check VOID before defining CHAR, SHORT, and LONG */
#ifndef VOID
#define VOID void
typedef char CHAR;
typedef short SHORT;
typedef long LONG;
#endif
#define CONST const
#define WINAPI STDCALL
#define APIENTRY STDCALL
#define WINGDIAPI
#ifndef _DISABLE_TIDENTS
#ifdef UNICODE
typedef wchar_t *LPTCH;
typedef wchar_t *LPTSTR;
#else
typedef char *LPTCH;
typedef char *LPTSTR;
#endif /* UNICODE */
#endif /* _DISABLE_TIDENTS */
#ifndef RC_INVOKED
/* typedef ACMDRIVERENUMCB;
typedef ACMDRIVERPROC;
typedef ACMFILERCHOOSEHOOKPROC;
typedef ACMFILTERENUMCB;
typedef ACMFILTERTAGENUMCB;
typedef ACMFORMATCHOOSEHOOKPROC;
typedef ACMFORMATENUMCB;
typedef ACMFORMATTAGENUMCB;
typedef APPLET_PROC;
*/
/* Changed from BOOL to WINBOOL to avoid Objective-C conflict */
typedef unsigned long CALTYPE;
typedef unsigned long CALID;
typedef unsigned long COLORREF;
/*
typedef CTRYID;
typedef DLGPROC;
*/
#ifdef __GNUC__
typedef unsigned long long DWORDLONG, *PDWORDLONG;
#else
typedef unsigned __int64 DWORDLONG, *PDWORDLONG;
#endif
/*
typedef EDITWORDBREAKPROC;
typedef ENHMFENUMPROC;
typedef ENUMRESLANGPROC;
typedef ENUMRESNAMEPROC;
typedef ENUMRESTYPEPROC;
*/
typedef float FLOAT;
/* typedef GLOBALHANDLE; */
typedef HANDLE HACCEL;
typedef HANDLE HBITMAP;
typedef HANDLE HBRUSH;
typedef HANDLE HCOLORSPACE;
typedef HANDLE HCONV;
typedef HANDLE HCONVLIST;
typedef HANDLE HCURSOR;
typedef HANDLE HDBC;
typedef HANDLE HDC;
typedef HANDLE HDDEDATA;
typedef HANDLE HDESK;
typedef HANDLE HDROP;
typedef HANDLE HDWP;
typedef HANDLE HENHMETAFILE;
typedef HANDLE HENV;
typedef USHORT COLOR16;
typedef int HFILE;
typedef HANDLE HFONT;
typedef HANDLE HGDIOBJ;
typedef HANDLE HGLOBAL;
typedef HANDLE HGLRC;
typedef HANDLE HHOOK;
typedef HANDLE HICON;
typedef HANDLE HIMAGELIST;
typedef HANDLE HINSTANCE;
typedef HANDLE HKEY, *PHKEY;
typedef HANDLE HKL;
typedef LONG GEOID;
typedef DWORD GEOTYPE;
typedef DWORD GEOCLASS;
typedef HANDLE HLOCAL;
typedef HANDLE HMENU;
typedef HANDLE HMETAFILE;
typedef HANDLE HMODULE;
typedef HANDLE HPALETTE;
typedef HANDLE HPEN;
typedef HANDLE HRASCONN;
typedef DWORD LGRPID;
typedef long HRESULT;
typedef HANDLE HRGN;
typedef HANDLE HRSRC;
typedef HANDLE HSTMT;
typedef HANDLE HSZ;
typedef HANDLE HWINSTA;
typedef HANDLE HWND;
typedef HANDLE HRAWINPUT;
typedef HANDLE HTASK;
typedef HANDLE HWINEVENTHOOK;
typedef VOID (CALLBACK *WINEVENTPROC)(HWINEVENTHOOK hWinEventHook,DWORD event,HWND hwnd,LONG idObject,LONG idChild,DWORD idEventThread,DWORD dwmsEventTime);
//typedef unsigned short LANGID;
/*typedef DWORD LCID; */
typedef DWORD LCTYPE;
/* typedef LOCALHANDLE */
typedef unsigned short *LP;
typedef long LPARAM;
typedef int WINBOOL;
typedef WINBOOL *LPBOOL;
typedef CONST CHAR *LPCCH;
typedef CHAR *LPCH;
typedef COLORREF *LPCOLORREF;
#ifndef _DISABLE_TIDENTS
#ifdef UNICODE
typedef const wchar_t *LPCTSTR;
#else
typedef const char *LPCTSTR;
#endif /* UNICODE */
#endif /* _DISABLE_TIDENTS */
typedef const wchar_t *LPCWCH;
typedef DWORD *LPDWORD;
/* typedef LPFRHOOKPROC; */
typedef HANDLE *LPHANDLE;
typedef DWORD FULLSCREENCONTROL;
typedef DWORD UNIVERSAL_FONT_ID;
typedef UNIVERSAL_FONT_ID *PUNIVERSAL_FONT_ID;
typedef DWORD REALIZATION_INFO;
typedef REALIZATION_INFO *PREALIZATION_INFO;
typedef DWORD SHAREDHANDLETABLE;
typedef SHAREDHANDLETABLE *PSHAREDHANDLETABLE;
typedef DWORD CHWIDTHINFO;
typedef CHWIDTHINFO *PCHWIDTHINFO;
/* typedef LPHANDLER_FUNCTION; */
typedef PINT LPINT;
typedef PLONG LPLONG;
typedef long LRESULT;
typedef wchar_t *LPWCH;
typedef unsigned short *LPWORD;
/* typedef NPSTR; */
typedef wchar_t *NWPSTR;
typedef WINBOOL *PWINBOOL;
typedef const CHAR *PCCH;
typedef const char *PCSTR;
typedef const wchar_t *PCWCH;
/* typedef PHKEY; */
/* typedef LCID *PLCID; */
typedef short *PSHORT;
/* typedef PSID; */
typedef char *PSTR;
typedef char *PSZ;
#ifndef _DISABLE_TIDENTS
#ifdef UNICODE
typedef wchar_t *PTBYTE;
typedef wchar_t *PTCH;
typedef wchar_t *PTCHAR;
typedef wchar_t *PTSTR;
#else
typedef unsigned char *PTBYTE;
typedef char *PTCH;
typedef char *PTCHAR;
typedef char *PTSTR;
#endif /* UNICODE */
#endif /* _DISABLE_TIDENTS */
/*
typedef PWSTR;
*/
typedef DWORD REGSAM;
typedef short RETCODE;
typedef HANDLE SC_HANDLE;
typedef LPVOID SC_LOCK;
typedef SC_HANDLE *LPSC_HANDLE;
typedef DWORD SERVICE_STATUS_HANDLE;
/* typedef SPHANDLE; */
#ifndef _DISABLE_TIDENTS
#ifdef UNICODE
typedef wchar_t TBYTE;
#ifndef _TCHAR_DEFINED
#define _TCHAR_DEFINED
typedef wchar_t TCHAR;
#endif /* _TCHAR_DEFINED */
typedef wchar_t BCHAR;
#else
typedef unsigned char TBYTE;
#ifndef _TCHAR_DEFINED
#define _TCHAR_DEFINED
typedef char TCHAR;
#endif /* _TCHAR_DEFINED */
typedef BYTE BCHAR;
#endif /* UNICODE */
#endif /* _DISABLE_TIDENTS */
typedef unsigned int WPARAM;
/* typedef YIELDPROC; */
/* Only use __stdcall under WIN32 compiler */
#define _export
/*
Enumerations
*/
#define GEOID_NOT_AVAILABLE (-1)
/*
GEO information types for clients to query
*/
enum SYSGEOTYPE {
GEO_NATION = 0x01,
GEO_LATITUDE = 0x02,
GEO_LONGITUDE = 0x03,
GEO_ISO2 = 0x04,
GEO_ISO3 = 0x05,
GEO_RFC1766 = 0x06,
GEO_LCID = 0x07,
GEO_FRIENDLYNAME = 0x08,
GEO_OFFICIALNAME = 0x09,
GEO_TIMEZONES = 0x0A,
GEO_OFFICIALLANGUAGES = 0x0B,
};
/*
More GEOCLASS defines will be listed here
*/
enum SYSGEOCLASS {
GEOCLASS_NATION = 16,
GEOCLASS_REGION = 14,
};
#define RASCS_DONE 0x2000
#define RASCS_PAUSED 0x1000
typedef enum _RASCONNSTATE {
RASCS_OpenPort = 0,
RASCS_PortOpened,
RASCS_ConnectDevice,
RASCS_DeviceConnected,
RASCS_AllDevicesConnected,
RASCS_Authenticate,
RASCS_AuthNotify,
RASCS_AuthRetry,
RASCS_AuthCallback,
RASCS_AuthChangePassword,
RASCS_AuthProject,
RASCS_AuthLinkSpeed,
RASCS_AuthAck,
RASCS_ReAuthenticate,
RASCS_Authenticated,
RASCS_PrepareForCallback,
RASCS_WaitForModemReset,
RASCS_WaitForCallback,
RASCS_Projected,
RASCS_StartAuthentication,
RASCS_CallbackComplete,
RASCS_LogonNetwork,
RASCS_Interactive = RASCS_PAUSED,
RASCS_RetryAuthentication,
RASCS_CallbackSetByCaller,
RASCS_PasswordExpired,
RASCS_Connected = RASCS_DONE,
RASCS_Disconnected
} RASCONNSTATE ;
typedef enum _RASPROJECTION {
RASP_Amb = 0x10000,
RASP_PppNbf = 0x803F,
RASP_PppIpx = 0x802B,
RASP_PppIp = 0x8021
} RASPROJECTION ;
typedef enum _SID_NAME_USE {
SidTypeUser = 1,
SidTypeGroup,
SidTypeDomain,
SidTypeAlias,
SidTypeWellKnownGroup,
SidTypeDeletedAccount,
SidTypeInvalid,
SidTypeUnknown
} SID_NAME_USE, *PSID_NAME_USE;
#endif /* ! defined (RC_INVOKED) */
/*
Macros
*/
#define FORWARD_WM_NOTIFY(hwnd, idFrom, pnmhdr, fn) (void)(fn)((hwnd), WM_NOTIFY, (WPARAM)(int)(id), (LPARAM)(NMHDR FAR*)(pnmhdr))
#define GetBValue(rgb) ((BYTE) ((rgb) >> 16))
#define GetGValue(rgb) ((BYTE) (((WORD) (rgb)) >> 8))
#define GetRValue(rgb) ((BYTE) (rgb))
#define RGB(r, g ,b) ((DWORD) (((BYTE) (r) | ((WORD) (g) << 8)) | (((DWORD) (BYTE) (b)) << 16)))
#define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) (fn)((hwnd), (int)(wParam), (NMHDR FAR*)(lParam))
#define HIBYTE(w) ((BYTE) (((WORD) (w) >> 8) & 0xFF))
#define HIWORD(l) ((WORD) (((DWORD) (l) >> 16) & 0xFFFF))
#define SHIWORD(l) ((INT16) (((DWORD) (l) >> 16) & 0xFFFF))
#define LOBYTE(w) ((BYTE) (w))
#define LOWORD(l) ((WORD) (l))
#define SLOWORD(l) ((INT16) (l))
#define MAKELONG(a, b) ((LONG) (((WORD) (a)) | ((DWORD) ((WORD) (b))) << 16))
#define MAKEWORD(a, b) ((WORD) (((BYTE) (a)) | ((WORD) ((BYTE) (b))) << 8))
/* original Cygnus headers also had the following defined: */
#define SEXT_HIWORD(l) ((((int)l) >> 16))
#define ZEXT_HIWORD(l) ((((unsigned int)l) >> 16))
#define SEXT_LOWORD(l) ((int)(short)l)
#define INDEXTOOVERLAYMASK(i) ((i) << 8)
#define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
#define MAKEINTATOM(i) (LPTSTR) ((DWORD) ((WORD) (i)))
#ifndef _DISABLE_TIDENTS
#define MAKEINTRESOURCE(i) (LPTSTR) ((ULONG_PTR) ((WORD) (i)))
#endif /* _DISABLE_TIDENTS */
#define MAKEINTRESOURCEA(i) (LPSTR) ((ULONG_PTR) ((WORD) (i)))
#define MAKEINTRESOURCEW(i) (LPWSTR) ((ULONG_PTR) ((WORD) (i)))
#define IS_INTRESOURCE(n) ((((ULONG_PTR) (n)) >> 16) == 0)
#define MAKELANGID(p, s) ((((WORD) (s)) << 10) | (WORD) (p))
#define PRIMARYLANGID(lgid) ((WORD )(lgid) & 0x3ff)
#define SUBLANGID(lgid) ((WORD )(lgid) >> 10)
#define LANGIDFROMLCID(lcid) ((WORD) (lcid))
#define SORTIDFROMLCID(lcid) ((WORD )((((DWORD)(lcid)) & 0x000FFFFF) >> 16))
#define MAKELCID(lgid, srtid) ((DWORD)((((DWORD)((WORD)(srtid))) << 16) | ((DWORD)((WORD)(lgid)))))
#define MAKELPARAM(l, h) ((LPARAM) MAKELONG(l, h))
#define MAKELRESULT(l, h) ((LRESULT) MAKELONG(l, h))
#define MAKEPOINTS(l) (*((POINTS FAR *) & (l)))
#define MAKEROP4(fore,back) (DWORD)((((back) << 8) & 0xFF000000) | (fore))
#define MAKEWPARAM(l, h) ((WPARAM) MAKELONG(l, h))
#define PALETTEINDEX(i) ((COLORREF) (0x01000000 | (DWORD) (WORD) (i)))
#define PALETTERGB(r, g, b) (0x02000000 | RGB(r, g, b))
#define POINTSTOPOINT(pt, pts) {(pt).x = (SHORT) LOWORD(pts); (pt).y = (SHORT) HIWORD(pts);}
#define POINTTOPOINTS(pt) (MAKELONG((short) ((pt).x), (short) ((pt).y)))
#define INDEXTOOVERLAYMASK(i) ((i) << 8)
#define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
#ifndef _DISABLE_TIDENTS
# ifdef UNICODE
# ifndef _TEXT
# define TEXT(quote) L##quote
# endif /* _TEXT */
# else /* UNICODE */
# ifndef _TEXT
# define TEXT(quote) quote
# endif /* _TEXT */
# endif /* UNICODE */
#endif /* _DISABLE_TIDENTS */
#ifndef RC_INVOKED
/*
Definitions for callback procedures
*/
typedef enum {
WinNullSid = 0,
WinWorldSid = 1,
WinLocalSid = 2,
WinCreatorOwnerSid = 3,
WinCreatorGroupSid = 4,
WinCreatorOwnerServerSid = 5,
WinCreatorGroupServerSid = 6,
WinNtAuthoritySid = 7,
WinDialupSid = 8,
WinNetworkSid = 9,
WinBatchSid = 10,
WinInteractiveSid = 11,
WinServiceSid = 12,
WinAnonymousSid = 13,
WinProxySid = 14,
WinEnterpriseControllersSid = 15,
WinSelfSid = 16,
WinAuthenticatedUserSid = 17,
WinRestrictedCodeSid = 18,
WinTerminalServerSid = 19,
WinRemoteLogonIdSid = 20,
WinLogonIdsSid = 21,
WinLocalSystemSid = 22,
WinLocalServiceSid = 23,
WinNetworkServiceSid = 24,
WinBuiltinDomainSid = 25,
WinBuiltinAdministratorsSid = 26,
WinBuiltinUsersSid = 27,
WinBuiltinGuestsSid = 28,
WinBuiltinPowerUsersSid = 29,
WinBuiltinAccountOperatorsSid = 30,
WinBuiltinSystemOperatorsSid = 31,
WinBuiltinPrintOperatorsSid = 32,
WinBuiltinBackupOperatorsSid = 33,
WinBuiltinReplicatorSid = 34,
WinBuiltinPreWindows2000CompatibleAccessSid = 35,
WinBuiltinRemoteDesktopUsersSid = 36,
WinBuiltinNetworkConfigurationOperatorsSid = 37,
WinAccountAdministratorSid = 38,
WinAccountGuestSid = 39,
WinAccountKrbtgtSid = 40,
WinAccountDomainAdminsSid = 41,
WinAccountDomainUsersSid = 42,
WinAccountDomainGuestsSid = 43,
WinAccountComputersSid = 44,
WinAccountControllersSid = 45,
WinAccountCertAdminsSid = 46,
WinAccountSchemaAdminsSid = 47,
WinAccountEnterpriseAdminsSid = 48,
WinAccountPolicyAdminsSid = 49,
WinAccountRasAndIasServersSid = 50,
WinNTLMAuthenticationSid = 51,
WinDigestAuthenticationSid = 52,
WinSChannelAuthenticationSid = 53,
WinThisOrganizationSid = 54,
WinOtherOrganizationSid = 55,
WinBuiltinIncomingForestTrustBuildersSid = 56,
WinBuiltinPerfMonitoringUsersSid = 57,
WinBuiltinPerfLoggingUsersSid = 58,
WinBuiltinAuthorizationAccessSid = 59,
WinBuiltinTerminalServerLicenseServersSid = 60,
} WELL_KNOWN_SID_TYPE;
typedef enum _AUDIT_EVENT_TYPE {
AuditEventObjectAccess,
AuditEventDirectoryServiceAccess
} AUDIT_EVENT_TYPE, *PAUDIT_EVENT_TYPE;
typedef int (CALLBACK *BFFCALLBACK) (HWND, UINT, LPARAM, LPARAM);
typedef UINT (CALLBACK *LPCCHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
typedef UINT (CALLBACK *LPCFHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
typedef DWORD (CALLBACK *EDITSTREAMCALLBACK) (DWORD, LPBYTE, LONG, LONG);
typedef UINT (CALLBACK *LPFRHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
typedef UINT (CALLBACK *LPOFNHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
typedef UINT (CALLBACK *LPPRINTHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
typedef UINT (CALLBACK *LPSETUPHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
typedef WINBOOL (CALLBACK *DLGPROC) (HWND, UINT, WPARAM, LPARAM);
typedef int (CALLBACK *PFNPROPSHEETCALLBACK) (HWND, UINT, LPARAM);
typedef VOID (CALLBACK *LPSERVICE_MAIN_FUNCTIONA) (DWORD, LPSTR*);
typedef VOID (CALLBACK *LPSERVICE_MAIN_FUNCTIONW) (DWORD, LPWSTR*);
typedef int (CALLBACK *PFNTVCOMPARE) (LPARAM, LPARAM, LPARAM);
typedef LRESULT (CALLBACK *WNDPROC) (HWND, UINT, WPARAM, LPARAM);
typedef int (CALLBACK *FARPROC)(void);
typedef FARPROC PROC;
typedef WINBOOL (CALLBACK *ENUMRESTYPEPROCA) (HANDLE, LPSTR, LONG);
typedef WINBOOL (CALLBACK *ENUMRESTYPEPROCW) (HANDLE, LPWSTR, LONG);
typedef WINBOOL (CALLBACK *ENUMRESNAMEPROCA) (HANDLE, LPCSTR, LPSTR, LONG);
typedef WINBOOL (CALLBACK *ENUMRESNAMEPROCW) (HANDLE, LPCWSTR, LPWSTR, LONG);
typedef WINBOOL (CALLBACK *ENUMRESLANGPROCA) (HANDLE, LPCSTR, LPCSTR, WORD, LONG);
typedef WINBOOL (CALLBACK *ENUMRESLANGPROCW) (HANDLE, LPCWSTR, LPCWSTR, WORD, LONG);
typedef WINBOOL (CALLBACK *DESKTOPENUMPROCA) (LPSTR, LPARAM);
typedef WINBOOL (CALLBACK *DESKTOPENUMPROCW) (LPWSTR, LPARAM);
typedef WINBOOL (CALLBACK *ENUMWINDOWSPROC) (HWND, LPARAM);
typedef WINBOOL (CALLBACK *ENUMWINDOWSTATIONPROCA) (LPSTR, LPARAM);
typedef WINBOOL (CALLBACK *ENUMWINDOWSTATIONPROCW) (LPWSTR, LPARAM);
typedef VOID (CALLBACK *SENDASYNCPROC) (HWND, UINT, DWORD, LRESULT);
typedef VOID (CALLBACK *TIMERPROC) (HWND, UINT, UINT, DWORD);
typedef WINBOOL (CALLBACK *GRAYSTRINGPROC) (HDC, LPARAM, int);
typedef WINBOOL (CALLBACK *DRAWSTATEPROC) (HDC, LPARAM, WPARAM, int, int);
typedef WINBOOL (CALLBACK *PROPENUMPROCEXA) (HWND, LPCSTR, HANDLE, DWORD);
typedef WINBOOL (CALLBACK *PROPENUMPROCEXW) (HWND, LPCWSTR, HANDLE, DWORD);
typedef WINBOOL (CALLBACK *PROPENUMPROCA) (HWND, LPCSTR, HANDLE);
typedef WINBOOL (CALLBACK *PROPENUMPROCW) (HWND, LPCWSTR, HANDLE);
typedef LRESULT (CALLBACK *HOOKPROC) (int, WPARAM, LPARAM);
typedef VOID (CALLBACK *ENUMOBJECTSPROC) (LPVOID, LPARAM);
typedef VOID (CALLBACK *LINEDDAPROC) (int, int, LPARAM);
typedef WINBOOL (CALLBACK *ABORTPROC) (HDC, int);
typedef UINT (CALLBACK *LPPAGEPAINTHOOK) (HWND, UINT, WPARAM, LPARAM );
typedef UINT (CALLBACK *LPPAGESETUPHOOK) (HWND, UINT, WPARAM, LPARAM );
typedef int (CALLBACK *ICMENUMPROCA) (LPSTR, LPARAM);
typedef int (CALLBACK *ICMENUMPROCW) (LPWSTR, LPARAM);
typedef LONG (*EDITWORDBREAKPROCEX) (char *, LONG, BYTE, INT);
typedef int (CALLBACK *PFNLVCOMPARE) (LPARAM, LPARAM, LPARAM);
typedef WINBOOL (CALLBACK *LOCALE_ENUMPROCA) (LPSTR);
typedef WINBOOL (CALLBACK *LOCALE_ENUMPROCW) (LPWSTR);
typedef WINBOOL (CALLBACK *CODEPAGE_ENUMPROCA) (LPSTR);
typedef WINBOOL (CALLBACK *CODEPAGE_ENUMPROCW) (LPWSTR);
typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCA) (LPSTR);
typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCW) (LPWSTR);
typedef WINBOOL (CALLBACK *TIMEFMT_ENUMPROCA) (LPSTR);
typedef WINBOOL (CALLBACK *TIMEFMT_ENUMPROCW) (LPWSTR);
typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCA) (LPSTR);
typedef int (CALLBACK *EMFPLAYPROC)( HDC hdc, INT iFunction, HANDLE hPageQuery );
typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCW) (LPWSTR);
typedef WINBOOL (CALLBACK *PHANDLER_ROUTINE) (DWORD);
typedef VOID (CALLBACK *LPHANDLER_FUNCTION) (DWORD);
typedef DWORD (CALLBACK *LPHANDLER_FUNCTION_EX)(DWORD,DWORD,LPVOID,LPVOID);
typedef UINT (CALLBACK *PFNGETPROFILEPATHA) (LPCSTR, LPSTR, UINT);
typedef UINT (CALLBACK *PFNGETPROFILEPATHW) (LPCWSTR, LPWSTR, UINT);
typedef UINT (CALLBACK *PFNRECONCILEPROFILEA) (LPCSTR, LPCSTR, DWORD);
typedef UINT (CALLBACK *PFNRECONCILEPROFILEW) (LPCWSTR, LPCWSTR, DWORD);
typedef WINBOOL (CALLBACK *PFNPROCESSPOLICIESA) (HWND, LPCSTR, LPCSTR, LPCSTR, DWORD);
typedef WINBOOL (CALLBACK *PFNPROCESSPOLICIESW) (HWND, LPCWSTR, LPCWSTR, LPCWSTR, DWORD);
#ifndef _DISABLE_TIDENTS
#ifdef UNICODE
#define LPSERVICE_MAIN_FUNCTION LPSERVICE_MAIN_FUNCTIONW
#define ENUMRESTYPEPROC ENUMRESTYPEPROCW
#define ENUMRESNAMEPROC ENUMRESNAMEPROCW
#define ENUMRESLANGPROC ENUMRESLANGPROCW
#define DESKTOPENUMPROC DESKTOPENUMPROCW
#define ENUMWINDOWSTATIONPROC ENUMWINDOWSTATIONPROCW
#define PROPENUMPROCEX PROPENUMPROCEXW
#define PROPENUMPROC PROPENUMPROCW
#define ICMENUMPROC ICMENUMPROCW
#define LOCALE_ENUMPROC LOCALE_ENUMPROCW
#define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCW
#define DATEFMT_ENUMPROC DATEFMT_ENUMPROCW
#define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCW
#define CALINFO_ENUMPROC CALINFO_ENUMPROCW
#define PFNGETPROFILEPATH PFNGETPROFILEPATHW
#define PFNRECONCILEPROFILE PFNRECONCILEPROFILEW
#define PFNPROCESSPOLICIES PFNPROCESSPOLICIESW
#else /* UNICODE */
#define LPSERVICE_MAIN_FUNCTION LPSERVICE_MAIN_FUNCTIONA
#define ENUMRESTYPEPROC ENUMRESTYPEPROCA
#define ENUMRESNAMEPROC ENUMRESNAMEPROCA
#define ENUMRESLANGPROC ENUMRESLANGPROCA
#define DESKTOPENUMPROC DESKTOPENUMPROCA
#define ENUMWINDOWSTATIONPROC ENUMWINDOWSTATIONPROCA
#define PROPENUMPROCEX PROPENUMPROCEXA
#define PROPENUMPROC PROPENUMPROCA
#define ICMENUMPROC ICMENUMPROCA
#define LOCALE_ENUMPROC LOCALE_ENUMPROCA
#define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCA
#define DATEFMT_ENUMPROC DATEFMT_ENUMPROCA
#define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCA
#define CALINFO_ENUMPROC CALINFO_ENUMPROCA
#define PFNGETPROFILEPATH PFNGETPROFILEPATHA
#define PFNRECONCILEPROFILE PFNRECONCILEPROFILEA
#define PFNPROCESSPOLICIES PFNPROCESSPOLICIESA
#endif /* UNICODE */
#endif /* _DISABLE_TIDENTS */
#define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0}
#define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1}
#define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2}
#define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3}
#define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4}
#define SECURITY_NT_AUTHORITY {0,0,0,0,0,5}
#define SE_CREATE_TOKEN_NAME TEXT("SeCreateTokenPrivilege")
#define SE_ASSIGNPRIMARYTOKEN_NAME TEXT("SeAssignPrimaryTokenPrivilege")
#define SE_LOCK_MEMORY_NAME TEXT("SeLockMemoryPrivilege")
#define SE_INCREASE_QUOTA_NAME TEXT("SeIncreaseQuotaPrivilege")
#define SE_UNSOLICITED_INPUT_NAME TEXT("SeUnsolicitedInputPrivilege")
#define SE_MACHINE_ACCOUNT_NAME TEXT("SeMachineAccountPrivilege")
#define SE_TCB_NAME TEXT("SeTcbPrivilege")
#define SE_SECURITY_NAME TEXT("SeSecurityPrivilege")
#define SE_TAKE_OWNERSHIP_NAME TEXT("SeTakeOwnershipPrivilege")
#define SE_LOAD_DRIVER_NAME TEXT("SeLoadDriverPrivilege")
#define SE_SYSTEM_PROFILE_NAME TEXT("SeSystemProfilePrivilege")
#define SE_SYSTEMTIME_NAME TEXT("SeSystemtimePrivilege")
#define SE_PROF_SINGLE_PROCESS_NAME TEXT("SeProfileSingleProcessPrivilege")
#define SE_INC_BASE_PRIORITY_NAME TEXT("SeIncreaseBasePriorityPrivilege")
#define SE_CREATE_PAGEFILE_NAME TEXT("SeCreatePagefilePrivilege")
#define SE_CREATE_PERMANENT_NAME TEXT("SeCreatePermanentPrivilege")
#define SE_BACKUP_NAME TEXT("SeBackupPrivilege")
#define SE_RESTORE_NAME TEXT("SeRestorePrivilege")
#define SE_SHUTDOWN_NAME TEXT("SeShutdownPrivilege")
#define SE_DEBUG_NAME TEXT("SeDebugPrivilege")
#define SE_AUDIT_NAME TEXT("SeAuditPrivilege")
#define SE_SYSTEM_ENVIRONMENT_NAME TEXT("SeSystemEnvironmentPrivilege")
#define SE_CHANGE_NOTIFY_NAME TEXT("SeChangeNotifyPrivilege")
#define SE_REMOTE_SHUTDOWN_NAME TEXT("SeRemoteShutdownPrivilege")
typedef BOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCA)(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR);
typedef BOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCA)(LGRPID, LCID, LPSTR, LONG_PTR);
typedef BOOL (CALLBACK *UILANGUAGE_ENUMPROCA)(LPSTR, LONG_PTR);
typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXA)(LPSTR, CALID);
typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXA)(LPSTR, CALID);
typedef BOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCW)(LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR);
typedef BOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCW)(LGRPID, LCID, LPWSTR, LONG_PTR);
typedef BOOL (CALLBACK *UILANGUAGE_ENUMPROCW)(LPWSTR, LONG_PTR);
typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXW)(LPWSTR, CALID);
typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXW)(LPWSTR, CALID);
typedef BOOL (CALLBACK *GEO_ENUMPROC)(GEOID);
#define SERVICES_ACTIVE_DATABASEW L"ServicesActive"
#define SERVICES_FAILED_DATABASEW L"ServicesFailed"
#define SERVICES_ACTIVE_DATABASEA "ServicesActive"
#define SERVICES_FAILED_DATABASEA "ServicesFailed"
#define SC_GROUP_IDENTIFIERW L'+'
#define SC_GROUP_IDENTIFIERA '+'
#ifndef _DISABLE_TIDENTS
#ifdef UNICODE
#define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEW
#define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEW
#define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERW
#else
#define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEA
#define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEA
#define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERA
#endif /* UNICODE */
#endif /* _DISABLE_TIDENTS */
#define MM_MAX_NUMAXES 16
/* ---------------------------------- */
/* From ddeml.h in old Cygnus headers */
typedef void (*CALLB) (void);
typedef CALLB PFNCALLBACK;
typedef enum _COMPUTER_NAME_FORMAT {
ComputerNameNetBIOS,
ComputerNameDnsHostname,
ComputerNameDnsDomain,
ComputerNameDnsFullyQualified,
ComputerNamePhysicalNetBIOS,
ComputerNamePhysicalDnsHostname,
ComputerNamePhysicalDnsDomain,
ComputerNamePhysicalDnsFullyQualified,
ComputerNameMax
} COMPUTER_NAME_FORMAT ;
typedef enum _HEAP_INFORMATION_CLASS {
HeapCompatibilityInformation
} HEAP_INFORMATION_CLASS;
typedef enum {
LT_DONT_CARE,
LT_LOWEST_LATENCY
} LATENCY_TIME;
typedef LONG (CALLBACK *PVECTORED_EXCEPTION_HANDLER)(
struct _EXCEPTION_POINTERS *ExceptionInfo
);
typedef
VOID
(CALLBACK *PAPCFUNC)(
ULONG_PTR dwParam
);
#ifdef __cplusplus
#define REFGUID const GUID &
#else
#define REFGUID const GUID *
#endif
typedef DWORD (CALLBACK *PFE_EXPORT_FUNC)(PBYTE pbData,PVOID pvCallbackContext,ULONG ulLength);
typedef DWORD (CALLBACK *PFE_IMPORT_FUNC)(PBYTE pbData,PVOID pvCallbackContext,PULONG ulLength);
typedef VOID (CALLBACK *PFIBER_START_ROUTINE)(
LPVOID lpFiberParameter
);
typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE;
typedef enum _MEMORY_RESOURCE_NOTIFICATION_TYPE {
LowMemoryResourceNotification,
HighMemoryResourceNotification
} MEMORY_RESOURCE_NOTIFICATION_TYPE;
typedef VOID (CALLBACK *WAITORTIMERCALLBACK) (PVOID, BOOLEAN );
/* End of stuff from ddeml.h in old Cygnus headers */
/* ----------------------------------------------- */
typedef FARPROC WNDENUMPROC;
typedef FARPROC MFENUMPROC;
typedef FARPROC ENHMFENUMPROC;
typedef DWORD CCSTYLE, *PCCSTYLE, *LPCCSTYLE;
typedef DWORD CCSTYLEFLAGA, *PCCSTYLEFLAGA, *LPCCSTYLEFLAGA;
#define DECLARE_HANDLE(s) typedef HANDLE s
//typedef LANGID *PLANGID;
#endif /* ! defined (RC_INVOKED) */
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* _GNU_H_WINDOWS32_BASE */

View File

@@ -1,133 +0,0 @@
#ifndef _ROS_BASETSD_H
#define _ROS_BASETSD_H
#if __GNUC__ >=3
#pragma GCC system_header
#endif
#ifdef __USE_W32API
#include_next <basetsd.h>
#ifdef __GNUC__
#ifndef __int64
#define __int64 long long
#endif
#endif
#else /* __USE_W32API */
#ifdef __GNUC__
#ifndef __int64
#define __int64 long long
#endif
#endif
#if defined(_WIN64)
#define __int3264 __int64
#define ADDRESS_TAG_BIT 0x40000000000UI64
#else /* !_WIN64 */
#define __int3264 __int32
#define ADDRESS_TAG_BIT 0x80000000UL
#define HandleToUlong( h ) ((ULONG)(ULONG_PTR)(h) )
#define HandleToLong( h ) ((LONG)(LONG_PTR) (h) )
#define LongToHandle( h) ((HANDLE)(LONG_PTR) (h))
#define PtrToUlong( p ) ((ULONG)(ULONG_PTR) (p) )
#define PtrToLong( p ) ((LONG)(LONG_PTR) (p) )
#define PtrToUint( p ) ((UINT)(UINT_PTR) (p) )
#define PtrToInt( p ) ((INT)(INT_PTR) (p) )
#define PtrToUshort( p ) ((unsigned short)(ULONG_PTR)(p) )
#define PtrToShort( p ) ((short)(LONG_PTR)(p) )
#define IntToPtr( i ) ((VOID*)(INT_PTR)((int)i))
#define UIntToPtr( ui ) ((VOID*)(UINT_PTR)((unsigned int)ui))
#define LongToPtr( l ) ((VOID*)(LONG_PTR)((long)l))
#define ULongToPtr( ul ) ((VOID*)(ULONG_PTR)((unsigned long)ul))
#endif /* !_WIN64 */
#define UlongToPtr(ul) ULongToPtr(ul)
#define UintToPtr(ui) UIntToPtr(ui)
#define MAXUINT_PTR (~((UINT_PTR)0))
#define MAXINT_PTR ((INT_PTR)(MAXUINT_PTR >> 1))
#define MININT_PTR (~MAXINT_PTR)
#define MAXULONG_PTR (~((ULONG_PTR)0))
#define MAXLONG_PTR ((LONG_PTR)(MAXULONG_PTR >> 1))
#define MINLONG_PTR (~MAXLONG_PTR)
#define MAXUHALF_PTR ((UHALF_PTR)~0)
#define MAXHALF_PTR ((HALF_PTR)(MAXUHALF_PTR >> 1))
#define MINHALF_PTR (~MAXHALF_PTR)
#ifndef RC_INVOKED
#ifdef __cplusplus
extern "C" {
#endif
typedef long LONG32, *PLONG32;
#ifndef XFree86Server
typedef int INT32, *PINT32;
#endif /* ndef XFree86Server */
typedef unsigned int ULONG32, *PULONG32;
typedef unsigned int DWORD32, *PDWORD32;
typedef unsigned int UINT32, *PUINT32;
#if defined(_WIN64)
typedef __int64 INT_PTR, *PINT_PTR;
typedef unsigned __int64 UINT_PTR, *PUINT_PTR;
typedef __int64 LONG_PTR, *PLONG_PTR;
typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;
typedef unsigned __int64 HANDLE_PTR;
typedef unsigned int UHALF_PTR, *PUHALF_PTR;
typedef int HALF_PTR, *PHALF_PTR;
#if 0 /* TODO when WIN64 is here */
inline unsigned long HandleToUlong(const void* h )
{ return((unsigned long) h ); }
inline long HandleToLong( const void* h )
{ return((long) h ); }
inline void* LongToHandle( const long h )
{ return((void*) (INT_PTR) h ); }
inline unsigned long PtrToUlong( const void* p)
{ return((unsigned long) p ); }
inline unsigned int PtrToUint( const void* p )
{ return((unsigned int) p ); }
inline unsigned short PtrToUshort( const void* p )
{ return((unsigned short) p ); }
inline long PtrToLong( const void* p )
{ return((long) p ); }
inline int PtrToInt( const void* p )
{ return((int) p ); }
inline short PtrToShort( const void* p )
{ return((short) p ); }
inline void* IntToPtr( const int i )
{ return( (void*)(INT_PTR)i ); }
inline void* UIntToPtr(const unsigned int ui)
{ return( (void*)(UINT_PTR)ui ); }
inline void* LongToPtr( const long l )
{ return( (void*)(LONG_PTR)l ); }
inline void* ULongToPtr( const unsigned long ul )
{ return( (void*)(ULONG_PTR)ul ); }
#endif /* 0_ */
#else /* !_WIN64 */
typedef int INT_PTR, *PINT_PTR;
typedef unsigned int UINT_PTR, *PUINT_PTR;
typedef long LONG_PTR, *PLONG_PTR;
typedef unsigned long ULONG_PTR, *PULONG_PTR;
typedef unsigned short UHALF_PTR, *PUHALF_PTR;
typedef short HALF_PTR, *PHALF_PTR;
typedef unsigned long HANDLE_PTR;
#endif /* !_WIN64 */
typedef ULONG_PTR SIZE_T, *PSIZE_T;
typedef LONG_PTR SSIZE_T, *PSSIZE_T;
typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR;
typedef __int64 LONG64, *PLONG64;
typedef __int64 INT64, *PINT64;
typedef unsigned __int64 ULONG64, *PULONG64;
typedef unsigned __int64 DWORD64, *PDWORD64;
typedef unsigned __int64 UINT64, *PUINT64;
#ifdef __cplusplus
}
#endif
#endif /* !RC_INVOKED */
#endif /* !__USE_W32API */
#endif /* _ROS_BASETSD_H */

View File

@@ -1,432 +0,0 @@
/*
* File cvconst.h - MS debug information
*
* Copyright (C) 2004, Eric Pouech
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* information in this file is highly derivated from MSDN DIA information pages */
/* symbols & types enumeration */
enum SymTagEnum
{
SymTagNull,
SymTagExe,
SymTagCompiland,
SymTagCompilandDetails,
SymTagCompilandEnv,
SymTagFunction,
SymTagBlock,
SymTagData,
SymTagAnnotation,
SymTagLabel,
SymTagPublicSymbol,
SymTagUDT,
SymTagEnum,
SymTagFunctionType,
SymTagPointerType,
SymTagArrayType,
SymTagBaseType,
SymTagTypedef,
SymTagBaseClass,
SymTagFriend,
SymTagFunctionArgType,
SymTagFuncDebugStart,
SymTagFuncDebugEnd,
SymTagUsingNamespace,
SymTagVTableShape,
SymTagVTable,
SymTagCustom,
SymTagThunk,
SymTagCustomType,
SymTagManagedType,
SymTagDimension,
SymTagMax
};
enum BasicType
{
btNoType = 0,
btVoid = 1,
btChar = 2,
btWChar = 3,
btInt = 6,
btUInt = 7,
btFloat = 8,
btBCD = 9,
btBool = 10,
btLong = 13,
btULong = 14,
btCurrency = 25,
btDate = 26,
btVariant = 27,
btComplex = 28,
btBit = 29,
btBSTR = 30,
btHresult = 31,
};
/* kind of UDT */
enum UdtKind
{
UdtStruct,
UdtClass,
UdtUnion
};
/* where a SymTagData is */
enum LocationType
{
LocIsNull,
LocIsStatic,
LocIsTLS,
LocIsRegRel,
LocIsThisRel,
LocIsEnregistered,
LocIsBitField,
LocIsSlot,
LocIsIlRel,
LocInMetaData,
LocIsConstant
};
/* kind of SymTagData */
enum DataKind
{
DataIsUnknown,
DataIsLocal,
DataIsStaticLocal,
DataIsParam,
DataIsObjectPtr,
DataIsFileStatic,
DataIsGlobal,
DataIsMember,
DataIsStaticMember,
DataIsConstant
};
/* values for registers (on different CPUs) */
enum CV_HREG_e
{
/* those values are common to all supported CPUs (and CPU independant) */
CV_ALLREG_ERR = 30000,
CV_ALLREG_TEB = 30001,
CV_ALLREG_TIMER = 30002,
CV_ALLREG_EFAD1 = 30003,
CV_ALLREG_EFAD2 = 30004,
CV_ALLREG_EFAD3 = 30005,
CV_ALLREG_VFRAME = 30006,
CV_ALLREG_HANDLE = 30007,
CV_ALLREG_PARAMS = 30008,
CV_ALLREG_LOCALS = 30009,
/* Intel x86 CPU */
CV_REG_NONE = 0,
CV_REG_AL = 1,
CV_REG_CL = 2,
CV_REG_DL = 3,
CV_REG_BL = 4,
CV_REG_AH = 5,
CV_REG_CH = 6,
CV_REG_DH = 7,
CV_REG_BH = 8,
CV_REG_AX = 9,
CV_REG_CX = 10,
CV_REG_DX = 11,
CV_REG_BX = 12,
CV_REG_SP = 13,
CV_REG_BP = 14,
CV_REG_SI = 15,
CV_REG_DI = 16,
CV_REG_EAX = 17,
CV_REG_ECX = 18,
CV_REG_EDX = 19,
CV_REG_EBX = 20,
CV_REG_ESP = 21,
CV_REG_EBP = 22,
CV_REG_ESI = 23,
CV_REG_EDI = 24,
CV_REG_ES = 25,
CV_REG_CS = 26,
CV_REG_SS = 27,
CV_REG_DS = 28,
CV_REG_FS = 29,
CV_REG_GS = 30,
CV_REG_IP = 31,
CV_REG_FLAGS = 32,
CV_REG_EIP = 33,
CV_REG_EFLAGS = 34,
/* <pcode> */
CV_REG_TEMP = 40,
CV_REG_TEMPH = 41,
CV_REG_QUOTE = 42,
CV_REG_PCDR3 = 43, /* this includes PCDR4 to PCDR7 */
CV_REG_CR0 = 80, /* this includes CR1 to CR4 */
CV_REG_DR0 = 90, /* this includes DR1 to DR7 */
/* </pcode> */
CV_REG_GDTR = 110,
CV_REG_GDTL = 111,
CV_REG_IDTR = 112,
CV_REG_IDTL = 113,
CV_REG_LDTR = 114,
CV_REG_TR = 115,
CV_REG_PSEUDO1 = 116, /* this includes Pseudo02 to Pseuso09 */
CV_REG_ST0 = 128, /* this includes ST1 to ST7 */
CV_REG_CTRL = 136,
CV_REG_STAT = 137,
CV_REG_TAG = 138,
CV_REG_FPIP = 139,
CV_REG_FPCS = 140,
CV_REG_FPDO = 141,
CV_REG_FPDS = 142,
CV_REG_ISEM = 143,
CV_REG_FPEIP = 144,
CV_REG_FPEDO = 145,
CV_REG_MM0 = 146, /* this includes MM1 to MM7 */
CV_REG_XMM0 = 154, /* this includes XMM1 to XMM7 */
CV_REG_XMM00 = 162,
CV_REG_XMM0L = 194, /* this includes XMM1L to XMM7L */
CV_REG_XMM0H = 202, /* this includes XMM1H to XMM7H */
CV_REG_MXCSR = 211,
CV_REG_EDXEAX = 212,
CV_REG_EMM0L = 220,
CV_REG_EMM0H = 228,
CV_REG_MM00 = 236,
CV_REG_MM01 = 237,
CV_REG_MM10 = 238,
CV_REG_MM11 = 239,
CV_REG_MM20 = 240,
CV_REG_MM21 = 241,
CV_REG_MM30 = 242,
CV_REG_MM31 = 243,
CV_REG_MM40 = 244,
CV_REG_MM41 = 245,
CV_REG_MM50 = 246,
CV_REG_MM51 = 247,
CV_REG_MM60 = 248,
CV_REG_MM61 = 249,
CV_REG_MM70 = 250,
CV_REG_MM71 = 251,
/* Motorola 68K CPU */
CV_R68_D0 = 0, /* this includes D1 to D7 too */
CV_R68_A0 = 8, /* this includes A1 to A7 too */
CV_R68_CCR = 16,
CV_R68_SR = 17,
CV_R68_USP = 18,
CV_R68_MSP = 19,
CV_R68_SFC = 20,
CV_R68_DFC = 21,
CV_R68_CACR = 22,
CV_R68_VBR = 23,
CV_R68_CAAR = 24,
CV_R68_ISP = 25,
CV_R68_PC = 26,
CV_R68_FPCR = 28,
CV_R68_FPSR = 29,
CV_R68_FPIAR = 30,
CV_R68_FP0 = 32, /* this includes FP1 to FP7 */
CV_R68_MMUSR030 = 41,
CV_R68_MMUSR = 42,
CV_R68_URP = 43,
CV_R68_DTT0 = 44,
CV_R68_DTT1 = 45,
CV_R68_ITT0 = 46,
CV_R68_ITT1 = 47,
CV_R68_PSR = 51,
CV_R68_PCSR = 52,
CV_R68_VAL = 53,
CV_R68_CRP = 54,
CV_R68_SRP = 55,
CV_R68_DRP = 56,
CV_R68_TC = 57,
CV_R68_AC = 58,
CV_R68_SCC = 59,
CV_R68_CAL = 60,
CV_R68_TT0 = 61,
CV_R68_TT1 = 62,
CV_R68_BAD0 = 64, /* this includes BAD1 to BAD7 */
CV_R68_BAC0 = 72, /* this includes BAC1 to BAC7 */
/* MIPS 4000 CPU */
CV_M4_NOREG = CV_REG_NONE,
CV_M4_IntZERO = 10,
CV_M4_IntAT = 11,
CV_M4_IntV0 = 12,
CV_M4_IntV1 = 13,
CV_M4_IntA0 = 14, /* this includes IntA1 to IntA3 */
CV_M4_IntT0 = 18, /* this includes IntT1 to IntT7 */
CV_M4_IntS0 = 26, /* this includes IntS1 to IntS7 */
CV_M4_IntT8 = 34,
CV_M4_IntT9 = 35,
CV_M4_IntKT0 = 36,
CV_M4_IntKT1 = 37,
CV_M4_IntGP = 38,
CV_M4_IntSP = 39,
CV_M4_IntS8 = 40,
CV_M4_IntRA = 41,
CV_M4_IntLO = 42,
CV_M4_IntHI = 43,
CV_M4_Fir = 50,
CV_M4_Psr = 51,
CV_M4_FltF0 = 60, /* this includes FltF1 to Flt31 */
CV_M4_FltFsr = 92,
/* Alpha AXP CPU */
CV_ALPHA_NOREG = CV_REG_NONE,
CV_ALPHA_FltF0 = 10, /* this includes FltF1 to FltF31 */
CV_ALPHA_IntV0 = 42,
CV_ALPHA_IntT0 = 43, /* this includes T1 to T7 */
CV_ALPHA_IntS0 = 51, /* this includes S1 to S5 */
CV_ALPHA_IntFP = 57,
CV_ALPHA_IntA0 = 58, /* this includes A1 to A5 */
CV_ALPHA_IntT8 = 64,
CV_ALPHA_IntT9 = 65,
CV_ALPHA_IntT10 = 66,
CV_ALPHA_IntT11 = 67,
CV_ALPHA_IntRA = 68,
CV_ALPHA_IntT12 = 69,
CV_ALPHA_IntAT = 70,
CV_ALPHA_IntGP = 71,
CV_ALPHA_IntSP = 72,
CV_ALPHA_IntZERO = 73,
CV_ALPHA_Fpcr = 74,
CV_ALPHA_Fir = 75,
CV_ALPHA_Psr = 76,
CV_ALPHA_FltFsr = 77,
CV_ALPHA_SoftFpcr = 78,
/* Motorola & IBM PowerPC CPU */
CV_PPC_GPR0 = 1, /* this includes GPR1 to GPR31 */
CV_PPC_CR = 33,
CV_PPC_CR0 = 34, /* this includes CR1 to CR7 */
CV_PPC_FPR0 = 42, /* this includes FPR1 to FPR31 */
CV_PPC_FPSCR = 74,
CV_PPC_MSR = 75,
CV_PPC_SR0 = 76, /* this includes SR1 to SR15 */
/* some PPC registers missing */
/* Hitachi SH3 CPU */
CV_SH3_NOREG = CV_REG_NONE,
CV_SH3_IntR0 = 10, /* this include R1 to R13 */
CV_SH3_IntFp = 24,
CV_SH3_IntSp = 25,
CV_SH3_Gbr = 38,
CV_SH3_Pr = 39,
CV_SH3_Mach = 40,
CV_SH3_Macl = 41,
CV_SH3_Pc = 50,
CV_SH3_Sr = 51,
CV_SH3_BarA = 60,
CV_SH3_BasrA = 61,
CV_SH3_BamrA = 62,
CV_SH3_BbrA = 63,
CV_SH3_BarB = 64,
CV_SH3_BasrB = 65,
CV_SH3_BamrB = 66,
CV_SH3_BbrB = 67,
CV_SH3_BdrB = 68,
CV_SH3_BdmrB = 69,
CV_SH3_Brcr = 70,
CV_SH_Fpscr = 75,
CV_SH_Fpul = 76,
CV_SH_FpR0 = 80, /* this includes FpR1 to FpR15 */
CV_SH_XFpR0 = 96, /* this includes XFpR1 to XXFpR15 */
/* ARM CPU */
CV_ARM_NOREG = CV_REG_NONE,
CV_ARM_R0 = 10, /* this includes R1 to R12 */
CV_ARM_SP = 23,
CV_ARM_LR = 24,
CV_ARM_PC = 25,
CV_ARM_CPSR = 26,
/* Intel IA64 CPU */
CV_IA64_NOREG = CV_REG_NONE,
CV_IA64_Br0 = 512, /* this includes Br1 to Br7 */
CV_IA64_P0 = 704, /* this includes P1 to P63 */
CV_IA64_Preds = 768,
CV_IA64_IntH0 = 832, /* this includes H1 to H15 */
CV_IA64_Ip = 1016,
CV_IA64_Umask = 1017,
CV_IA64_Cfm = 1018,
CV_IA64_Psr = 1019,
CV_IA64_Nats = 1020,
CV_IA64_Nats2 = 1021,
CV_IA64_Nats3 = 1022,
CV_IA64_IntR0 = 1024, /* this includes R1 to R127 */
CV_IA64_FltF0 = 2048, /* this includes FltF1 to FltF127 */
/* some IA64 registers missing */
/* TriCore CPU */
CV_TRI_NOREG = CV_REG_NONE,
CV_TRI_D0 = 10, /* includes D1 to D15 */
CV_TRI_A0 = 26, /* includes A1 to A15 */
CV_TRI_E0 = 42,
CV_TRI_E2 = 43,
CV_TRI_E4 = 44,
CV_TRI_E6 = 45,
CV_TRI_E8 = 46,
CV_TRI_E10 = 47,
CV_TRI_E12 = 48,
CV_TRI_E14 = 49,
CV_TRI_EA0 = 50,
CV_TRI_EA2 = 51,
CV_TRI_EA4 = 52,
CV_TRI_EA6 = 53,
CV_TRI_EA8 = 54,
CV_TRI_EA10 = 55,
CV_TRI_EA12 = 56,
CV_TRI_EA14 = 57,
/* some TriCode registers missing */
/* AM33 (and the likes) CPU */
CV_AM33_NOREG = CV_REG_NONE,
CV_AM33_E0 = 10, /* this includes E1 to E7 */
CV_AM33_A0 = 20, /* this includes A1 to A3 */
CV_AM33_D0 = 30, /* this includes D1 to D3 */
CV_AM33_FS0 = 40, /* this includes FS1 to FS31 */
/* Mitsubishi M32R CPU */
CV_M32R_NOREG = CV_REG_NONE,
CV_M32R_R0 = 10, /* this includes R1 to R11 */
CV_M32R_R12 = 22,
CV_M32R_R13 = 23,
CV_M32R_R14 = 24,
CV_M32R_R15 = 25,
CV_M32R_PSW = 26,
CV_M32R_CBR = 27,
CV_M32R_SPI = 28,
CV_M32R_SPU = 29,
CV_M32R_SPO = 30,
CV_M32R_BPC = 31,
CV_M32R_ACHI = 32,
CV_M32R_ACLO = 33,
CV_M32R_PC = 34,
} CV_HREG_e;
typedef enum
{
THUNK_ORDINAL_NOTYPE,
THUNK_ORDINAL_ADJUSTOR,
THUNK_ORDINAL_VCALL,
THUNK_ORDINAL_PCODE,
THUNK_ORDINAL_LOAD
} THUNK_ORDINAL;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,286 +0,0 @@
/*
* Copyright (C) 2002 Jason Edmeades
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_D3D8CAPS_H
#define __WINE_D3D8CAPS_H
/*
* Definitions
*/
#define D3DCAPS_READ_SCANLINE 0x20000
#define D3DCURSORCAPS_COLOR 1
#define D3DCURSORCAPS_LOWRES 2
#define D3DDEVCAPS_EXECUTESYSTEMMEMORY 0x0000010
#define D3DDEVCAPS_EXECUTEVIDEOMEMORY 0x0000020
#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x0000040
#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x0000080
#define D3DDEVCAPS_TEXTURESYSTEMMEMORY 0x0000100
#define D3DDEVCAPS_TEXTUREVIDEOMEMORY 0x0000200
#define D3DDEVCAPS_DRAWPRIMTLVERTEX 0x0000400
#define D3DDEVCAPS_CANRENDERAFTERFLIP 0x0000800
#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x0001000
#define D3DDEVCAPS_DRAWPRIMITIVES2 0x0002000
#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x0004000
#define D3DDEVCAPS_DRAWPRIMITIVES2EX 0x0008000
#define D3DDEVCAPS_HWTRANSFORMANDLIGHT 0x0010000
#define D3DDEVCAPS_CANBLTSYSTONONLOCAL 0x0020000
#define D3DDEVCAPS_HWRASTERIZATION 0x0080000
#define D3DDEVCAPS_PUREDEVICE 0x0100000
#define D3DDEVCAPS_QUINTICRTPATCHES 0x0200000
#define D3DDEVCAPS_RTPATCHES 0x0400000
#define D3DDEVCAPS_RTPATCHHANDLEZERO 0x0800000
#define D3DDEVCAPS_NPATCHES 0x1000000
#define D3DFVFCAPS_TEXCOORDCOUNTMASK 0x00FFFF
#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x080000
#define D3DFVFCAPS_PSIZE 0x100000
#define D3DLINECAPS_TEXTURE 0x01
#define D3DLINECAPS_ZTEST 0x02
#define D3DLINECAPS_BLEND 0x04
#define D3DLINECAPS_ALPHACMP 0x08
#define D3DLINECAPS_FOG 0x10
#define D3DPBLENDCAPS_ZERO 0x0001
#define D3DPBLENDCAPS_ONE 0x0002
#define D3DPBLENDCAPS_SRCCOLOR 0x0004
#define D3DPBLENDCAPS_INVSRCCOLOR 0x0008
#define D3DPBLENDCAPS_SRCALPHA 0x0010
#define D3DPBLENDCAPS_INVSRCALPHA 0x0020
#define D3DPBLENDCAPS_DESTALPHA 0x0040
#define D3DPBLENDCAPS_INVDESTALPHA 0x0080
#define D3DPBLENDCAPS_DESTCOLOR 0x0100
#define D3DPBLENDCAPS_INVDESTCOLOR 0x0200
#define D3DPBLENDCAPS_SRCALPHASAT 0x0400
#define D3DPBLENDCAPS_BOTHSRCALPHA 0x0800
#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x1000
#define D3DPCMPCAPS_NEVER 0x01
#define D3DPCMPCAPS_LESS 0x02
#define D3DPCMPCAPS_EQUAL 0x04
#define D3DPCMPCAPS_LESSEQUAL 0x08
#define D3DPCMPCAPS_GREATER 0x10
#define D3DPCMPCAPS_NOTEQUAL 0x20
#define D3DPCMPCAPS_GREATEREQUAL 0x40
#define D3DPCMPCAPS_ALWAYS 0x80
#define D3DPMISCCAPS_MASKZ 0x0002
#define D3DPMISCCAPS_LINEPATTERNREP 0x0004
#define D3DPMISCCAPS_CULLNONE 0x0010
#define D3DPMISCCAPS_CULLCW 0x0020
#define D3DPMISCCAPS_CULLCCW 0x0040
#define D3DPMISCCAPS_COLORWRITEENABLE 0x0080
#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS 0x0100
#define D3DPMISCCAPS_CLIPTLVERTS 0x0200
#define D3DPMISCCAPS_TSSARGTEMP 0x0400
#define D3DPMISCCAPS_BLENDOP 0x0800
#define D3DPRASTERCAPS_DITHER 0x00000001
#define D3DPRASTERCAPS_PAT 0x00000008
#define D3DPRASTERCAPS_ZTEST 0x00000010
#define D3DPRASTERCAPS_FOGVERTEX 0x00000080
#define D3DPRASTERCAPS_FOGTABLE 0x00000100
#define D3DPRASTERCAPS_ANTIALIASEDGES 0x00001000
#define D3DPRASTERCAPS_MIPMAPLODBIAS 0x00002000
#define D3DPRASTERCAPS_ZBIAS 0x00004000
#define D3DPRASTERCAPS_ZBUFFERLESSHSR 0x00008000
#define D3DPRASTERCAPS_FOGRANGE 0x00010000
#define D3DPRASTERCAPS_ANISOTROPY 0x00020000
#define D3DPRASTERCAPS_WBUFFER 0x00040000
#define D3DPRASTERCAPS_WFOG 0x00100000
#define D3DPRASTERCAPS_ZFOG 0x00200000
#define D3DPRASTERCAPS_COLORPERSPECTIVE 0x00400000
#define D3DPRASTERCAPS_STRETCHBLTMULTISAMPLE 0x00800000
#define D3DPRESENT_INTERVAL_DEFAULT 0x00000000
#define D3DPRESENT_INTERVAL_ONE 0x00000001
#define D3DPRESENT_INTERVAL_TWO 0x00000002
#define D3DPRESENT_INTERVAL_THREE 0x00000004
#define D3DPRESENT_INTERVAL_FOUR 0x00000008
#define D3DPRESENT_INTERVAL_IMMEDIATE 0x80000000
#define D3DPSHADECAPS_COLORGOURAUDRGB 0x00008
#define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00200
#define D3DPSHADECAPS_ALPHAGOURAUDBLEND 0x04000
#define D3DPSHADECAPS_FOGGOURAUD 0x80000
#define D3DPTADDRESSCAPS_WRAP 0x01
#define D3DPTADDRESSCAPS_MIRROR 0x02
#define D3DPTADDRESSCAPS_CLAMP 0x04
#define D3DPTADDRESSCAPS_BORDER 0x08
#define D3DPTADDRESSCAPS_INDEPENDENTUV 0x10
#define D3DPTADDRESSCAPS_MIRRORONCE 0x20
#define D3DPTEXTURECAPS_PERSPECTIVE 0x00001
#define D3DPTEXTURECAPS_POW2 0x00002
#define D3DPTEXTURECAPS_ALPHA 0x00004
#define D3DPTEXTURECAPS_SQUAREONLY 0x00020
#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00040
#define D3DPTEXTURECAPS_ALPHAPALETTE 0x00080
#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL 0x00100
#define D3DPTEXTURECAPS_PROJECTED 0x00400
#define D3DPTEXTURECAPS_CUBEMAP 0x00800
#define D3DPTEXTURECAPS_VOLUMEMAP 0x02000
#define D3DPTEXTURECAPS_MIPMAP 0x04000
#define D3DPTEXTURECAPS_MIPVOLUMEMAP 0x08000
#define D3DPTEXTURECAPS_MIPCUBEMAP 0x10000
#define D3DPTEXTURECAPS_CUBEMAP_POW2 0x20000
#define D3DPTEXTURECAPS_VOLUMEMAP_POW2 0x40000
#define D3DPTFILTERCAPS_MINFPOINT 0x00000100
#define D3DPTFILTERCAPS_MINFLINEAR 0x00000200
#define D3DPTFILTERCAPS_MINFANISOTROPIC 0x00000400
#define D3DPTFILTERCAPS_MIPFPOINT 0x00010000
#define D3DPTFILTERCAPS_MIPFLINEAR 0x00020000
#define D3DPTFILTERCAPS_MAGFPOINT 0x01000000
#define D3DPTFILTERCAPS_MAGFLINEAR 0x02000000
#define D3DPTFILTERCAPS_MAGFANISOTROPIC 0x04000000
#define D3DPTFILTERCAPS_MAGFAFLATCUBIC 0x08000000
#define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC 0x10000000
#define D3DSTENCILCAPS_KEEP 0x01
#define D3DSTENCILCAPS_ZERO 0x02
#define D3DSTENCILCAPS_REPLACE 0x04
#define D3DSTENCILCAPS_INCRSAT 0x08
#define D3DSTENCILCAPS_DECRSAT 0x10
#define D3DSTENCILCAPS_INVERT 0x20
#define D3DSTENCILCAPS_INCR 0x40
#define D3DSTENCILCAPS_DECR 0x80
#define D3DTEXOPCAPS_DISABLE 0x0000001
#define D3DTEXOPCAPS_SELECTARG1 0x0000002
#define D3DTEXOPCAPS_SELECTARG2 0x0000004
#define D3DTEXOPCAPS_MODULATE 0x0000008
#define D3DTEXOPCAPS_MODULATE2X 0x0000010
#define D3DTEXOPCAPS_MODULATE4X 0x0000020
#define D3DTEXOPCAPS_ADD 0x0000040
#define D3DTEXOPCAPS_ADDSIGNED 0x0000080
#define D3DTEXOPCAPS_ADDSIGNED2X 0x0000100
#define D3DTEXOPCAPS_SUBTRACT 0x0000200
#define D3DTEXOPCAPS_ADDSMOOTH 0x0000400
#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x0000800
#define D3DTEXOPCAPS_BLENDTEXTUREALPHA 0x0001000
#define D3DTEXOPCAPS_BLENDFACTORALPHA 0x0002000
#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x0004000
#define D3DTEXOPCAPS_BLENDCURRENTALPHA 0x0008000
#define D3DTEXOPCAPS_PREMODULATE 0x0010000
#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x0020000
#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x0040000
#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x0080000
#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x0100000
#define D3DTEXOPCAPS_BUMPENVMAP 0x0200000
#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x0400000
#define D3DTEXOPCAPS_DOTPRODUCT3 0x0800000
#define D3DTEXOPCAPS_MULTIPLYADD 0x1000000
#define D3DTEXOPCAPS_LERP 0x2000000
#define D3DVTXPCAPS_TEXGEN 0x01
#define D3DVTXPCAPS_MATERIALSOURCE7 0x02
#define D3DVTXPCAPS_DIRECTIONALLIGHTS 0x08
#define D3DVTXPCAPS_POSITIONALLIGHTS 0x10
#define D3DVTXPCAPS_LOCALVIEWER 0x20
#define D3DVTXPCAPS_TWEENING 0x40
#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD 0x00000020
#define D3DCAPS3_RESERVED 0x8000001f
#define D3DCAPS2_CANCALIBRATEGAMMA 0x0100000
#define D3DCAPS2_CANRENDERWINDOWED 0x0080000
#define D3DCAPS2_CANMANAGERESOURCE 0x10000000
#define D3DCAPS2_DYNAMICTEXTURES 0x20000000
#define D3DCAPS2_FULLSCREENGAMMA 0x0020000
#define D3DCAPS2_NO2DDURING3DSCENE 0x0000002
#define D3DCAPS2_RESERVED 0x2000000
/*
* The d3dcaps8 structure
*/
typedef struct _D3DCAPS8 {
D3DDEVTYPE DeviceType;
UINT AdapterOrdinal;
DWORD Caps;
DWORD Caps2;
DWORD Caps3;
DWORD PresentationIntervals;
DWORD CursorCaps;
DWORD DevCaps;
DWORD PrimitiveMiscCaps;
DWORD RasterCaps;
DWORD ZCmpCaps;
DWORD SrcBlendCaps;
DWORD DestBlendCaps;
DWORD AlphaCmpCaps;
DWORD ShadeCaps;
DWORD TextureCaps;
DWORD TextureFilterCaps;
DWORD CubeTextureFilterCaps;
DWORD VolumeTextureFilterCaps;
DWORD TextureAddressCaps;
DWORD VolumeTextureAddressCaps;
DWORD LineCaps;
DWORD MaxTextureWidth, MaxTextureHeight;
DWORD MaxVolumeExtent;
DWORD MaxTextureRepeat;
DWORD MaxTextureAspectRatio;
DWORD MaxAnisotropy;
float MaxVertexW;
float GuardBandLeft;
float GuardBandTop;
float GuardBandRight;
float GuardBandBottom;
float ExtentsAdjust;
DWORD StencilCaps;
DWORD FVFCaps;
DWORD TextureOpCaps;
DWORD MaxTextureBlendStages;
DWORD MaxSimultaneousTextures;
DWORD VertexProcessingCaps;
DWORD MaxActiveLights;
DWORD MaxUserClipPlanes;
DWORD MaxVertexBlendMatrices;
DWORD MaxVertexBlendMatrixIndex;
float MaxPointSize;
DWORD MaxPrimitiveCount;
DWORD MaxVertexIndex;
DWORD MaxStreams;
DWORD MaxStreamStride;
DWORD VertexShaderVersion;
DWORD MaxVertexShaderConst;
DWORD PixelShaderVersion;
float MaxPixelShaderValue;
} D3DCAPS8;
#endif /* __WINE_D3D8CAPS_H */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,391 +0,0 @@
/*
* Copyright (C) 2002-2003 Jason Edmeades
* Raphael Junqueira
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_D3D9CAPS_H
#define __WINE_D3D9CAPS_H
/*
* Definitions
*/
#define D3DCAPS_READ_SCANLINE 0x20000
#define D3DCURSORCAPS_COLOR 1
#define D3DCURSORCAPS_LOWRES 2
#define D3DDEVCAPS2_STREAMOFFSET 0x00000001L
#define D3DDEVCAPS2_DMAPNPATCH 0x00000002L
#define D3DDEVCAPS2_ADAPTIVETESSRTPATCH 0x00000004L
#define D3DDEVCAPS2_ADAPTIVETESSNPATCH 0x00000008L
#define D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES 0x00000010L
#define D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH 0x00000020L
#define D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET 0x00000040L
#define D3DDEVCAPS_EXECUTESYSTEMMEMORY 0x0000010
#define D3DDEVCAPS_EXECUTEVIDEOMEMORY 0x0000020
#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x0000040
#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x0000080
#define D3DDEVCAPS_TEXTURESYSTEMMEMORY 0x0000100
#define D3DDEVCAPS_TEXTUREVIDEOMEMORY 0x0000200
#define D3DDEVCAPS_DRAWPRIMTLVERTEX 0x0000400
#define D3DDEVCAPS_CANRENDERAFTERFLIP 0x0000800
#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x0001000
#define D3DDEVCAPS_DRAWPRIMITIVES2 0x0002000
#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x0004000
#define D3DDEVCAPS_DRAWPRIMITIVES2EX 0x0008000
#define D3DDEVCAPS_HWTRANSFORMANDLIGHT 0x0010000
#define D3DDEVCAPS_CANBLTSYSTONONLOCAL 0x0020000
#define D3DDEVCAPS_HWRASTERIZATION 0x0080000
#define D3DDEVCAPS_PUREDEVICE 0x0100000
#define D3DDEVCAPS_QUINTICRTPATCHES 0x0200000
#define D3DDEVCAPS_RTPATCHES 0x0400000
#define D3DDEVCAPS_RTPATCHHANDLEZERO 0x0800000
#define D3DDEVCAPS_NPATCHES 0x1000000
#define D3DFVFCAPS_TEXCOORDCOUNTMASK 0x00FFFF
#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x080000
#define D3DFVFCAPS_PSIZE 0x100000
#define D3DLINECAPS_TEXTURE 0x01
#define D3DLINECAPS_ZTEST 0x02
#define D3DLINECAPS_BLEND 0x04
#define D3DLINECAPS_ALPHACMP 0x08
#define D3DLINECAPS_FOG 0x10
#define D3DPBLENDCAPS_ZERO 0x00000001
#define D3DPBLENDCAPS_ONE 0x00000002
#define D3DPBLENDCAPS_SRCCOLOR 0x00000004
#define D3DPBLENDCAPS_INVSRCCOLOR 0x00000008
#define D3DPBLENDCAPS_SRCALPHA 0x00000010
#define D3DPBLENDCAPS_INVSRCALPHA 0x00000020
#define D3DPBLENDCAPS_DESTALPHA 0x00000040
#define D3DPBLENDCAPS_INVDESTALPHA 0x00000080
#define D3DPBLENDCAPS_DESTCOLOR 0x00000100
#define D3DPBLENDCAPS_INVDESTCOLOR 0x00000200
#define D3DPBLENDCAPS_SRCALPHASAT 0x00000400
#define D3DPBLENDCAPS_BOTHSRCALPHA 0x00000800
#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x00001000
#define D3DPBLENDCAPS_BLENDFACTOR 0x00002000
#define D3DPCMPCAPS_NEVER 0x01
#define D3DPCMPCAPS_LESS 0x02
#define D3DPCMPCAPS_EQUAL 0x04
#define D3DPCMPCAPS_LESSEQUAL 0x08
#define D3DPCMPCAPS_GREATER 0x10
#define D3DPCMPCAPS_NOTEQUAL 0x20
#define D3DPCMPCAPS_GREATEREQUAL 0x40
#define D3DPCMPCAPS_ALWAYS 0x80
#define D3DPMISCCAPS_MASKZ 0x00000002L
#define D3DPMISCCAPS_LINEPATTERNREP 0x00000004L
#define D3DPMISCCAPS_CULLNONE 0x00000010L
#define D3DPMISCCAPS_CULLCW 0x00000020L
#define D3DPMISCCAPS_CULLCCW 0x00000040L
#define D3DPMISCCAPS_COLORWRITEENABLE 0x00000080L
#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS 0x00000100L
#define D3DPMISCCAPS_CLIPTLVERTS 0x00000200L
#define D3DPMISCCAPS_TSSARGTEMP 0x00000400L
#define D3DPMISCCAPS_BLENDOP 0x00000800L
#define D3DPMISCCAPS_NULLREFERENCE 0x00001000L
#define D3DPMISCCAPS_INDEPENDENTWRITEMASKS 0x00004000L
#define D3DPMISCCAPS_PERSTAGECONSTANT 0x00008000L
#define D3DPMISCCAPS_FOGANDSPECULARALPHA 0x00010000L
#define D3DPMISCCAPS_SEPARATEALPHABLEND 0x00020000L
#define D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS 0x00040000L
#define D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING 0x00080000L
#define D3DPMISCCAPS_FOGVERTEXCLAMPED 0x00100000L
#define D3DPRASTERCAPS_DITHER 0x00000001L
#define D3DPRASTERCAPS_PAT 0x00000008L
#define D3DPRASTERCAPS_ZTEST 0x00000010L
#define D3DPRASTERCAPS_FOGVERTEX 0x00000080L
#define D3DPRASTERCAPS_FOGTABLE 0x00000100L
#define D3DPRASTERCAPS_ANTIALIASEDGES 0x00001000L
#define D3DPRASTERCAPS_MIPMAPLODBIAS 0x00002000L
#define D3DPRASTERCAPS_ZBIAS 0x00004000L
#define D3DPRASTERCAPS_ZBUFFERLESSHSR 0x00008000L
#define D3DPRASTERCAPS_FOGRANGE 0x00010000L
#define D3DPRASTERCAPS_ANISOTROPY 0x00020000L
#define D3DPRASTERCAPS_WBUFFER 0x00040000L
#define D3DPRASTERCAPS_WFOG 0x00100000L
#define D3DPRASTERCAPS_ZFOG 0x00200000L
#define D3DPRASTERCAPS_COLORPERSPECTIVE 0x00400000L
#define D3DPRASTERCAPS_SCISSORTEST 0x01000000L
#define D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS 0x02000000L
#define D3DPRASTERCAPS_DEPTHBIAS 0x04000000L
#define D3DPRASTERCAPS_MULTISAMPLE_TOGGLE 0x08000000L
#define D3DPRESENT_INTERVAL_DEFAULT 0x00000000
#define D3DPRESENT_INTERVAL_ONE 0x00000001
#define D3DPRESENT_INTERVAL_TWO 0x00000002
#define D3DPRESENT_INTERVAL_THREE 0x00000004
#define D3DPRESENT_INTERVAL_FOUR 0x00000008
#define D3DPRESENT_INTERVAL_IMMEDIATE 0x80000000
#define D3DPSHADECAPS_COLORGOURAUDRGB 0x00008
#define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00200
#define D3DPSHADECAPS_ALPHAGOURAUDBLEND 0x04000
#define D3DPSHADECAPS_FOGGOURAUD 0x80000
#define D3DPTADDRESSCAPS_WRAP 0x01
#define D3DPTADDRESSCAPS_MIRROR 0x02
#define D3DPTADDRESSCAPS_CLAMP 0x04
#define D3DPTADDRESSCAPS_BORDER 0x08
#define D3DPTADDRESSCAPS_INDEPENDENTUV 0x10
#define D3DPTADDRESSCAPS_MIRRORONCE 0x20
#define D3DPTEXTURECAPS_PERSPECTIVE 0x00000001L
#define D3DPTEXTURECAPS_POW2 0x00000002L
#define D3DPTEXTURECAPS_ALPHA 0x00000004L
#define D3DPTEXTURECAPS_SQUAREONLY 0x00000020L
#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040L
#define D3DPTEXTURECAPS_ALPHAPALETTE 0x00000080L
#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL 0x00000100L
#define D3DPTEXTURECAPS_PROJECTED 0x00000400L
#define D3DPTEXTURECAPS_CUBEMAP 0x00000800L
#define D3DPTEXTURECAPS_VOLUMEMAP 0x00002000L
#define D3DPTEXTURECAPS_MIPMAP 0x00004000L
#define D3DPTEXTURECAPS_MIPVOLUMEMAP 0x00008000L
#define D3DPTEXTURECAPS_MIPCUBEMAP 0x00010000L
#define D3DPTEXTURECAPS_CUBEMAP_POW2 0x00020000L
#define D3DPTEXTURECAPS_VOLUMEMAP_POW2 0x00040000L
#define D3DPTEXTURECAPS_NOPROJECTEDBUMPENV 0x00200000L
#define D3DPTFILTERCAPS_MINFPOINT 0x00000100
#define D3DPTFILTERCAPS_MINFLINEAR 0x00000200
#define D3DPTFILTERCAPS_MINFANISOTROPIC 0x00000400
#define D3DPTFILTERCAPS_MIPFPOINT 0x00010000
#define D3DPTFILTERCAPS_MIPFLINEAR 0x00020000
#define D3DPTFILTERCAPS_MAGFPOINT 0x01000000
#define D3DPTFILTERCAPS_MAGFLINEAR 0x02000000
#define D3DPTFILTERCAPS_MAGFANISOTROPIC 0x04000000
#define D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD 0x08000000
#define D3DPTFILTERCAPS_MAGFGAUSSIANQUAD 0x10000000
#define D3DSTENCILCAPS_KEEP 0x01
#define D3DSTENCILCAPS_ZERO 0x02
#define D3DSTENCILCAPS_REPLACE 0x04
#define D3DSTENCILCAPS_INCRSAT 0x08
#define D3DSTENCILCAPS_DECRSAT 0x10
#define D3DSTENCILCAPS_INVERT 0x20
#define D3DSTENCILCAPS_INCR 0x40
#define D3DSTENCILCAPS_DECR 0x80
#define D3DTEXOPCAPS_DISABLE 0x0000001
#define D3DTEXOPCAPS_SELECTARG1 0x0000002
#define D3DTEXOPCAPS_SELECTARG2 0x0000004
#define D3DTEXOPCAPS_MODULATE 0x0000008
#define D3DTEXOPCAPS_MODULATE2X 0x0000010
#define D3DTEXOPCAPS_MODULATE4X 0x0000020
#define D3DTEXOPCAPS_ADD 0x0000040
#define D3DTEXOPCAPS_ADDSIGNED 0x0000080
#define D3DTEXOPCAPS_ADDSIGNED2X 0x0000100
#define D3DTEXOPCAPS_SUBTRACT 0x0000200
#define D3DTEXOPCAPS_ADDSMOOTH 0x0000400
#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x0000800
#define D3DTEXOPCAPS_BLENDTEXTUREALPHA 0x0001000
#define D3DTEXOPCAPS_BLENDFACTORALPHA 0x0002000
#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x0004000
#define D3DTEXOPCAPS_BLENDCURRENTALPHA 0x0008000
#define D3DTEXOPCAPS_PREMODULATE 0x0010000
#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x0020000
#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x0040000
#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x0080000
#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x0100000
#define D3DTEXOPCAPS_BUMPENVMAP 0x0200000
#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x0400000
#define D3DTEXOPCAPS_DOTPRODUCT3 0x0800000
#define D3DTEXOPCAPS_MULTIPLYADD 0x1000000
#define D3DTEXOPCAPS_LERP 0x2000000
#define D3DVTXPCAPS_TEXGEN 0x00000001L
#define D3DVTXPCAPS_MATERIALSOURCE7 0x00000002L
#define D3DVTXPCAPS_DIRECTIONALLIGHTS 0x00000008L
#define D3DVTXPCAPS_POSITIONALLIGHTS 0x00000010L
#define D3DVTXPCAPS_LOCALVIEWER 0x00000020L
#define D3DVTXPCAPS_TWEENING 0x00000040L
#define D3DVTXPCAPS_TEXGEN_SPHEREMAP 0x00000100L
#define D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER 0x00000200L
#define D3DDTCAPS_UBYTE4 0x00000001L
#define D3DDTCAPS_UBYTE4N 0x00000002L
#define D3DDTCAPS_SHORT2N 0x00000004L
#define D3DDTCAPS_SHORT4N 0x00000008L
#define D3DDTCAPS_USHORT2N 0x00000010L
#define D3DDTCAPS_USHORT4N 0x00000020L
#define D3DDTCAPS_UDEC3 0x00000040L
#define D3DDTCAPS_DEC3N 0x00000080L
#define D3DDTCAPS_FLOAT16_2 0x00000100L
#define D3DDTCAPS_FLOAT16_4 0x00000200L
#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD 0x00000020L
#define D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION 0x00000080L
#define D3DCAPS3_COPY_TO_VIDMEM 0x00000100L
#define D3DCAPS3_COPY_TO_SYSTEMMEM 0x00000200L
#define D3DCAPS3_RESERVED 0x8000001FL
#define D3DCAPS2_NO2DDURING3DSCENE 0x00000002L
#define D3DCAPS2_FULLSCREENGAMMA 0x00020000L
#define D3DCAPS2_CANRENDERWINDOWED 0x00080000L
#define D3DCAPS2_CANCALIBRATEGAMMA 0x00100000L
#define D3DCAPS2_RESERVED 0x02000000L
#define D3DCAPS2_CANMANAGERESOURCE 0x10000000L
#define D3DCAPS2_DYNAMICTEXTURES 0x20000000L
#define D3DCAPS2_CANAUTOGENMIPMAP 0x40000000L
#define D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH 24
#define D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH 0
#define D3DVS20_MAX_NUMTEMPS 32
#define D3DVS20_MIN_NUMTEMPS 12
#define D3DVS20_MAX_STATICFLOWCONTROLDEPTH 4
#define D3DVS20_MIN_STATICFLOWCONTROLDEPTH 1
#define D3DVS20CAPS_PREDICATION (1 << 0)
#define D3DPS20CAPS_ARBITRARYSWIZZLE (1 << 0)
#define D3DPS20CAPS_GRADIENTINSTRUCTIONS (1 << 1)
#define D3DPS20CAPS_PREDICATION (1 << 2)
#define D3DPS20CAPS_NODEPENDENTREADLIMIT (1 << 3)
#define D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT (1 << 4)
#define D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH 24
#define D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH 0
#define D3DPS20_MAX_NUMTEMPS 32
#define D3DPS20_MIN_NUMTEMPS 12
#define D3DPS20_MAX_STATICFLOWCONTROLDEPTH 4
#define D3DPS20_MIN_STATICFLOWCONTROLDEPTH 0
#define D3DPS20_MAX_NUMINSTRUCTIONSLOTS 512
#define D3DPS20_MIN_NUMINSTRUCTIONSLOTS 96
#define D3DMIN30SHADERINSTRUCTIONS 512
#define D3DMAX30SHADERINSTRUCTIONS 32768
typedef struct _D3DVSHADERCAPS2_0 {
DWORD Caps;
INT DynamicFlowControlDepth;
INT NumTemps;
INT StaticFlowControlDepth;
} D3DVSHADERCAPS2_0;
typedef struct _D3DPSHADERCAPS2_0 {
DWORD Caps;
INT DynamicFlowControlDepth;
INT NumTemps;
INT StaticFlowControlDepth;
INT NumInstructionSlots;
} D3DPSHADERCAPS2_0;
/*
* The d3dcaps9 structure
*/
typedef struct _D3DCAPS9 {
D3DDEVTYPE DeviceType;
UINT AdapterOrdinal;
DWORD Caps;
DWORD Caps2;
DWORD Caps3;
DWORD PresentationIntervals;
DWORD CursorCaps;
DWORD DevCaps;
DWORD PrimitiveMiscCaps;
DWORD RasterCaps;
DWORD ZCmpCaps;
DWORD SrcBlendCaps;
DWORD DestBlendCaps;
DWORD AlphaCmpCaps;
DWORD ShadeCaps;
DWORD TextureCaps;
DWORD TextureFilterCaps;
DWORD CubeTextureFilterCaps;
DWORD VolumeTextureFilterCaps;
DWORD TextureAddressCaps;
DWORD VolumeTextureAddressCaps;
DWORD LineCaps;
DWORD MaxTextureWidth, MaxTextureHeight;
DWORD MaxVolumeExtent;
DWORD MaxTextureRepeat;
DWORD MaxTextureAspectRatio;
DWORD MaxAnisotropy;
float MaxVertexW;
float GuardBandLeft;
float GuardBandTop;
float GuardBandRight;
float GuardBandBottom;
float ExtentsAdjust;
DWORD StencilCaps;
DWORD FVFCaps;
DWORD TextureOpCaps;
DWORD MaxTextureBlendStages;
DWORD MaxSimultaneousTextures;
DWORD VertexProcessingCaps;
DWORD MaxActiveLights;
DWORD MaxUserClipPlanes;
DWORD MaxVertexBlendMatrices;
DWORD MaxVertexBlendMatrixIndex;
float MaxPointSize;
DWORD MaxPrimitiveCount;
DWORD MaxVertexIndex;
DWORD MaxStreams;
DWORD MaxStreamStride;
DWORD VertexShaderVersion;
DWORD MaxVertexShaderConst;
DWORD PixelShaderVersion;
float MaxPixelShaderValue;
/* DX 9 */
DWORD DevCaps2;
float MaxNpatchTessellationLevel;
DWORD Reserved5;
UINT MasterAdapterOrdinal;
UINT AdapterOrdinalInGroup;
UINT NumberOfAdaptersInGroup;
DWORD DeclTypes;
DWORD NumSimultaneousRTs;
DWORD StretchRectFilterCaps;
D3DVSHADERCAPS2_0 VS20Caps;
D3DPSHADERCAPS2_0 PS20Caps;
DWORD VertexTextureFilterCaps;
DWORD MaxVShaderInstructionsExecuted;
DWORD MaxPShaderInstructionsExecuted;
DWORD MaxVertexShader30InstructionSlots;
DWORD MaxPixelShader30InstructionSlots;
} D3DCAPS9;
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,432 +0,0 @@
/*
* Copyright (C) 2000 Peter Hunnisett
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_D3DCAPS_H
#define __WINE_D3DCAPS_H
#include <ddraw.h>
typedef struct _D3DTRANSFORMCAPS {
DWORD dwSize;
DWORD dwCaps;
} D3DTRANSFORMCAPS, *LPD3DTRANSFORMCAPS;
#define D3DTRANSFORMCAPS_CLIP 0x00000001L
typedef struct _D3DLIGHTINGCAPS {
DWORD dwSize;
DWORD dwCaps;
DWORD dwLightingModel;
DWORD dwNumLights;
} D3DLIGHTINGCAPS, *LPD3DLIGHTINGCAPS;
#define D3DLIGHTINGMODEL_RGB 0x00000001
#define D3DLIGHTINGMODEL_MONO 0x00000002
#define D3DLIGHTCAPS_POINT 0x00000001
#define D3DLIGHTCAPS_SPOT 0x00000002
#define D3DLIGHTCAPS_DIRECTIONAL 0x00000004
#define D3DLIGHTCAPS_PARALLELPOINT 0x00000008
#define D3DLIGHTCAPS_GLSPOT 0x00000010
typedef struct _D3dPrimCaps {
DWORD dwSize;
DWORD dwMiscCaps;
DWORD dwRasterCaps;
DWORD dwZCmpCaps;
DWORD dwSrcBlendCaps;
DWORD dwDestBlendCaps;
DWORD dwAlphaCmpCaps;
DWORD dwShadeCaps;
DWORD dwTextureCaps;
DWORD dwTextureFilterCaps;
DWORD dwTextureBlendCaps;
DWORD dwTextureAddressCaps;
DWORD dwStippleWidth;
DWORD dwStippleHeight;
} D3DPRIMCAPS, *LPD3DPRIMCAPS;
#define D3DPMISCCAPS_MASKPLANES 0x00000001
#define D3DPMISCCAPS_MASKZ 0x00000002
#define D3DPMISCCAPS_LINEPATTERNREP 0x00000004
#define D3DPMISCCAPS_CONFORMANT 0x00000008
#define D3DPMISCCAPS_CULLNONE 0x00000010
#define D3DPMISCCAPS_CULLCW 0x00000020
#define D3DPMISCCAPS_CULLCCW 0x00000040
#define D3DPRASTERCAPS_DITHER 0x00000001
#define D3DPRASTERCAPS_ROP2 0x00000002
#define D3DPRASTERCAPS_XOR 0x00000004
#define D3DPRASTERCAPS_PAT 0x00000008
#define D3DPRASTERCAPS_ZTEST 0x00000010
#define D3DPRASTERCAPS_SUBPIXEL 0x00000020
#define D3DPRASTERCAPS_SUBPIXELX 0x00000040
#define D3DPRASTERCAPS_FOGVERTEX 0x00000080
#define D3DPRASTERCAPS_FOGTABLE 0x00000100
#define D3DPRASTERCAPS_STIPPLE 0x00000200
#define D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT 0x00000400
#define D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT 0x00000800
#define D3DPRASTERCAPS_ANTIALIASEDGES 0x00001000
#define D3DPRASTERCAPS_MIPMAPLODBIAS 0x00002000
#define D3DPRASTERCAPS_ZBIAS 0x00004000
#define D3DPRASTERCAPS_ZBUFFERLESSHSR 0x00008000
#define D3DPRASTERCAPS_FOGRANGE 0x00010000
#define D3DPRASTERCAPS_ANISOTROPY 0x00020000
#define D3DPRASTERCAPS_WBUFFER 0x00040000
#define D3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT 0x00080000
#define D3DPRASTERCAPS_WFOG 0x00100000
#define D3DPRASTERCAPS_ZFOG 0x00200000
#define D3DPCMPCAPS_NEVER 0x00000001
#define D3DPCMPCAPS_LESS 0x00000002
#define D3DPCMPCAPS_EQUAL 0x00000004
#define D3DPCMPCAPS_LESSEQUAL 0x00000008
#define D3DPCMPCAPS_GREATER 0x00000010
#define D3DPCMPCAPS_NOTEQUAL 0x00000020
#define D3DPCMPCAPS_GREATEREQUAL 0x00000040
#define D3DPCMPCAPS_ALWAYS 0x00000080
#define D3DPBLENDCAPS_ZERO 0x00000001
#define D3DPBLENDCAPS_ONE 0x00000002
#define D3DPBLENDCAPS_SRCCOLOR 0x00000004
#define D3DPBLENDCAPS_INVSRCCOLOR 0x00000008
#define D3DPBLENDCAPS_SRCALPHA 0x00000010
#define D3DPBLENDCAPS_INVSRCALPHA 0x00000020
#define D3DPBLENDCAPS_DESTALPHA 0x00000040
#define D3DPBLENDCAPS_INVDESTALPHA 0x00000080
#define D3DPBLENDCAPS_DESTCOLOR 0x00000100
#define D3DPBLENDCAPS_INVDESTCOLOR 0x00000200
#define D3DPBLENDCAPS_SRCALPHASAT 0x00000400
#define D3DPBLENDCAPS_BOTHSRCALPHA 0x00000800
#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x00001000
#define D3DPSHADECAPS_COLORFLATMONO 0x00000001
#define D3DPSHADECAPS_COLORFLATRGB 0x00000002
#define D3DPSHADECAPS_COLORGOURAUDMONO 0x00000004
#define D3DPSHADECAPS_COLORGOURAUDRGB 0x00000008
#define D3DPSHADECAPS_COLORPHONGMONO 0x00000010
#define D3DPSHADECAPS_COLORPHONGRGB 0x00000020
#define D3DPSHADECAPS_SPECULARFLATMONO 0x00000040
#define D3DPSHADECAPS_SPECULARFLATRGB 0x00000080
#define D3DPSHADECAPS_SPECULARGOURAUDMONO 0x00000100
#define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00000200
#define D3DPSHADECAPS_SPECULARPHONGMONO 0x00000400
#define D3DPSHADECAPS_SPECULARPHONGRGB 0x00000800
#define D3DPSHADECAPS_ALPHAFLATBLEND 0x00001000
#define D3DPSHADECAPS_ALPHAFLATSTIPPLED 0x00002000
#define D3DPSHADECAPS_ALPHAGOURAUDBLEND 0x00004000
#define D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED 0x00008000
#define D3DPSHADECAPS_ALPHAPHONGBLEND 0x00010000
#define D3DPSHADECAPS_ALPHAPHONGSTIPPLED 0x00020000
#define D3DPSHADECAPS_FOGFLAT 0x00040000
#define D3DPSHADECAPS_FOGGOURAUD 0x00080000
#define D3DPSHADECAPS_FOGPHONG 0x00100000
#define D3DPTEXTURECAPS_PERSPECTIVE 0x00000001
#define D3DPTEXTURECAPS_POW2 0x00000002
#define D3DPTEXTURECAPS_ALPHA 0x00000004
#define D3DPTEXTURECAPS_TRANSPARENCY 0x00000008
#define D3DPTEXTURECAPS_BORDER 0x00000010
#define D3DPTEXTURECAPS_SQUAREONLY 0x00000020
#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040
#define D3DPTEXTURECAPS_ALPHAPALETTE 0x00000080
#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL 0x00000100L
/* yes actually 0x00000200 is unused - or at least unreleased */
#define D3DPTEXTURECAPS_PROJECTED 0x00000400
#define D3DPTEXTURECAPS_CUBEMAP 0x00000800
#define D3DPTEXTURECAPS_COLORKEYBLEND 0x00001000
#define D3DPTFILTERCAPS_NEAREST 0x00000001
#define D3DPTFILTERCAPS_LINEAR 0x00000002
#define D3DPTFILTERCAPS_MIPNEAREST 0x00000004
#define D3DPTFILTERCAPS_MIPLINEAR 0x00000008
#define D3DPTFILTERCAPS_LINEARMIPNEAREST 0x00000010
#define D3DPTFILTERCAPS_LINEARMIPLINEAR 0x00000020
/* yes - missing numbers */
#define D3DPTFILTERCAPS_MINFPOINT 0x00000100
#define D3DPTFILTERCAPS_MINFLINEAR 0x00000200
#define D3DPTFILTERCAPS_MINFANISOTROPIC 0x00000400
/* yes - missing numbers */
#define D3DPTFILTERCAPS_MIPFPOINT 0x00010000
#define D3DPTFILTERCAPS_MIPFLINEAR 0x00020000
/* yes - missing numbers */
#define D3DPTFILTERCAPS_MAGFPOINT 0x01000000
#define D3DPTFILTERCAPS_MAGFLINEAR 0x02000000
#define D3DPTFILTERCAPS_MAGFANISOTROPIC 0x04000000
#define D3DPTFILTERCAPS_MAGFAFLATCUBIC 0x08000000
#define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC 0x10000000
#define D3DPTBLENDCAPS_DECAL 0x00000001
#define D3DPTBLENDCAPS_MODULATE 0x00000002
#define D3DPTBLENDCAPS_DECALALPHA 0x00000004
#define D3DPTBLENDCAPS_MODULATEALPHA 0x00000008
#define D3DPTBLENDCAPS_DECALMASK 0x00000010
#define D3DPTBLENDCAPS_MODULATEMASK 0x00000020
#define D3DPTBLENDCAPS_COPY 0x00000040
#define D3DPTBLENDCAPS_ADD 0x00000080
#define D3DPTADDRESSCAPS_WRAP 0x00000001
#define D3DPTADDRESSCAPS_MIRROR 0x00000002
#define D3DPTADDRESSCAPS_CLAMP 0x00000004
#define D3DPTADDRESSCAPS_BORDER 0x00000008
#define D3DPTADDRESSCAPS_INDEPENDENTUV 0x00000010
typedef struct _D3DDeviceDesc {
DWORD dwSize;
DWORD dwFlags;
D3DCOLORMODEL dcmColorModel;
DWORD dwDevCaps;
D3DTRANSFORMCAPS dtcTransformCaps;
BOOL bClipping;
D3DLIGHTINGCAPS dlcLightingCaps;
D3DPRIMCAPS dpcLineCaps;
D3DPRIMCAPS dpcTriCaps;
DWORD dwDeviceRenderBitDepth;
DWORD dwDeviceZBufferBitDepth;
DWORD dwMaxBufferSize;
DWORD dwMaxVertexCount;
DWORD dwMinTextureWidth,dwMinTextureHeight;
DWORD dwMaxTextureWidth,dwMaxTextureHeight;
DWORD dwMinStippleWidth,dwMaxStippleWidth;
DWORD dwMinStippleHeight,dwMaxStippleHeight;
DWORD dwMaxTextureRepeat;
DWORD dwMaxTextureAspectRatio;
DWORD dwMaxAnisotropy;
D3DVALUE dvGuardBandLeft;
D3DVALUE dvGuardBandTop;
D3DVALUE dvGuardBandRight;
D3DVALUE dvGuardBandBottom;
D3DVALUE dvExtentsAdjust;
DWORD dwStencilCaps;
DWORD dwFVFCaps;
DWORD dwTextureOpCaps;
WORD wMaxTextureBlendStages;
WORD wMaxSimultaneousTextures;
} D3DDEVICEDESC,*LPD3DDEVICEDESC;
#define D3DDEVICEDESCSIZE (sizeof(D3DDEVICEDESC))
typedef struct _D3DDeviceDesc7 {
DWORD dwDevCaps;
D3DPRIMCAPS dpcLineCaps;
D3DPRIMCAPS dpcTriCaps;
DWORD dwDeviceRenderBitDepth;
DWORD dwDeviceZBufferBitDepth;
DWORD dwMinTextureWidth, dwMinTextureHeight;
DWORD dwMaxTextureWidth, dwMaxTextureHeight;
DWORD dwMaxTextureRepeat;
DWORD dwMaxTextureAspectRatio;
DWORD dwMaxAnisotropy;
D3DVALUE dvGuardBandLeft;
D3DVALUE dvGuardBandTop;
D3DVALUE dvGuardBandRight;
D3DVALUE dvGuardBandBottom;
D3DVALUE dvExtentsAdjust;
DWORD dwStencilCaps;
DWORD dwFVFCaps;
DWORD dwTextureOpCaps;
WORD wMaxTextureBlendStages;
WORD wMaxSimultaneousTextures;
DWORD dwMaxActiveLights;
D3DVALUE dvMaxVertexW;
GUID deviceGUID;
WORD wMaxUserClipPlanes;
WORD wMaxVertexBlendMatrices;
DWORD dwVertexProcessingCaps;
DWORD dwReserved1;
DWORD dwReserved2;
DWORD dwReserved3;
DWORD dwReserved4;
} D3DDEVICEDESC7, *LPD3DDEVICEDESC7;
#define D3DDEVICEDESC7SIZE (sizeof(D3DDEVICEDESC7))
#define D3DDD_COLORMODEL 0x00000001
#define D3DDD_DEVCAPS 0x00000002
#define D3DDD_TRANSFORMCAPS 0x00000004
#define D3DDD_LIGHTINGCAPS 0x00000008
#define D3DDD_BCLIPPING 0x00000010
#define D3DDD_LINECAPS 0x00000020
#define D3DDD_TRICAPS 0x00000040
#define D3DDD_DEVICERENDERBITDEPTH 0x00000080
#define D3DDD_DEVICEZBUFFERBITDEPTH 0x00000100
#define D3DDD_MAXBUFFERSIZE 0x00000200
#define D3DDD_MAXVERTEXCOUNT 0x00000400
#define D3DDEVCAPS_FLOATTLVERTEX 0x00000001
#define D3DDEVCAPS_SORTINCREASINGZ 0x00000002
#define D3DDEVCAPS_SORTDECREASINGZ 0X00000004
#define D3DDEVCAPS_SORTEXACT 0x00000008
#define D3DDEVCAPS_EXECUTESYSTEMMEMORY 0x00000010
#define D3DDEVCAPS_EXECUTEVIDEOMEMORY 0x00000020
#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x00000040
#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x00000080
#define D3DDEVCAPS_TEXTURESYSTEMMEMORY 0x00000100
#define D3DDEVCAPS_TEXTUREVIDEOMEMORY 0x00000200
#define D3DDEVCAPS_DRAWPRIMTLVERTEX 0x00000400
#define D3DDEVCAPS_CANRENDERAFTERFLIP 0x00000800
#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x00001000
#define D3DDEVCAPS_DRAWPRIMITIVES2 0x00002000
#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x00004000
#define D3DDEVCAPS_DRAWPRIMITIVES2EX 0x00008000
#define D3DDEVCAPS_HWTRANSFORMANDLIGHT 0x00010000
#define D3DDEVCAPS_CANBLTSYSTONONLOCAL 0x00020000
#define D3DDEVCAPS_HWRASTERIZATION 0x00080000
#define D3DSTENCILCAPS_KEEP 0x00000001
#define D3DSTENCILCAPS_ZERO 0x00000002
#define D3DSTENCILCAPS_REPLACE 0x00000004
#define D3DSTENCILCAPS_INCRSAT 0x00000008
#define D3DSTENCILCAPS_DECRSAT 0x00000010
#define D3DSTENCILCAPS_INVERT 0x00000020
#define D3DSTENCILCAPS_INCR 0x00000040
#define D3DSTENCILCAPS_DECR 0x00000080
#define D3DTEXOPCAPS_DISABLE 0x00000001
#define D3DTEXOPCAPS_SELECTARG1 0x00000002
#define D3DTEXOPCAPS_SELECTARG2 0x00000004
#define D3DTEXOPCAPS_MODULATE 0x00000008
#define D3DTEXOPCAPS_MODULATE2X 0x00000010
#define D3DTEXOPCAPS_MODULATE4X 0x00000020
#define D3DTEXOPCAPS_ADD 0x00000040
#define D3DTEXOPCAPS_ADDSIGNED 0x00000080
#define D3DTEXOPCAPS_ADDSIGNED2X 0x00000100
#define D3DTEXOPCAPS_SUBTRACT 0x00000200
#define D3DTEXOPCAPS_ADDSMOOTH 0x00000400
#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x00000800
#define D3DTEXOPCAPS_BLENDTEXTUREALPHA 0x00001000
#define D3DTEXOPCAPS_BLENDFACTORALPHA 0x00002000
#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x00004000
#define D3DTEXOPCAPS_BLENDCURRENTALPHA 0x00008000
#define D3DTEXOPCAPS_PREMODULATE 0x00010000
#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x00020000
#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x00040000
#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x00080000
#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x00100000
#define D3DTEXOPCAPS_BUMPENVMAP 0x00200000
#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x00400000
#define D3DTEXOPCAPS_DOTPRODUCT3 0x00800000
#define D3DFVFCAPS_TEXCOORDCOUNTMASK 0x0000FFFF
#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x00080000
#define D3DVTXPCAPS_TEXGEN 0x00000001
#define D3DVTXPCAPS_MATERIALSOURCE7 0x00000002
#define D3DVTXPCAPS_VERTEXFOG 0x00000004
#define D3DVTXPCAPS_DIRECTIONALLIGHTS 0x00000008
#define D3DVTXPCAPS_POSITIONALLIGHTS 0x00000010
#define D3DVTXPCAPS_LOCALVIEWER 0x00000020
typedef HRESULT (CALLBACK *LPD3DENUMDEVICESCALLBACK)(LPGUID lpGuid,LPSTR lpDeviceDescription,LPSTR lpDeviceName,LPD3DDEVICEDESC,LPD3DDEVICEDESC,LPVOID);
typedef HRESULT (CALLBACK *LPD3DENUMDEVICESCALLBACK7)(LPSTR lpDeviceDescription, LPSTR lpDeviceName, LPD3DDEVICEDESC7, LPVOID);
#define D3DFDS_COLORMODEL 0x00000001
#define D3DFDS_GUID 0x00000002
#define D3DFDS_HARDWARE 0x00000004
#define D3DFDS_TRIANGLES 0x00000008
#define D3DFDS_LINES 0x00000010
#define D3DFDS_MISCCAPS 0x00000020
#define D3DFDS_RASTERCAPS 0x00000040
#define D3DFDS_ZCMPCAPS 0x00000080
#define D3DFDS_ALPHACMPCAPS 0x00000100
#define D3DFDS_SRCBLENDCAPS 0x00000200
#define D3DFDS_DSTBLENDCAPS 0x00000400
#define D3DFDS_SHADECAPS 0x00000800
#define D3DFDS_TEXTURECAPS 0x00001000
#define D3DFDS_TEXTUREFILTERCAPS 0x00002000
#define D3DFDS_TEXTUREBLENDCAPS 0x00004000
#define D3DFDS_TEXTUREADDRESSCAPS 0x00008000
typedef struct _D3DFINDDEVICESEARCH {
DWORD dwSize;
DWORD dwFlags;
BOOL bHardware;
D3DCOLORMODEL dcmColorModel;
GUID guid;
DWORD dwCaps;
D3DPRIMCAPS dpcPrimCaps;
} D3DFINDDEVICESEARCH,*LPD3DFINDDEVICESEARCH;
typedef struct _D3DFINDDEVICERESULT {
DWORD dwSize;
GUID guid;
D3DDEVICEDESC ddHwDesc;
D3DDEVICEDESC ddSwDesc;
} D3DFINDDEVICERESULT,*LPD3DFINDDEVICERESULT;
typedef struct _D3DExecuteBufferDesc {
DWORD dwSize;
DWORD dwFlags;
DWORD dwCaps;
DWORD dwBufferSize;
LPVOID lpData;
} D3DEXECUTEBUFFERDESC, *LPD3DEXECUTEBUFFERDESC;
#define D3DDEB_BUFSIZE 0x00000001
#define D3DDEB_CAPS 0x00000002
#define D3DDEB_LPDATA 0x00000004
#define D3DDEBCAPS_SYSTEMMEMORY 0x00000001
#define D3DDEBCAPS_VIDEOMEMORY 0x00000002
#define D3DDEBCAPS_MEM (D3DDEBCAPS_SYSTEMMEMORY|D3DDEBCAPS_VIDEOMEMORY) /* = 0x3 */
typedef struct _D3DDEVINFO_TEXTUREMANAGER {
BOOL bThrashing;
DWORD dwApproxBytesDownloaded;
DWORD dwNumEvicts;
DWORD dwNumVidCreates;
DWORD dwNumTexturesUsed;
DWORD dwNumUsedTexInVid;
DWORD dwWorkingSet;
DWORD dwWorkingSetBytes;
DWORD dwTotalManaged;
DWORD dwTotalBytes;
DWORD dwLastPri;
} D3DDEVINFO_TEXTUREMANAGER, *LPD3DDEVINFO_TEXTUREMANAGER;
typedef struct _D3DDEVINFO_TEXTURING {
DWORD dwNumLoads;
DWORD dwApproxBytesLoaded;
DWORD dwNumPreLoads;
DWORD dwNumSet;
DWORD dwNumCreates;
DWORD dwNumDestroys;
DWORD dwNumSetPriorities;
DWORD dwNumSetLODs;
DWORD dwNumLocks;
DWORD dwNumGetDCs;
} D3DDEVINFO_TEXTURING, *LPD3DDEVINFO_TEXTURING;
#endif

View File

@@ -1,525 +0,0 @@
/*
* Direct3D driver interface
* (DirectX 7 version)
*
* Copyright (C) 2001 Ove Kaaven
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_D3DHAL_H
#define __WINE_D3DHAL_H
#ifdef __cplusplus
extern "C" {
#endif
#include <d3d.h>
/*****************************************************************************
* device info structures
*/
typedef struct _D3DDeviceDesc_V1 {
DWORD dwSize;
DWORD dwFlags;
D3DCOLORMODEL dcmColorModel;
DWORD dwDevCaps;
D3DTRANSFORMCAPS dtcTransformCaps;
BOOL bClipping;
D3DLIGHTINGCAPS dlcLightingCaps;
D3DPRIMCAPS dpcLineCaps;
D3DPRIMCAPS dpcTriCaps;
DWORD dwDeviceRenderBitDepth;
DWORD dwDeviceZBufferBitDepth;
DWORD dwMaxBufferSize;
DWORD dwMaxVertexCount;
} D3DDEVICEDESC_V1,*LPD3DDEVICEDESC_V1;
/* this is to allow keeping the bulk of our OpenGL code out of x11drv */
#define D3DDD_WINE_OPENGL_DEVICE 0x00008000
typedef struct _D3DHAL_GLOBALDRIVERDATA {
DWORD dwSize;
D3DDEVICEDESC_V1 hwCaps;
DWORD dwNumVertices;
DWORD dwNumClipVertices;
DWORD dwNumTextureFormats;
LPDDSURFACEDESC lpTextureFormats;
} D3DHAL_GLOBALDRIVERDATA,*LPD3DHAL_GLOBALDRIVERDATA;
typedef struct _D3DHAL_D3DEXTENDEDCAPS {
DWORD dwSize;
/* DirectX 5 */
DWORD dwMinTextureWidth, dwMaxTextureWidth;
DWORD dwMinTextureHeight, dwMaxTextureHeight;
DWORD dwMinStippleWidth, dwMaxStippleWidth;
DWORD dwMinStippleHeight, dwMaxStippleHeight;
/* DirectX 6 */
DWORD dwMaxTextureRepeat;
DWORD dwMaxTextureAspectRatio;
DWORD dwMaxAnisotropy;
D3DVALUE dvGuardBandLeft;
D3DVALUE dvGuardBandTop;
D3DVALUE dvGuardBandRight;
D3DVALUE dvGuardBandBottom;
D3DVALUE dvExtentsAdjust;
DWORD dwStencilCaps;
DWORD dwFVFCaps;
DWORD dwTextureOpCaps;
WORD wMaxTextureBlendStages;
WORD wMaxSimultaneousTextures;
/* DirectX 7 */
DWORD dwMaxActiveLights;
D3DVALUE dvMaxVertexW;
WORD wMaxUserClipPlanes;
WORD wMaxVertexBlendMatrices;
DWORD dwVertexProcessingCaps;
DWORD dwReserved1;
DWORD dwReserved2;
DWORD dwReserved3;
DWORD dwReserved4;
} D3DHAL_D3DEXTENDEDCAPS,*LPD3DHAL_D3DEXTENDEDCAPS;
/*****************************************************************************
* d3d->driver callbacks
*/
typedef struct _D3DHAL_CONTEXTCREATEDATA *LPD3DHAL_CONTEXTCREATEDATA;
typedef struct _D3DHAL_CONTEXTDESTROYDATA *LPD3DHAL_CONTEXTDESTROYDATA;
typedef struct _D3DHAL_CONTEXTDESTROYALLDATA *LPD3DHAL_CONTEXTDESTROYALLDATA;
typedef struct _D3DHAL_SCENECAPTUREDATA *LPD3DHAL_SCENECAPTUREDATA;
typedef struct _D3DHAL_RENDERSTATEDATA *LPD3DHAL_RENDERSTATEDATA;
typedef struct _D3DHAL_RENDERPRIMITIVEDATA *LPD3DHAL_RENDERPRIMITIVEDATA;
typedef struct _D3DHAL_TEXTURECREATEDATA *LPD3DHAL_TEXTURECREATEDATA;
typedef struct _D3DHAL_TEXTUREDESTROYDATA *LPD3DHAL_TEXTUREDESTROYDATA;
typedef struct _D3DHAL_TEXTURESWAPDATA *LPD3DHAL_TEXTURESWAPDATA;
typedef struct _D3DHAL_TEXTUREGETSURFDATA *LPD3DHAL_TEXTUREGETSURFDATA;
typedef struct _D3DHAL_GETSTATEDATA *LPD3DHAL_GETSTATEDATA;
typedef DWORD (PASCAL *LPD3DHAL_CONTEXTCREATECB) (LPD3DHAL_CONTEXTCREATEDATA);
typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYCB) (LPD3DHAL_CONTEXTDESTROYDATA);
typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYALLCB)(LPD3DHAL_CONTEXTDESTROYALLDATA);
typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB) (LPD3DHAL_SCENECAPTUREDATA);
typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB) (LPD3DHAL_RENDERSTATEDATA);
typedef DWORD (PASCAL *LPD3DHAL_RENDERPRIMITIVECB) (LPD3DHAL_RENDERPRIMITIVEDATA);
typedef DWORD (PASCAL *LPD3DHAL_TEXTURECREATECB) (LPD3DHAL_TEXTURECREATEDATA);
typedef DWORD (PASCAL *LPD3DHAL_TEXTUREDESTROYCB) (LPD3DHAL_TEXTUREDESTROYDATA);
typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB) (LPD3DHAL_TEXTURESWAPDATA);
typedef DWORD (PASCAL *LPD3DHAL_TEXTUREGETSURFCB) (LPD3DHAL_TEXTUREGETSURFDATA);
typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB) (LPD3DHAL_GETSTATEDATA);
typedef struct _D3DHAL_CALLBACKS {
DWORD dwSize;
LPD3DHAL_CONTEXTCREATECB ContextCreate;
LPD3DHAL_CONTEXTDESTROYCB ContextDestroy;
LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
LPD3DHAL_SCENECAPTURECB SceneCapture;
LPVOID lpReserved10;
LPVOID lpReserved11;
LPD3DHAL_RENDERSTATECB RenderState;
LPD3DHAL_RENDERPRIMITIVECB RenderPrimitive;
DWORD dwReserved;
LPD3DHAL_TEXTURECREATECB TextureCreate;
LPD3DHAL_TEXTUREDESTROYCB TextureDestroy;
LPD3DHAL_TEXTURESWAPCB TextureSwap;
LPD3DHAL_TEXTUREGETSURFCB TextureGetSurf;
/* now why did MS create CALLBACKS2 and CALLBACKS3 structures if
* all these reserved fields were available? we may never know */
LPVOID lpReserved12;
LPVOID lpReserved13;
LPVOID lpReserved14;
LPVOID lpReserved15;
LPVOID lpReserved16;
LPVOID lpReserved17;
LPVOID lpReserved18;
LPVOID lpReserved19;
LPVOID lpReserved20;
LPVOID lpReserved21;
LPD3DHAL_GETSTATECB GetState;
DWORD dwReserved0;
DWORD dwReserved1;
DWORD dwReserved2;
DWORD dwReserved3;
DWORD dwReserved4;
DWORD dwReserved5;
DWORD dwReserved6;
DWORD dwReserved7;
DWORD dwReserved8;
DWORD dwReserved9;
} D3DHAL_CALLBACKS,*LPD3DHAL_CALLBACKS;
typedef struct _D3DHAL_SETRENDERTARGETDATA *LPD3DHAL_SETRENDERTARGETDATA;
typedef struct _D3DHAL_CLEARDATA *LPD3DHAL_CLEARDATA;
typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA *LPD3DHAL_DRAWONEPRIMITIVEDATA;
typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA;
typedef struct _D3DHAL_DRAWPRIMITIVESDATA *LPD3DHAL_DRAWPRIMITIVESDATA;
typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB) (LPD3DHAL_SETRENDERTARGETDATA);
typedef DWORD (PASCAL *LPD3DHAL_CLEARCB) (LPD3DHAL_CLEARDATA);
typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB) (LPD3DHAL_DRAWONEPRIMITIVEDATA);
typedef DWORD (PASCAL *LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB)(LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA);
typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB) (LPD3DHAL_DRAWPRIMITIVESDATA);
typedef struct _D3DHAL_CALLBACKS2 {
DWORD dwSize;
DWORD dwFlags;
LPD3DHAL_SETRENDERTARGETCB SetRenderTarget;
LPD3DHAL_CLEARCB Clear;
LPD3DHAL_DRAWONEPRIMITIVECB DrawOnePrimitive;
LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB DrawOneIndexedPrimitive;
LPD3DHAL_DRAWPRIMITIVESCB DrawPrimitives;
} D3DHAL_CALLBACKS2,*LPD3DHAL_CALLBACKS2;
typedef struct _D3DHAL_CLEAR2DATA *LPD3DHAL_CLEAR2DATA;
typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA;
typedef struct _D3DHAL_DRAWPRIMITIVES2DATA *LPD3DHAL_DRAWPRIMITIVES2DATA;
typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB) (LPD3DHAL_CLEAR2DATA);
typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA);
typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB) (LPD3DHAL_DRAWPRIMITIVES2DATA);
typedef struct _D3DHAL_CALLBACKS3 {
DWORD dwSize;
DWORD dwFlags;
LPD3DHAL_CLEAR2CB Clear2;
LPVOID lpvReserved;
LPD3DHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
LPD3DHAL_DRAWPRIMITIVES2CB DrawPrimitives2;
} D3DHAL_CALLBACKS3,*LPD3DHAL_CALLBACKS3;
/*****************************************************************************
* parameter structures
*/
typedef struct _D3DHAL_CONTEXTCREATEDATA {
union {
LPDDRAWI_DIRECTDRAW_GBL lpDDGbl; /* pre-DirectX 7 */
LPDDRAWI_DIRECTDRAW_LCL lpDDLcl; /* DirectX 7 */
} DUMMYUNIONNAME1;
union {
LPDIRECTDRAWSURFACE lpDDS;
LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; /* DirectX 7 */
} DUMMYUNIONNAME2;
union {
LPDIRECTDRAWSURFACE lpDDSZ;
LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl; /* DirectX 7 */
} DUMMYUNIONNAME3;
union {
DWORD dwPID;
ULONG_PTR dwrstates;
} DUMMYUNIONNAME4;
ULONG_PTR dwhContext;
HRESULT ddrval;
} D3DHAL_CONTEXTCREATEDATA;
typedef struct _D3DHAL_CONTEXTDESTROYDATA {
ULONG_PTR dwhContext;
HRESULT ddrval;
} D3DHAL_CONTEXTDESTROYDATA;
typedef struct _D3DHAL_CONTEXTDESTROYALLDATA {
DWORD dwPID;
HRESULT ddrval;
} D3DHAL_CONTEXTDESTROYALLDATA;
typedef struct _D3DHAL_SCENECAPTUREDATA {
ULONG_PTR dwhContext;
DWORD dwFlag;
HRESULT ddrval;
} D3DHAL_SCENECAPTUREDATA;
#define D3DHAL_SCENE_CAPTURE_START 0x00000000
#define D3DHAL_SCENE_CAPTURE_END 0x00000001
typedef struct _D3DHAL_SETRENDERTARGETDATA {
ULONG_PTR dwhContext;
union {
LPDIRECTDRAWSURFACE lpDDS;
LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl;
} DUMMYUNIONNAME1;
union {
LPDIRECTDRAWSURFACE lpDDSZ;
LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl;
} DUMMYUNIONNAME2;
HRESULT ddrval;
} D3DHAL_SETRENDERTARGETDATA;
typedef struct _D3DHAL_DRAWPRIMITIVES2DATA {
ULONG_PTR dwhContext;
DWORD dwFlags;
DWORD dwVertexType;
LPDDRAWI_DDRAWSURFACE_LCL lpDDCommands;
DWORD dwCommandOffset;
DWORD dwCommandLength;
union {
LPDDRAWI_DDRAWSURFACE_LCL lpDDVertex;
LPVOID lpVertices;
} DUMMYUNIONNAME1;
DWORD dwVertexOffset;
DWORD dwVertexLength;
DWORD dwReqVertexBufSize;
DWORD dwReqCommandBufSize;
LPDWORD lpdwRStates;
union {
DWORD dwVertexSize;
HRESULT ddrval;
} DUMMYUNIONNAME2;
DWORD dwErrorOffset;
} D3DHAL_DRAWPRIMITIVES2DATA;
#define D3DHALDP2_USERMEMVERTICES 0x00000001
#define D3DHALDP2_EXECUTEBUFFER 0x00000002
#define D3DHALDP2_SWAPVERTEXBUFFER 0x00000004
#define D3DHALDP2_SWAPCOMMANDBUFFER 0x00000008
#define D3DHALDP2_REQVERTEXBUFSIZE 0x00000010
#define D3DHALDP2_REQCOMMANDBUFSIZE 0x00000020
#define D3DHALDP2_VIDMEMVERTEXBUF 0x00000040
#define D3DHALDP2_VIDMEMCOMMANDBUF 0x00000080
/*****************************************************************************
* DrawPrimitives2 command structures
*/
typedef struct _D3DHAL_DP2COMMAND {
BYTE bCommand;
BYTE bReserved;
union {
WORD wPrimitiveCount;
WORD wStateCount;
} DUMMYUNIONNAME;
} D3DHAL_DP2COMMAND,*LPD3DHAL_DP2COMMAND;
typedef enum _D3DHAL_DP2OPERATION {
D3DDP2OP_POINTS = 1,
D3DDP2OP_INDEXEDLINELIST = 2,
D3DDP2OP_INDEXEDTRIANGLELIST = 3,
D3DDP2OP_RESERVED0 = 4,
D3DDP2OP_RENDERSTATE = 8,
D3DDP2OP_LINELIST = 15,
D3DDP2OP_LINESTRIP = 16,
D3DDP2OP_INDEXEDLINESTRIP = 17,
D3DDP2OP_TRIANGLELIST = 18,
D3DDP2OP_TRIANGLESTRIP = 19,
D3DDP2OP_INDEXEDTRIANGLESTRIP = 20,
D3DDP2OP_TRIANGLEFAN = 21,
D3DDP2OP_INDEXEDTRIANGLEFAN = 22,
D3DDP2OP_TRIANGLEFAN_IMM = 23,
D3DDP2OP_LINELIST_IMM = 24,
D3DDP2OP_TEXTURESTAGESTATE = 25,
D3DDP2OP_INDEXEDTRIANGLELIST2 = 26,
D3DDP2OP_INDEXEDLINELIST2 = 27,
D3DDP2OP_VIEWPORTINFO = 28,
D3DDP2OP_WINFO = 29,
/* pre-DirectX 7 interfaces */
D3DDP2OP_SETPALETTE = 30,
D3DDP2OP_UPDATEPALETTE = 31,
/* DirectX 7 interfaces */
D3DDP2OP_ZRANGE = 32,
D3DDP2OP_SETMATERIAL = 33,
D3DDP2OP_SETLIGHT = 34,
D3DDP2OP_CREATELIGHT = 35,
D3DDP2OP_SETTRANSFORM = 36,
D3DDP2OP_EXT = 37,
D3DDP2OP_TEXBLT = 38,
D3DDP2OP_STATESET = 39,
D3DDP2OP_SETPRIORITY = 40,
/* all interfaces */
D3DDP2OP_SETRENDERTARGET = 41,
D3DDP2OP_CLEAR = 42,
/* DirectX 7 interfaces */
D3DDP2OP_SETTEXLOD = 43,
D3DPP2OP_SETCLIPPLANE = 44
} D3DHAL_DP2OPERATION;
/* point primitives */
typedef struct _D3DHAL_POINTS {
WORD wCount;
WORD wVStart;
} D3DHAL_DP2POINTS,*LPD3DHAL_DP2POINTS;
/* line primitives */
typedef struct _D3DHAL_DP2STARTVERTEX {
WORD wVStart;
} D3DHAL_DP2STARTVERTEX,*LPD3DHAL_DP2STARTVERTEX;
typedef struct _D3DHAL_DP2LINELIST {
WORD wVStart;
} D3DHAL_DP2LINELIST,*LPD3DHAL_DP2LINELIST;
typedef struct _D3DHAL_DP2INDEXEDLINELIST {
WORD wV1;
WORD wV2;
} D3DHAL_DP2INDEXEDLINELIST,*LPD3DHAL_DP2INDEXEDLINELIST;
typedef struct _D3DHAL_DP2LINESTRIP {
WORD wVStart;
} D3DHAL_DP2LINESTRIP,*LPD3DHAL_DP2LINESTRIP;
typedef struct _D3DHAL_DP2INDEXEDLINESTRIP {
WORD wV[2];
} D3DHAL_DP2INDEXEDLINESTRIP,*LPD3DHAL_DP2INDEXEDLINESTRIP;
/* triangle primitives */
typedef struct _D3DHAL_DP2TRIANGLELIST {
WORD wVStart;
} D3DHAL_DP2TRIANGLELIST,*LPD3DHAL_DP2TRIANGLELIST;
typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
WORD wV1;
WORD wV2;
WORD wV3;
WORD wFlags;
} D3DHAL_DP2INDEXEDTRIANGLELIST,*LPD3DHAL_DP2INDEXEDTRIANGLELIST;
typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST2 {
WORD wV1;
WORD wV2;
WORD wV3;
} D3DHAL_DP2INDEXEDTRIANGLELIST2,*LPD3DHAL_DP2INDEXEDTRIANGLELIST2;
typedef struct _D3DHAL_DP2TRIANGLESTRIP {
WORD wVStart;
} D3DHAL_DP2TRIANGLESTRIP,*LPD3DHAL_DP2TRIANGLESTRIP;
typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
WORD wV[3];
} D3DHAL_DP2INDEXEDTRIANGLESTRIP,*LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;
typedef struct _D3DHAL_DP2TRIANGLEFAN {
WORD wVStart;
} D3DHAL_DP2TRIANGLEFAN,*LPD3DHAL_DP2TRIANGLEFAN;
typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN {
WORD wV[3];
} D3DHAL_DP2INDEXEDTRIANGLEFAN,*LPD3DHAL_DP2INDEXEDTRIANGLEFAN;
typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM {
DWORD dwEdgeFlags;
} D3DHAL_DP2TRIANGLEFAN_IMM,*LPD3DHAL_DP2TRIANGLEFAN_IMM;
/* render states */
typedef struct _D3DHAL_DP2RENDERSTATE {
D3DRENDERSTATETYPE RenderState;
union {
D3DVALUE dvState;
DWORD dwState;
} DUMMYUNIONNAME;
} D3DHAL_DP2RENDERSTATE,*LPD3DHAL_DP2RENDERSTATE;
typedef struct _D3DHAL_DP2TEXTURESTAGESTATE {
WORD wStage;
WORD TSState;
DWORD dwValue;
} D3DHAL_DP2TEXTURESTAGESTATE,*LPD3DHAL_DP2TEXTURESTAGESTATE;
#define D3DTSS_TEXTUREMAP 0
typedef struct _D3DHAL_DP2VIEWPORTINFO {
DWORD dwX;
DWORD dwY;
DWORD dwWidth;
DWORD dwHeight;
} D3DHAL_DP2VIEWPORTINFO,*LPD3DHAL_DP2VIEWPORTINFO;
typedef struct _D3DHAL_DP2WINFO {
D3DVALUE dwWNear;
D3DVALUE dwWFar;
} D3DHAL_DP2WINFO,*LPD3DHAL_DP2WINFO;
typedef struct _D3DHAL_DP2SETPALETTE {
DWORD dwPaletteHandle;
DWORD dwPaletteFlags;
DWORD dwSurfaceHandle;
} D3DHAL_DP2SETPALETTE,*LPD3DHAL_DP2SETPALETTE;
typedef struct _D3DHAL_DP2UPDATEPALETTE {
DWORD dwPaletteHandle;
WORD wStartIndex;
WORD wNumEntries;
} D3DHAL_DP2UPDATEPALETTE,*LPD3DHAL_DP2UPDATEPALETTE;
typedef struct _D3DHAL_DP2ZRANGE {
D3DVALUE dvMinZ;
D3DVALUE dvMaxZ;
} D3DHAL_DP2ZRANGE,*LPD3DHAL_DP2ZRANGE;
typedef D3DMATERIAL7 D3DHAL_DP2SETMATERIAL,*LPD3DHAL_DP2SETMATERIAL;
typedef struct _D3DHAL_DP2SETLIGHT {
DWORD dwIndex;
DWORD dwDataType;
} D3DHAL_DP2SETLIGHT,*LPD3DHAL_DP2SETLIGHT;
#define D3DHAL_SETLIGHT_ENABLE 0
#define D3DHAL_SETLIGHT_DISABLE 1
#define D3DHAL_SETLIGHT_DATA 2
typedef struct _D3DHAL_DP2CREATELIGHT {
DWORD dwIndex;
} D3DHAL_DP2CREATELIGHT,*LPD3DHAL_DP2CREATELIGHT;
typedef struct _D3DHAL_DP2SETTRANSFORM {
D3DTRANSFORMSTATETYPE xfrmType;
D3DMATRIX matrix;
} D3DHAL_DP2SETTRANSFORM,*LPD3DHAL_DP2SETTRANSFORM;
typedef struct _D3DHAL_DP2TEXBLT {
DWORD dwDDDestSurface;
DWORD dwDDSrcSurface;
POINT pDest;
RECTL rSrc;
DWORD dwFlags;
} D3DHAL_DP2TEXBLT,*LPD3DHAL_DP2TEXBLT;
typedef struct _D3DHAL_DP2STATESET {
DWORD dwOperation;
DWORD dwParam;
D3DSTATEBLOCKTYPE sbType;
} D3DHAL_DP2STATESET,*LPD3DHAL_DP2STATESET;
#define D3DHAL_STATESETBEGIN 0
#define D3DHAL_STATESETEND 1
#define D3DHAL_STATESETDELETE 2
#define D3DHAL_STATESETEXECUTE 3
#define D3DHAL_STATESETCAPTURE 4
typedef struct _D3DHAL_DP2SETPRIORITY {
DWORD dwDDSurface;
DWORD dwPriority;
} D3DHAL_DP2SETPRIORITY,*LPD3DHAL_DP2SETPRIORITY;
typedef struct _D3DHAL_DP2SETRENDERTARGET {
DWORD hRenderTarget;
DWORD hZBuffer;
} D3DHAL_DP2SETRENDERTARGET,*LPD3DHAL_DP2SETRENDERTARGET;
typedef struct _D3DHAL_DP2CLEAR {
DWORD dwFlags;
DWORD dwFillColor;
D3DVALUE dvFillDepth;
DWORD dwFillStencil;
RECT Rects[1];
} D3DHAL_DP2CLEAR,*LPD3DHAL_DP2CLEAR;
typedef struct _D3DHAL_DP2SETTEXLOD {
DWORD dwDDSurface;
DWORD dwLOD;
} D3DHAL_DP2SETTEXLOD,*LPD3DHAL_DP2SETTEXLOD;
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* __WINE_DDRAWI_H */

File diff suppressed because it is too large Load Diff

View File

@@ -1,141 +0,0 @@
/*
* Copyright (C) 2000 Ove Kaaven
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_D3DVEC_INL
#define __WINE_D3DVEC_INL
/*** constructors ***/
inline _D3DVECTOR::_D3DVECTOR(D3DVALUE f)
{
x = y = z = f;
}
inline _D3DVECTOR::_D3DVECTOR(D3DVALUE _x, D3DVALUE _y, D3DVALUE _z)
{
x = _x; y = _y; z = _z;
}
/*** assignment operators ***/
inline _D3DVECTOR& _D3DVECTOR::operator += (const _D3DVECTOR& v)
{
x += v.x; y += v.y; z += v.z;
return *this;
}
inline _D3DVECTOR& _D3DVECTOR::operator -= (const _D3DVECTOR& v)
{
x -= v.x; y -= v.y; z -= v.z;
return *this;
}
inline _D3DVECTOR& _D3DVECTOR::operator *= (const _D3DVECTOR& v)
{
x *= v.x; y *= v.y; z *= v.z;
return *this;
}
inline _D3DVECTOR& _D3DVECTOR::operator /= (const _D3DVECTOR& v)
{
x /= v.x; y /= v.y; z /= v.z;
return *this;
}
inline _D3DVECTOR& _D3DVECTOR::operator *= (D3DVALUE s)
{
x *= s; y *= s; z *= s;
return *this;
}
inline _D3DVECTOR& _D3DVECTOR::operator /= (D3DVALUE s)
{
x /= s; y /= s; z /= s;
return *this;
}
/*** unary operators ***/
inline _D3DVECTOR operator + (const _D3DVECTOR& v)
{
return v;
}
inline _D3DVECTOR operator - (const _D3DVECTOR& v)
{
return _D3DVECTOR(-v.x, -v.y, -v.z);
}
/*** binary operators ***/
inline _D3DVECTOR operator + (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
{
return _D3DVECTOR(v1.x+v2.x, v1.y+v2.y, v1.z+v2.z);
}
inline _D3DVECTOR operator - (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
{
return _D3DVECTOR(v1.x-v2.x, v1.y-v2.y, v1.z-v2.z);
}
inline _D3DVECTOR operator * (const _D3DVECTOR& v, D3DVALUE s)
{
return _D3DVECTOR(v.x*s, v.y*s, v.z*s);
}
inline _D3DVECTOR operator * (D3DVALUE s, const _D3DVECTOR& v)
{
return _D3DVECTOR(v.x*s, v.y*s, v.z*s);
}
inline _D3DVECTOR operator / (const _D3DVECTOR& v, D3DVALUE s)
{
return _D3DVECTOR(v.x/s, v.y/s, v.z/s);
}
inline D3DVALUE SquareMagnitude(const _D3DVECTOR& v)
{
return v.x*v.x + v.y*v.y + v.z*v.z; /* DotProduct(v, v) */
}
inline D3DVALUE Magnitude(const _D3DVECTOR& v)
{
return sqrt(SquareMagnitude(v));
}
inline _D3DVECTOR Normalize(const _D3DVECTOR& v)
{
return v / Magnitude(v);
}
inline D3DVALUE DotProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2)
{
return v1.x*v2.x + v1.y*v2.y + v1.z*v2.z;
}
inline _D3DVECTOR CrossProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2)
{
_D3DVECTOR res;
/* this is a left-handed cross product, right? */
res.x = v1.y * v2.z - v1.z * v2.y;
res.y = v1.z * v2.x - v1.x * v2.z;
res.z = v1.x * v2.y - v1.y * v2.x;
return res;
}
#endif

View File

@@ -1,128 +0,0 @@
/*
* Copyright (C) 2002 Raphael Junqueira
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_D3DX8CORE_H
#define __WINE_D3DX8CORE_H
#include <objbase.h>
#include <d3d8.h>
#include <d3d8types.h>
#include <d3d8caps.h>
/*****************************************************************************
* #defines and error codes
*/
#define D3DXASM_DEBUG 1
#define D3DXASM_SKIPVALIDATION 2
#define _FACD3D 0x876
#define MAKE_D3DXHRESULT( code ) MAKE_HRESULT( 1, _FACD3D, code )
/*
* Direct3D Errors
*/
#define D3DXERR_CANNOTATTRSORT MAKE_D3DXHRESULT(2158)
#define D3DXERR_CANNOTMODIFYINDEXBUFFER MAKE_D3DXHRESULT(2159)
#define D3DXERR_INVALIDMESH MAKE_D3DXHRESULT(2160)
#define D3DXERR_SKINNINGNOTSUPPORTED MAKE_D3DXHRESULT(2161)
#define D3DXERR_TOOMANYINFLUENCES MAKE_D3DXHRESULT(2162)
#define D3DXERR_INVALIDDATA MAKE_D3DXHRESULT(2163)
/*****************************************************************************
* Predeclare the interfaces
*/
DEFINE_GUID(IID_ID3DXBuffer, 0x1,0x1,0x4,0xB0,0xCF,0x98,0xFE,0xFD,0xFF,0x95,0x12);/* FIXME */
typedef struct ID3DXBuffer ID3DXBuffer, *LPD3DXBUFFER;
DEFINE_GUID(IID_ID3DXFont, 0x1,0x1,0x4,0xB0,0xCF,0x98,0xFE,0xFD,0xFF,0x95,0x13);/* FIXME */
typedef struct ID3DXFont ID3DXFont, *LPD3DXFONT;
/*****************************************************************************
* ID3DXBuffer interface
*/
#define INTERFACE ID3DXBuffer
DECLARE_INTERFACE_(ID3DXBuffer,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** ID3DXBuffer methods ***/
STDMETHOD_(LPVOID,GetBufferPointer)(THIS) PURE;
STDMETHOD_(DWORD,GetBufferSize)(THIS) PURE;
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define ID3DXBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define ID3DXBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
#define ID3DXBuffer_Release(p) (p)->lpVtbl->Release(p)
/*** ID3DXBuffer methods ***/
#define ID3DXBuffer_GetBufferPointer(p) (p)->lpVtbl->GetBufferPointer(p)
#define ID3DXBuffer_GetBufferSize(p) (p)->lpVtbl->GetBufferSize(p)
#endif
/*****************************************************************************
* ID3DXFont interface
*/
#define INTERFACE ID3DXFont
DECLARE_INTERFACE_(ID3DXFont,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** ID3DXFont methods ***/
STDMETHOD(Begin)(THIS) PURE;
STDMETHOD(DrawTextA)(THIS) PURE;
STDMETHOD(End)(THIS) PURE;
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define ID3DXFont_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define ID3DXFont_AddRef(p) (p)->lpVtbl->AddRef(p)
#define ID3DXFont_Release(p) (p)->lpVtbl->Release(p)
/*** ID3DXFont methods ***/
#define ID3DXFont_Begin(p) (p)->lpVtbl->Begin(p)
#define ID3DXFont_DrawTextA(p,a,b,c,d,e)(p)->lpVtbl->DrawText(p,a,b,c,d,e)
#define ID3DXFont_End(p) (p)->lpVtbl->End(p)
#endif
/*************************************************************************************
* Define entrypoints
*/
HRESULT WINAPI D3DXCreateBuffer(DWORD NumBytes, LPD3DXBUFFER* ppBuffer);
HRESULT WINAPI D3DXCreateFont(LPDIRECT3DDEVICE8 pDevice, HFONT hFont, LPD3DXFONT* ppFont);
UINT WINAPI D3DXGetFVFVertexSize(DWORD FVF);
HRESULT WINAPI D3DXAssembleShader(LPCVOID pSrcData, UINT SrcDataLen, DWORD Flags,
LPD3DXBUFFER* ppConstants,
LPD3DXBUFFER* ppCompiledShader,
LPD3DXBUFFER* ppCompilationErrors);
HRESULT WINAPI D3DXAssembleShaderFromFileA(LPSTR pSrcFile, DWORD Flags,
LPD3DXBUFFER* ppConstants,
LPD3DXBUFFER* ppCompiledShader,
LPD3DXBUFFER* ppCompilationErrors);
HRESULT WINAPI D3DXAssembleShaderFromFileW(LPSTR pSrcFile, DWORD Flags,
LPD3DXBUFFER* ppConstants,
LPD3DXBUFFER* ppCompiledShader,
LPD3DXBUFFER* ppCompilationErrors);
#endif /* __WINE_D3DX8CORE_H */

View File

@@ -1,878 +0,0 @@
/*
* Declarations for DBGHELP
*
* Copyright (C) 2003 Eric Pouech
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_DBGHELP_H
#define __WINE_DBGHELP_H
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
typedef struct _LOADED_IMAGE
{
LPSTR ModuleName;
HANDLE hFile;
PUCHAR MappedAddress;
PIMAGE_NT_HEADERS FileHeader;
PIMAGE_SECTION_HEADER LastRvaSection;
ULONG NumberOfSections;
PIMAGE_SECTION_HEADER Sections;
ULONG Characteristics;
BOOLEAN fSystemImage;
BOOLEAN fDOSImage;
LIST_ENTRY Links;
ULONG SizeOfImage;
} LOADED_IMAGE, *PLOADED_IMAGE;
/*************************
* IMAGEHLP equiv *
*************************/
typedef enum
{
AddrMode1616,
AddrMode1632,
AddrModeReal,
AddrModeFlat
} ADDRESS_MODE;
typedef struct _tagADDRESS
{
DWORD Offset;
WORD Segment;
ADDRESS_MODE Mode;
} ADDRESS, *LPADDRESS;
#define SYMF_OMAP_GENERATED 0x00000001
#define SYMF_OMAP_MODIFIED 0x00000002
#define SYMF_USER_GENERATED 0x00000004
#define SYMF_REGISTER 0x00000008
#define SYMF_REGREL 0x00000010
#define SYMF_FRAMEREL 0x00000020
#define SYMF_PARAMETER 0x00000040
#define SYMF_LOCAL 0x00000080
#define SYMF_CONSTANT 0x00000100
#define SYMF_EXPORT 0x00000200
#define SYMF_FORWARDER 0x00000400
#define SYMF_FUNCTION 0x00000800
#define SYMF_VIRTUAL 0x00001000
#define SYMF_THUNK 0x00002000
#define SYMF_TLSREL 0x00004000
typedef enum
{
SymNone = 0,
SymCoff,
SymCv,
SymPdb,
SymExport,
SymDeferred,
SymSym,
SymDia,
NumSymTypes
} SYM_TYPE;
typedef struct _IMAGEHLP_SYMBOL
{
DWORD SizeOfStruct;
DWORD Address;
DWORD Size;
DWORD Flags;
DWORD MaxNameLength;
CHAR Name[1];
} IMAGEHLP_SYMBOL, *PIMAGEHLP_SYMBOL;
typedef struct _IMAGEHLP_MODULE
{
DWORD SizeOfStruct;
DWORD BaseOfImage;
DWORD ImageSize;
DWORD TimeDateStamp;
DWORD CheckSum;
DWORD NumSyms;
SYM_TYPE SymType;
CHAR ModuleName[32];
CHAR ImageName[256];
CHAR LoadedImageName[256];
} IMAGEHLP_MODULE, *PIMAGEHLP_MODULE;
typedef struct _IMAGEHLP_MODULEW {
DWORD SizeOfStruct;
DWORD BaseOfImage;
DWORD ImageSize;
DWORD TimeDateStamp;
DWORD CheckSum;
DWORD NumSyms;
SYM_TYPE SymType;
WCHAR ModuleName[32];
WCHAR ImageName[256];
WCHAR LoadedImageName[256];
} IMAGEHLP_MODULEW, *PIMAGEHLP_MODULEW;
typedef struct _IMAGEHLP_LINE
{
DWORD SizeOfStruct;
PVOID Key;
DWORD LineNumber;
PCHAR FileName;
DWORD Address;
} IMAGEHLP_LINE, *PIMAGEHLP_LINE;
typedef struct _SOURCEFILE
{
DWORD ModBase;
PCHAR FileName;
} SOURCEFILE, *PSOURCEFILE;
#define CBA_DEFERRED_SYMBOL_LOAD_START 0x00000001
#define CBA_DEFERRED_SYMBOL_LOAD_COMPLETE 0x00000002
#define CBA_DEFERRED_SYMBOL_LOAD_FAILURE 0x00000003
#define CBA_SYMBOLS_UNLOADED 0x00000004
#define CBA_DUPLICATE_SYMBOL 0x00000005
#define CBA_READ_MEMORY 0x00000006
#define CBA_DEFERRED_SYMBOL_LOAD_CANCEL 0x00000007
#define CBA_SET_OPTIONS 0x00000008
#define CBA_EVENT 0x00000010
#define CBA_DEBUG_INFO 0x10000000
typedef struct _IMAGEHLP_CBA_READ_MEMORY
{
DWORD64 addr;
PVOID buf;
DWORD bytes;
DWORD *bytesread;
} IMAGEHLP_CBA_READ_MEMORY, *PIMAGEHLP_CBA_READ_MEMORY;
enum {
sevInfo = 0,
sevProblem,
sevAttn,
sevFatal,
sevMax
};
typedef struct _IMAGEHLP_CBA_EVENT
{
DWORD severity;
DWORD code;
PCHAR desc;
PVOID object;
} IMAGEHLP_CBA_EVENT, *PIMAGEHLP_CBA_EVENT;
typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD
{
DWORD SizeOfStruct;
DWORD64 BaseOfImage;
DWORD CheckSum;
DWORD TimeDateStamp;
CHAR FileName[MAX_PATH];
BOOLEAN Reparse;
} IMAGEHLP_DEFERRED_SYMBOL_LOAD, *PIMAGEHLP_DEFERRED_SYMBOL_LOAD;
typedef struct _IMAGEHLP_DUPLICATE_SYMBOL
{
DWORD SizeOfStruct;
DWORD NumberOfDups;
PIMAGEHLP_SYMBOL Symbol;
DWORD SelectedSymbol;
} IMAGEHLP_DUPLICATE_SYMBOL, *PIMAGEHLP_DUPLICATE_SYMBOL;
#define SYMOPT_CASE_INSENSITIVE 0x00000001
#define SYMOPT_UNDNAME 0x00000002
#define SYMOPT_DEFERRED_LOADS 0x00000004
#define SYMOPT_NO_CPP 0x00000008
#define SYMOPT_LOAD_LINES 0x00000010
#define SYMOPT_OMAP_FIND_NEAREST 0x00000020
#define SYMOPT_LOAD_ANYTHING 0x00000040
#define SYMOPT_IGNORE_CVREC 0x00000080
#define SYMOPT_NO_UNQUALIFIED_LOADS 0x00000100
#define SYMOPT_FAIL_CRITICAL_ERRORS 0x00000200
#define SYMOPT_EXACT_SYMBOLS 0x00000400
#define SYMOPT_WILD_UNDERSCORE 0x00000800
#define SYMOPT_USE_DEFAULTS 0x00001000
#define SYMOPT_INCLUDE_32BIT_MODULES 0x00002000
#define SYMOPT_PUBLICS_ONLY 0x00004000
#define SYMOPT_NO_PUBLICS 0x00008000
#define SYMOPT_AUTO_PUBLICS 0x00010000
#define SYMOPT_NO_IMAGE_SEARCH 0x00020000
#define SYMOPT_SECURE 0x00040000
#define SYMOPT_NO_PROMPTS 0x00080000
#define SYMOPT_DEBUG 0x80000000
typedef struct _IMAGEHLP_STACK_FRAME
{
ULONG64 InstructionOffset;
ULONG64 ReturnOffset;
ULONG64 FrameOffset;
ULONG64 StackOffset;
ULONG64 BackingStoreOffset;
ULONG64 FuncTableEntry;
ULONG64 Params[4];
ULONG64 Reserved[5];
BOOL Virtual;
ULONG Reserved2;
} IMAGEHLP_STACK_FRAME, *PIMAGEHLP_STACK_FRAME;
typedef VOID IMAGEHLP_CONTEXT, *PIMAGEHLP_CONTEXT;
#define DBHHEADER_DEBUGDIRS 0x1
typedef struct _DBGHELP_MODLOAD_DATA
{
DWORD ssize;
DWORD ssig;
PVOID data;
DWORD size;
DWORD flags;
} MODLOAD_DATA, *PMODLOAD_DATA;
/*************************
* MiniDUMP *
*************************/
/* DebugHelp */
#define MINIDUMP_SIGNATURE 0x4D444D50 /* 'PMDM' */
#define MINIDUMP_VERSION (42899)
typedef DWORD RVA;
typedef ULONG64 RVA64;
typedef enum _MINIDUMP_TYPE
{
MiniDumpNormal = 0x0000,
MiniDumpWithDataSegs = 0x0001,
MiniDumpWithFullMemory = 0x0002,
MiniDumpWithHandleData = 0x0004,
MiniDumpFilterMemory = 0x0008,
MiniDumpScanMemory = 0x0010
} MINIDUMP_TYPE;
typedef enum _MINIDUMP_CALLBACK_TYPE
{
ModuleCallback,
ThreadCallback,
ThreadExCallback,
IncludeThreadCallback,
IncludeModuleCallback,
} MINIDUMP_CALLBACK_TYPE;
typedef struct _MINIDUMP_THREAD_CALLBACK
{
ULONG ThreadId;
HANDLE ThreadHandle;
CONTEXT Context;
ULONG SizeOfContext;
ULONGLONG StackBase;
ULONG64 StackEnd;
} MINIDUMP_THREAD_CALLBACK, *PMINIDUMP_THREAD_CALLBACK;
typedef struct _MINIDUMP_THREAD_EX_CALLBACK
{
ULONG ThreadId;
HANDLE ThreadHandle;
CONTEXT Context;
ULONG SizeOfContext;
ULONGLONG StackBase;
ULONGLONG StackEnd;
ULONGLONG BackingStoreBase;
ULONGLONG BackingStoreEnd;
} MINIDUMP_THREAD_EX_CALLBACK, *PMINIDUMP_THREAD_EX_CALLBACK;
typedef struct _MINIDUMP_INCLUDE_THREAD_CALLBACK
{
ULONG ThreadId;
} MINIDUMP_INCLUDE_THREAD_CALLBACK, *PMINIDUMP_INCLUDE_THREAD_CALLBACK;
typedef enum _THREAD_WRITE_FLAGS
{
ThreadWriteThread = 0x0001,
ThreadWriteStack = 0x0002,
ThreadWriteContext = 0x0004,
ThreadWriteBackingStore = 0x0008,
ThreadWriteInstructionWindow = 0x0010
} THREAD_WRITE_FLAGS;
typedef struct _MINIDUMP_MODULE_CALLBACK
{
PWCHAR FullPath;
ULONGLONG BaseOfImage;
ULONG SizeOfImage;
ULONG CheckSum;
ULONG TimeDateStamp;
VS_FIXEDFILEINFO VersionInfo;
PVOID CvRecord;
ULONG SizeOfCvRecord;
PVOID MiscRecord;
ULONG SizeOfMiscRecord;
} MINIDUMP_MODULE_CALLBACK, *PMINIDUMP_MODULE_CALLBACK;
typedef struct _MINIDUMP_INCLUDE_MODULE_CALLBACK
{
ULONG64 BaseOfImage;
} MINIDUMP_INCLUDE_MODULE_CALLBACK, *PMINIDUMP_INCLUDE_MODULE_CALLBACK;
typedef enum _MODULE_WRITE_FLAGS
{
ModuleWriteModule = 0x0001,
ModuleWriteDataSeg = 0x0002,
ModuleWriteMiscRecord = 0x0004,
ModuleWriteCvRecord = 0x0008,
ModuleReferencedByMemory = 0x0010
} MODULE_WRITE_FLAGS;
typedef struct _MINIDUMP_CALLBACK_INPUT
{
ULONG ProcessId;
HANDLE ProcessHandle;
ULONG CallbackType;
union
{
MINIDUMP_THREAD_CALLBACK Thread;
MINIDUMP_THREAD_EX_CALLBACK ThreadEx;
MINIDUMP_MODULE_CALLBACK Module;
MINIDUMP_INCLUDE_THREAD_CALLBACK IncludeThread;
MINIDUMP_INCLUDE_MODULE_CALLBACK IncludeModule;
} u;
} MINIDUMP_CALLBACK_INPUT, *PMINIDUMP_CALLBACK_INPUT;
typedef struct _MINIDUMP_CALLBACK_OUTPUT
{
union
{
ULONG ModuleWriteFlags;
ULONG ThreadWriteFlags;
} u;
} MINIDUMP_CALLBACK_OUTPUT, *PMINIDUMP_CALLBACK_OUTPUT;
typedef BOOL (WINAPI* MINIDUMP_CALLBACK_ROUTINE)(PVOID CallbackParam,
const PMINIDUMP_CALLBACK_INPUT CallbackInput,
PMINIDUMP_CALLBACK_OUTPUT CallbackOutput);
typedef struct _MINIDUMP_CALLBACK_INFORMATION
{
MINIDUMP_CALLBACK_ROUTINE CallbackRoutine;
void* CallbackParam;
} MINIDUMP_CALLBACK_INFORMATION, *PMINIDUMP_CALLBACK_INFORMATION;
typedef struct _MINIDUMP_LOCATION_DESCRIPTOR
{
ULONG DataSize;
RVA Rva;
} MINIDUMP_LOCATION_DESCRIPTOR;
typedef struct _MINIDUMP_DIRECTORY
{
ULONG StreamType;
MINIDUMP_LOCATION_DESCRIPTOR Location;
} MINIDUMP_DIRECTORY, *PMINIDUMP_DIRECTORY;
typedef struct _MINIDUMP_EXCEPTION
{
ULONG ExceptionCode;
ULONG ExceptionFlags;
ULONGLONG ExceptionRecord;
ULONGLONG ExceptionAddress;
ULONG NumberParameters;
ULONG __unusedAlignment;
ULONGLONG ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} MINIDUMP_EXCEPTION, *PMINIDUMP_EXCEPTION;
typedef struct _MINIDUMP_EXCEPTION_INFORMATION
{
DWORD ThreadId;
PEXCEPTION_POINTERS ExceptionPointers;
BOOL ClientPointers;
} MINIDUMP_EXCEPTION_INFORMATION, *PMINIDUMP_EXCEPTION_INFORMATION;
typedef struct MINIDUMP_EXCEPTION_STREAM
{
ULONG ThreadId;
ULONG __alignment;
MINIDUMP_EXCEPTION ExceptionRecord;
MINIDUMP_LOCATION_DESCRIPTOR ThreadContext;
} MINIDUMP_EXCEPTION_STREAM, *PMINIDUMP_EXCEPTION_STREAM;
typedef struct _MINIDUMP_HEADER
{
DWORD Signature;
DWORD Version;
DWORD NumberOfStreams;
RVA StreamDirectoryRva;
DWORD CheckSum;
union
{
DWORD Reserved;
DWORD TimeDateStamp;
} u;
ULONGLONG Flags;
} MINIDUMP_HEADER, *PMINIDUMP_HEADER;
typedef struct _MINIDUMP_MEMORY_DESCRIPTOR
{
ULONGLONG StartOfMemoryRange;
MINIDUMP_LOCATION_DESCRIPTOR Memory;
} MINIDUMP_MEMORY_DESCRIPTOR, *PMINIDUMP_MEMORY_DESCRIPTOR;
typedef struct _MINIDUMP_MODULE
{
ULONGLONG BaseOfImage;
ULONG SizeOfImage;
ULONG CheckSum;
ULONG TimeDateStamp;
RVA ModuleNameRva;
VS_FIXEDFILEINFO VersionInfo;
MINIDUMP_LOCATION_DESCRIPTOR CvRecord;
MINIDUMP_LOCATION_DESCRIPTOR MiscRecord;
ULONGLONG Reserved0;
ULONGLONG Reserved1;
} MINIDUMP_MODULE, *PMINIDUMP_MODULE;
typedef struct _MINIDUMP_MODULE_LIST
{
ULONG NumberOfModules;
MINIDUMP_MODULE Modules[1]; /* FIXME: 0-sized array not supported */
} MINIDUMP_MODULE_LIST, *PMINIDUMP_MODULE_LIST;
typedef struct _MINIDUMP_USER_STREAM
{
ULONG Type;
ULONG BufferSize;
void* Buffer;
} MINIDUMP_USER_STREAM, *PMINIDUMP_USER_STREAM;
typedef struct _MINIDUMP_USER_STREAM_INFORMATION
{
ULONG UserStreamCount;
PMINIDUMP_USER_STREAM UserStreamArray;
} MINIDUMP_USER_STREAM_INFORMATION, *PMINIDUMP_USER_STREAM_INFORMATION;
typedef enum _MINIDUMP_STREAM_TYPE
{
UnusedStream = 0,
ReservedStream0 = 1,
ReservedStream1 = 2,
ThreadListStream = 3,
ModuleListStream = 4,
MemoryListStream = 5,
ExceptionStream = 6,
SystemInfoStream = 7,
ThreadExListStream = 8,
Memory64ListStream = 9,
CommentStreamA = 10,
CommentStreamW = 11,
HandleDataStream = 12,
FunctionTableStream = 13,
LastReservedStream = 0xffff
} MINIDUMP_STREAM_TYPE;
typedef struct _MINIDUMP_SYSTEM_INFO
{
USHORT ProcessorArchitecture;
USHORT ProcessorLevel;
USHORT ProcessorRevision;
USHORT Reserved0;
ULONG MajorVersion;
ULONG MinorVersion;
ULONG BuildNumber;
ULONG PlatformId;
RVA CSDVersionRva;
ULONG Reserved1;
union _CPU_INFORMATION
{
struct
{
ULONG VendorId[3];
ULONG VersionInformation;
ULONG FeatureInformation;
ULONG AMDExtendedCpuFeatures;
} X86CpuInfo;
struct
{
ULONGLONG ProcessorFeatures[2];
} OtherCpuInfo;
} Cpu;
} MINIDUMP_SYSTEM_INFO, *PMINIDUMP_SYSTEM_INFO;
typedef struct _MINIDUMP_THREAD
{
ULONG ThreadId;
ULONG SuspendCount;
ULONG PriorityClass;
ULONG Priority;
ULONGLONG Teb;
MINIDUMP_MEMORY_DESCRIPTOR Stack;
MINIDUMP_LOCATION_DESCRIPTOR ThreadContext;
} MINIDUMP_THREAD, *PMINIDUMP_THREAD;
typedef struct _MINIDUMP_THREAD_LIST
{
ULONG NumberOfThreads;
MINIDUMP_THREAD Threads[1]; /* FIXME: no support of 0 sized array */
} MINIDUMP_THREAD_LIST, *PMINIDUMP_THREAD_LIST;
BOOL WINAPI MiniDumpWriteDump(HANDLE,DWORD,HANDLE,MINIDUMP_TYPE,const PMINIDUMP_EXCEPTION_INFORMATION,
const PMINIDUMP_USER_STREAM_INFORMATION,const PMINIDUMP_CALLBACK_INFORMATION);
BOOL WINAPI MiniDumpReadDumpStream(PVOID,ULONG,PMINIDUMP_DIRECTORY*,PVOID*,ULONG*);
/*************************
* MODULE handling *
*************************/
typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK)(PSTR ModuleName, DWORD ModuleBase,
ULONG ModuleSize, PVOID UserContext);
BOOL WINAPI EnumerateLoadedModules(HANDLE hProcess,
PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback,
PVOID UserContext);
typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK)(PSTR ModuleName, DWORD BaseOfDll,
PVOID UserContext);
BOOL WINAPI SymEnumerateModules(HANDLE hProcess,
PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
PVOID UserContext);
BOOL WINAPI SymGetModuleInfo(HANDLE hProcess, DWORD dwAddr,
PIMAGEHLP_MODULE ModuleInfo);
BOOL WINAPI SymGetModuleInfoW(HANDLE hProcess, DWORD dwAddr,
PIMAGEHLP_MODULEW ModuleInfo);
DWORD WINAPI SymGetModuleBase(HANDLE hProcess, DWORD dwAddr);
DWORD WINAPI SymLoadModule(HANDLE hProcess, HANDLE hFile, PSTR ImageName,
PSTR ModuleName, DWORD BaseOfDll, DWORD SizeOfDll);
DWORD64 WINAPI SymLoadModuleEx(HANDLE hProcess, HANDLE hFile, PSTR ImageName,
PSTR ModuleName, DWORD64 BaseOfDll, DWORD DllSize,
PMODLOAD_DATA Data, DWORD Flags);
BOOL WINAPI SymUnloadModule(HANDLE hProcess, DWORD BaseOfDll);
/*************************
* Symbol Handling *
*************************/
#define IMAGEHLP_SYMBOL_INFO_VALUEPRESENT 1
#define IMAGEHLP_SYMBOL_INFO_REGISTER SYMF_REGISTER /* 0x08 */
#define IMAGEHLP_SYMBOL_INFO_REGRELATIVE SYMF_REGREL /* 0x10 */
#define IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE SYMF_FRAMEREL /* 0x20 */
#define IMAGEHLP_SYMBOL_INFO_PARAMETER SYMF_PARAMETER /* 0x40 */
#define IMAGEHLP_SYMBOL_INFO_LOCAL SYMF_LOCAL /* 0x80 */
#define IMAGEHLP_SYMBOL_INFO_CONSTANT SYMF_CONSTANT /* 0x100 */
#define IMAGEHLP_SYMBOL_FUNCTION SYMF_FUNCTION /* 0x800 */
#define SYMFLAG_VALUEPRESENT 0x00000001
#define SYMFLAG_REGISTER 0x00000008
#define SYMFLAG_REGREL 0x00000010
#define SYMFLAG_FRAMEREL 0x00000020
#define SYMFLAG_PARAMETER 0x00000040
#define SYMFLAG_LOCAL 0x00000080
#define SYMFLAG_CONSTANT 0x00000100
#define SYMFLAG_EXPORT 0x00000200
#define SYMFLAG_FORWARDER 0x00000400
#define SYMFLAG_FUNCTION 0x00000800
#define SYMFLAG_VIRTUAL 0x00001000
#define SYMFLAG_THUNK 0x00002000
#define SYMFLAG_TLSREL 0x00004000
typedef struct _SYMBOL_INFO
{
ULONG SizeOfStruct;
ULONG TypeIndex;
ULONG64 Reserved[2];
ULONG info; /* sdk states info, while MSDN says it's Index... */
ULONG Size;
ULONG64 ModBase;
ULONG Flags;
ULONG64 Value;
ULONG64 Address;
ULONG Register;
ULONG Scope;
ULONG Tag;
ULONG NameLen;
ULONG MaxNameLen;
CHAR Name[1];
} SYMBOL_INFO, *PSYMBOL_INFO;
typedef enum _IMAGEHLP_SYMBOL_TYPE_INFO
{
TI_GET_SYMTAG,
TI_GET_SYMNAME,
TI_GET_LENGTH,
TI_GET_TYPE,
TI_GET_TYPEID,
TI_GET_BASETYPE,
TI_GET_ARRAYINDEXTYPEID,
TI_FINDCHILDREN,
TI_GET_DATAKIND,
TI_GET_ADDRESSOFFSET,
TI_GET_OFFSET,
TI_GET_VALUE,
TI_GET_COUNT,
TI_GET_CHILDRENCOUNT,
TI_GET_BITPOSITION,
TI_GET_VIRTUALBASECLASS,
TI_GET_VIRTUALTABLESHAPEID,
TI_GET_VIRTUALBASEPOINTEROFFSET,
TI_GET_CLASSPARENTID,
TI_GET_NESTED,
TI_GET_SYMINDEX,
TI_GET_LEXICALPARENT,
TI_GET_ADDRESS,
TI_GET_THISADJUST,
TI_GET_UDTKIND,
TI_IS_EQUIV_TO,
TI_GET_CALLING_CONVENTION,
} IMAGEHLP_SYMBOL_TYPE_INFO;
typedef struct _TI_FINDCHILDREN_PARAMS
{
ULONG Count;
ULONG Start;
ULONG ChildId[1];
} TI_FINDCHILDREN_PARAMS;
#define UNDNAME_COMPLETE (0x0000)
#define UNDNAME_NO_LEADING_UNDERSCORES (0x0001)
#define UNDNAME_NO_MS_KEYWORDS (0x0002)
#define UNDNAME_NO_FUNCTION_RETURNS (0x0004)
#define UNDNAME_NO_ALLOCATION_MODEL (0x0008)
#define UNDNAME_NO_ALLOCATION_LANGUAGE (0x0010)
#define UNDNAME_NO_MS_THISTYPE (0x0020)
#define UNDNAME_NO_CV_THISTYPE (0x0040)
#define UNDNAME_NO_THISTYPE (0x0060)
#define UNDNAME_NO_ACCESS_SPECIFIERS (0x0080)
#define UNDNAME_NO_THROW_SIGNATURES (0x0100)
#define UNDNAME_NO_MEMBER_TYPE (0x0200)
#define UNDNAME_NO_RETURN_UDT_MODEL (0x0400)
#define UNDNAME_32_BIT_DECODE (0x0800)
#define UNDNAME_NAME_ONLY (0x1000)
#define UNDNAME_NO_ARGUMENTS (0x2000)
#define UNDNAME_NO_SPECIAL_SYMS (0x4000)
BOOL WINAPI SymGetTypeInfo(HANDLE hProcess, DWORD64 ModBase, ULONG TypeId,
IMAGEHLP_SYMBOL_TYPE_INFO GetType, PVOID);
typedef BOOL (CALLBACK *PSYM_ENUMERATESYMBOLS_CALLBACK)(PSYMBOL_INFO pSymInfo,
ULONG SymbolSize, PVOID UserContext);
BOOL WINAPI SymEnumTypes(HANDLE hProcess, ULONG64 BaseOfDll,
PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
PVOID UserContext);
BOOL WINAPI SymFromAddr(HANDLE hProcess, DWORD64 addr, DWORD64* displacement,
SYMBOL_INFO* sym_info);
BOOL WINAPI SymFromName(HANDLE hProcess, LPSTR Name, PSYMBOL_INFO Symbol);
BOOL WINAPI SymGetSymFromAddr(HANDLE,DWORD,PDWORD,PIMAGEHLP_SYMBOL);
BOOL WINAPI SymGetSymFromName(HANDLE,PSTR,PIMAGEHLP_SYMBOL);
BOOL WINAPI SymGetTypeFromName(HANDLE hProcess, ULONG64 BaseOfDll, LPSTR Name,
PSYMBOL_INFO Symbol);
BOOL WINAPI SymGetSymNext(HANDLE,PIMAGEHLP_SYMBOL);
BOOL WINAPI SymGetSymPrev(HANDLE,PIMAGEHLP_SYMBOL);
BOOL WINAPI SymEnumSymbols(HANDLE hProcess, ULONG64 BaseOfDll, PCSTR Mask,
PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
PVOID UserContext);
typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK)(PSTR SymbolName, DWORD SymbolAddress,
ULONG SymbolSize, PVOID UserContext);
BOOL WINAPI SymEnumerateSymbols(HANDLE hProcess, DWORD BaseOfDll,
PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback,
PVOID UserContext);
typedef BOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK)(HANDLE hProcess, ULONG ActionCode,
PVOID CallbackData, PVOID UserContext);
BOOL WINAPI SymRegisterCallback(HANDLE hProcess,
PSYMBOL_REGISTERED_CALLBACK CallbackFunction,
PVOID UserContext);
BOOL WINAPI SymUnDName(PIMAGEHLP_SYMBOL,PSTR,DWORD);
DWORD WINAPI UnDecorateSymbolName(LPCSTR DecoratedName, LPSTR UnDecoratedName,
DWORD UndecoratedLength, DWORD Flags);
/*************************
* Source Files *
*************************/
typedef BOOL (CALLBACK *PSYM_ENUMSOURCFILES_CALLBACK)(PSOURCEFILE pSourceFile,
PVOID UserContext);
BOOL WINAPI SymEnumSourceFiles(HANDLE hProcess, ULONG64 ModBase, LPSTR Mask,
PSYM_ENUMSOURCFILES_CALLBACK cbSrcFiles,
PVOID UserContext);
BOOL WINAPI SymGetLineFromAddr(HANDLE hProcess, DWORD dwAddr,
PDWORD pdwDisplacement, PIMAGEHLP_LINE Line);
BOOL WINAPI SymGetLinePrev(HANDLE hProcess, PIMAGEHLP_LINE Line);
BOOL WINAPI SymGetLineNext(HANDLE hProcess, PIMAGEHLP_LINE Line);
/*************************
* File & image handling *
*************************/
BOOL WINAPI SymInitialize(HANDLE hProcess, PSTR UserSearchPath, BOOL fInvadeProcess);
BOOL WINAPI SymCleanup(HANDLE hProcess);
HANDLE WINAPI FindDebugInfoFile(PSTR FileName, PSTR SymbolPath, PSTR DebugFilePath);
typedef BOOL (CALLBACK *PFIND_DEBUG_FILE_CALLBACK)(HANDLE FileHandle, PSTR FileName,
PVOID CallerData);
HANDLE WINAPI FindDebugInfoFileEx(PSTR FileName, PSTR SymbolPath, PSTR DebugFilePath,
PFIND_DEBUG_FILE_CALLBACK Callback, PVOID CallerData);
typedef BOOL (CALLBACK *PFINDFILEINPATHCALLBACK)(PSTR filename, PVOID context);
BOOL WINAPI SymFindFileInPath(HANDLE hProcess, LPSTR searchPath, LPSTR FileName,
PVOID id, DWORD two, DWORD three, DWORD flags,
LPSTR FilePath, PFINDFILEINPATHCALLBACK callback,
PVOID context);
HANDLE WINAPI FindExecutableImage(PSTR FileName, PSTR SymbolPath, PSTR ImageFilePath);
typedef BOOL (CALLBACK *PFIND_EXE_FILE_CALLBACK)(HANDLE FileHandle, PSTR FileName,
PVOID CallerData);
HANDLE WINAPI FindExecutableImageEx(PSTR FileName, PSTR SymbolPath, PSTR ImageFilePath,
PFIND_EXE_FILE_CALLBACK Callback, PVOID CallerData);
PIMAGE_NT_HEADERS WINAPI ImageNtHeader(PVOID Base);
PVOID WINAPI ImageDirectoryEntryToDataEx(PVOID Base, BOOLEAN MappedAsImage,
USHORT DirectoryEntry, PULONG Size,
PIMAGE_SECTION_HEADER *FoundHeader);
PVOID WINAPI ImageDirectoryEntryToData(PVOID Base, BOOLEAN MappedAsImage,
USHORT DirectoryEntry, PULONG Size);
PIMAGE_SECTION_HEADER WINAPI ImageRvaToSection(PIMAGE_NT_HEADERS NtHeaders,
PVOID Base, ULONG Rva);
PVOID WINAPI ImageRvaToVa(PIMAGE_NT_HEADERS NtHeaders, PVOID Base,
ULONG Rva, OUT PIMAGE_SECTION_HEADER *LastRvaSection);
BOOL WINAPI SymGetSearchPath(HANDLE,PSTR,DWORD);
BOOL WINAPI SymSetSearchPath(HANDLE,PSTR);
DWORD WINAPI GetTimestampForLoadedLibrary(HMODULE);
BOOL WINAPI MakeSureDirectoryPathExists(PCSTR);
BOOL WINAPI SearchTreeForFile(PSTR,PSTR,PSTR);
typedef BOOL (CALLBACK *PENUMDIRTREE_CALLBACK)(LPCSTR path, PVOID user);
BOOL WINAPI EnumDirTree(HANDLE hProcess, PCSTR root, PCSTR file,
LPSTR buffer, PENUMDIRTREE_CALLBACK cb, void* user);
BOOL WINAPI SymMatchFileName(LPSTR file, LPSTR match, LPSTR* filestop, LPSTR* matchstop);
/*************************
* Context management *
*************************/
BOOL WINAPI SymSetContext(HANDLE hProcess, PIMAGEHLP_STACK_FRAME StackFrame,
PIMAGEHLP_CONTEXT Context);
/*************************
* Stack management *
*************************/
typedef struct _KDHELP
{
DWORD Thread;
DWORD ThCallbackStack;
DWORD NextCallback;
DWORD FramePointer;
DWORD KiCallUserMode;
DWORD KeUserCallbackDispatcher;
DWORD SystemRangeStart;
} KDHELP, *PKDHELP;
typedef struct _STACKFRAME
{
ADDRESS AddrPC;
ADDRESS AddrReturn;
ADDRESS AddrFrame;
ADDRESS AddrStack;
PVOID FuncTableEntry;
DWORD Params[4];
BOOL Far;
BOOL Virtual;
DWORD Reserved[3];
KDHELP KdHelp;
} STACKFRAME, *LPSTACKFRAME;
typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE)
(HANDLE hProcess, LPCVOID lpBaseAddress, PVOID lpBuffer,
DWORD nSize, PDWORD lpNumberOfBytesRead);
typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE)
(HANDLE hProcess, DWORD AddrBase);
typedef DWORD (CALLBACK *PGET_MODULE_BASE_ROUTINE)
(HANDLE hProcess, DWORD ReturnAddress);
typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE)
(HANDLE hProcess, HANDLE hThread, LPADDRESS lpaddr);
BOOL WINAPI StackWalk(DWORD MachineType, HANDLE hProcess, HANDLE hThread,
LPSTACKFRAME StackFrame, PVOID ContextRecord,
PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine,
PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine,
PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine,
PTRANSLATE_ADDRESS_ROUTINE TranslateAddress);
PVOID WINAPI SymFunctionTableAccess(HANDLE hProcess, DWORD AddrBase);
/*************************
* Version, global stuff *
*************************/
typedef struct API_VERSION
{
USHORT MajorVersion;
USHORT MinorVersion;
USHORT Revision;
USHORT Reserved;
} API_VERSION, *LPAPI_VERSION;
LPAPI_VERSION WINAPI ImagehlpApiVersion(void);
LPAPI_VERSION WINAPI ImagehlpApiVersionEx(LPAPI_VERSION AppVersion);
typedef struct _IMAGE_DEBUG_INFORMATION
{
LIST_ENTRY List;
DWORD ReservedSize;
PVOID ReservedMappedBase;
USHORT ReservedMachine;
USHORT ReservedCharacteristics;
DWORD ReservedCheckSum;
DWORD ImageBase;
DWORD SizeOfImage;
DWORD ReservedNumberOfSections;
PIMAGE_SECTION_HEADER ReservedSections;
DWORD ReservedExportedNamesSize;
PSTR ReservedExportedNames;
DWORD ReservedNumberOfFunctionTableEntries;
PIMAGE_FUNCTION_ENTRY ReservedFunctionTableEntries;
DWORD ReservedLowestFunctionStartingAddress;
DWORD ReservedHighestFunctionEndingAddress;
DWORD ReservedNumberOfFpoTableEntries;
PFPO_DATA ReservedFpoTableEntries;
DWORD SizeOfCoffSymbols;
PIMAGE_COFF_SYMBOLS_HEADER CoffSymbols;
DWORD ReservedSizeOfCodeViewSymbols;
PVOID ReservedCodeViewSymbols;
PSTR ImageFilePath;
PSTR ImageFileName;
PSTR ReservedDebugFilePath;
DWORD ReservedTimeDateStamp;
BOOL ReservedRomImage;
PIMAGE_DEBUG_DIRECTORY ReservedDebugDirectory;
DWORD ReservedNumberOfDebugDirectories;
DWORD ReservedOriginalFunctionTableBaseAddress;
DWORD Reserved[ 2 ];
} IMAGE_DEBUG_INFORMATION, *PIMAGE_DEBUG_INFORMATION;
PIMAGE_DEBUG_INFORMATION WINAPI MapDebugInformation(HANDLE FileHandle, PSTR FileName,
PSTR SymbolPath, DWORD ImageBase);
BOOL WINAPI UnmapDebugInformation(PIMAGE_DEBUG_INFORMATION DebugInfo);
DWORD WINAPI SymGetOptions(void);
DWORD WINAPI SymSetOptions(DWORD);
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
#endif /* __WINE_DBGHELP_H */

View File

@@ -1,59 +0,0 @@
/*
* DCI driver interface
*
* Copyright (C) 2001 Ove Kaaven
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_DCIDDI_H
#define __WINE_DCIDDI_H
#ifdef __cplusplus
extern "C" {
#endif
/* DCI Command Escape */
#define DCICOMMAND 3075
#define DCI_VERSION 0x0100
#define DCICREATEPRIMARYSURFACE 1
#define DCICREATEOFFSCREENSURFACE 2
#define DCICREATEOVERLAYSURFACE 3
#define DCIENUMSURFACE 4
#define DCIESCAPE 5
/* DCI Errors */
#define DCI_OK 0
typedef int DCIRVAL; /* DCI callback return type */
/*****************************************************************************
* Escape command structures
*/
typedef struct _DCICMD {
DWORD dwCommand;
DWORD dwParam1;
DWORD dwParam2;
DWORD dwVersion;
DWORD dwReserved;
} DCICMD,*LPDCICMD;
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* __WINE_DCIDDI_H */

View File

@@ -1,95 +0,0 @@
/*
* DirectDraw GDI32.dll interface definitions
* Copyright (C) 2003 ReactOS Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <ddk/ddrawi.h>
#include <ddk/d3dhal.h>
#include <ddk/winddi.h>
BOOL STDCALL DdCreateDirectDrawObject(
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
HDC hdc
);
BOOL STDCALL DdQueryDirectDrawObject(
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
LPDDHALINFO pHalInfo,
LPDDHAL_DDCALLBACKS pDDCallbacks,
LPDDHAL_DDSURFACECALLBACKS pDDSurfaceCallbacks,
LPDDHAL_DDPALETTECALLBACKS pDDPaletteCallbacks,
LPD3DHAL_CALLBACKS pD3dCallbacks,
LPD3DHAL_GLOBALDRIVERDATA pD3dDriverData,
LPDDHAL_DDEXEBUFCALLBACKS pD3dBufferCallbacks,
LPDDSURFACEDESC pD3dTextureFormats,
LPDWORD pdwFourCC,
LPVIDMEM pvmList
);
BOOL STDCALL DdDeleteDirectDrawObject(
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal
);
BOOL STDCALL DdCreateSurfaceObject(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
BOOL bPrimarySurface
);
BOOL STDCALL DdDeleteSurfaceObject(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal
);
BOOL STDCALL DdResetVisrgn(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
HWND hWnd
);
BOOL STDCALL DdGetDC(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
LPPALETTEENTRY pColorTable
);
BOOL STDCALL DdReleaseDC(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal
);
HBITMAP STDCALL DdCreateDIBSection(
HDC hdc,
CONST BITMAPINFO *pbmi,
UINT iUsage,
VOID **ppvBits,
HANDLE hSectionApp,
DWORD dwOffset
);
BOOL STDCALL DdReenableDirectDrawObject(
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
BOOL *pbNewMode
);
BOOL STDCALL DdAttachSurface(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceFrom,
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceTo
);
VOID STDCALL DdUnattachSurface(
LPDDRAWI_DDRAWSURFACE_LCL pSurface,
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceAttached
);
ULONG STDCALL DdQueryDisplaySettingsUniqueness(VOID);
HANDLE STDCALL DdGetDxHandle(
LPDDRAWI_DIRECTDRAW_LCL pDDraw,
LPDDRAWI_DDRAWSURFACE_LCL pSurface,
BOOL bRelease
);
BOOL STDCALL DdSetGammaRamp(
LPDDRAWI_DIRECTDRAW_LCL pDDraw,
HDC hdc,
LPVOID lpGammaRamp
);
DWORD STDCALL DdSwapTextureHandles(
LPDDRAWI_DIRECTDRAW_LCL pDDraw,
LPDDRAWI_DDRAWSURFACE_LCL pDDSLcl1,
LPDDRAWI_DDRAWSURFACE_LCL pDDSLcl2
);

View File

@@ -1,221 +0,0 @@
/*
* af_irda.h
*
* IrDa ports interface
*
* This file is part of the MinGW package.
*
* Contributors:
* Created by Robert Dickenson <robd@users.sourceforge.net>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __AF_IRDA_H
#define __AF_IRDA_H
#if __GNUC__ >=3
#pragma GCC system_header
#endif
#ifdef __cplusplus
extern "C" {
#endif
#pragma pack(push,4)
/* GUIDs */
#ifdef DEFINE_GUID
DEFINE_GUID(GUID_DEVINTERFACE_IRDAPORT,
0x86e0d1e0L, 0x8089, 0x11d0, 0x9c, 0xe4, 0x08, 0x00, 0x3e, 0x30, 0x1f, 0x74);
DEFINE_GUID(GUID_DEVINTERFACE_IRDAENUM_BUS_ENUMERATOR,
0x4D36E978L, 0xE325, 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x19);
#endif /* DEFINE_GUID */
#define WINDOWS_AF_IRDA 26
#define WINDOWS_PF_IRDA WINDOWS_AF_IRDA
#ifndef AF_IRDA
#define AF_IRDA WINDOWS_AF_IRDA
#endif
#define IRDA_PROTO_SOCK_STREAM 1
#define PF_IRDA AF_IRDA
#define SOL_IRLMP 0x00FF
#define SIO_LAZY_DISCOVERY _IOR('t', 127, ULONG)
#define IAS_MAX_USER_STRING 256
#define IAS_MAX_OCTET_STRING 1024
#define IAS_MAX_CLASSNAME 64
#define IAS_MAX_ATTRIBNAME 256
#define IAS_ATTRIB_NO_CLASS ((ULONG)0x10)
#define IAS_ATTRIB_NO_ATTRIB ((ULONG)0x00)
#define IAS_ATTRIB_INT ((ULONG)0x01)
#define IAS_ATTRIB_OCTETSEQ ((ULONG)0x02)
#define IAS_ATTRIB_STR ((ULONG)0x03)
#define IRLMP_ENUMDEVICES ((ULONG)0x10)
#define IRLMP_IAS_SET ((ULONG)0x11)
#define IRLMP_IAS_QUERY ((ULONG)0x12)
#define IRLMP_SEND_PDU_LEN ((ULONG)0x13)
#define IRLMP_EXCLUSIVE_MODE ((ULONG)0x14)
#define IRLMP_IRLPT_MODE ((ULONG)0x15)
#define IRLMP_9WIRE_MODE ((ULONG)0x16)
#if 0
/* Available/Used on Windows 98 only ??? */
#define IRLMP_TINYTP_MODE ((ULONG)0x17)
#define IRLMP_PARAMETERS ((ULONG)0x18)
#define IRLMP_DISCOVERY_MODE ((ULONG)0x19)
/* Available/Used on Windows CE only ??? */
#define IRLMP_SHARP_MODE ((ULONG)0x20)
#endif
enum {
/* First hint byte */
LM_HB1_PnP = 0x01,
LM_HB1_PDA_Palmtop = 0x02,
LM_HB1_Computer = 0x04,
LM_HB1_Printer = 0x08,
LM_HB1_Modem = 0x10,
LM_HB1_Fax = 0x20,
LM_HB1_LANAccess = 0x40,
/* Second hint byte */
LM_HB2_Telephony = 0x01,
LM_HB2_FileServer = 0x02,
/* Any hint byte */
LM_HB_Extension = 0x80,
};
#define LmCharSetASCII 0x00
#define LmCharSetISO_8859_1 0x01
#define LmCharSetISO_8859_2 0x02
#define LmCharSetISO_8859_3 0x03
#define LmCharSetISO_8859_4 0x04
#define LmCharSetISO_8859_5 0x05
#define LmCharSetISO_8859_6 0x06
#define LmCharSetISO_8859_7 0x07
#define LmCharSetISO_8859_8 0x08
#define LmCharSetISO_8859_9 0x09
#define LmCharSetUNICODE 0xFF
#define LM_BAUD_1200 1200
#define LM_BAUD_2400 2400
#define LM_BAUD_9600 9600
#define LM_BAUD_19200 19200
#define LM_BAUD_38400 38400
#define LM_BAUD_57600 57600
#define LM_BAUD_115200 115200
#define LM_BAUD_576K 576000
#define LM_BAUD_1152K 1152000
#define LM_BAUD_4M 4000000
#if 0 /* Available/Used on Windows 98 only ??? */
typedef ULONG LM_BAUD_RATE;
typedef struct {
ULONG nTXDataBytes; /* packet transmit receive bytes */
ULONG nRXDataBytes; /* packet maximum receive bytes */
LM_BAUD_RATE nBaudRate; /* link negotiated baud */
ULONG thresholdTime; /* milliseconds for threshold time */
ULONG discTime; /* milliseconds for disconnect time
USHORT nMSLinkTurn; /* milliseconds for link turn around time */
UCHAR nTXPackets; /* transmit window packets */
UCHAR nRXPackets; /* receive window packets */
} LM_IRPARMS;
typedef LM_IRPARMS *PLM_IRPARMS;
#endif
typedef struct _SOCKADDR_IRDA {
USHORT irdaAddressFamily;
UCHAR irdaDeviceID[4];
char irdaServiceName[25];
} SOCKADDR_IRDA;
typedef struct _WINDOWS_IRDA_DEVICE_INFO {
UCHAR irdaDeviceID[4];
char irdaDeviceName[22];
UCHAR irdaDeviceHints1;
UCHAR irdaDeviceHints2;
UCHAR irdaCharSet;
} WINDOWS_IRDA_DEVICE_INFO;
typedef struct _WINDOWS_IAS_SET {
char irdaClassName[IAS_MAX_CLASSNAME];
char irdaAttribName[IAS_MAX_ATTRIBNAME];
ULONG irdaAttribType;
union {
LONG irdaAttribInt;
struct {
USHORT Len;
UCHAR OctetSeq[IAS_MAX_OCTET_STRING];
} irdaAttribOctetSeq;
struct {
UCHAR Len;
UCHAR CharSet;
UCHAR UsrStr[IAS_MAX_USER_STRING];
} irdaAttribUsrStr;
} irdaAttribute;
} WINDOWS_IAS_SET;
typedef struct _WINDOWS_IAS_QUERY {
UCHAR irdaDeviceID[4];
char irdaClassName[IAS_MAX_CLASSNAME];
char irdaAttribName[IAS_MAX_ATTRIBNAME];
ULONG irdaAttribType;
union {
LONG irdaAttribInt;
struct {
ULONG Len;
UCHAR OctetSeq[IAS_MAX_OCTET_STRING];
} irdaAttribOctetSeq;
struct {
ULONG Len;
ULONG CharSet;
UCHAR UsrStr[IAS_MAX_USER_STRING];
} irdaAttribUsrStr;
} irdaAttribute;
} WINDOWS_IAS_QUERY;
typedef struct _WINDOWS_DEVICELIST {
ULONG numDevice;
WINDOWS_IRDA_DEVICE_INFO Device[1];
} WINDOWS_DEVICELIST;
typedef WINDOWS_DEVICELIST DEVICELIST;
typedef WINDOWS_DEVICELIST *PDEVICELIST;
typedef WINDOWS_DEVICELIST *PWINDOWS_DEVICELIST;
typedef WINDOWS_IRDA_DEVICE_INFO IRDA_DEVICE_INFO;
typedef WINDOWS_IRDA_DEVICE_INFO *PIRDA_DEVICE_INFO;
typedef WINDOWS_IRDA_DEVICE_INFO *PWINDOWS_IRDA_DEVICE_INFO;
typedef WINDOWS_IAS_SET IAS_SET;
typedef WINDOWS_IAS_SET *PIAS_SET;
typedef WINDOWS_IAS_SET *PWINDOWS_IAS_SET;
typedef WINDOWS_IAS_QUERY IAS_QUERY;
typedef WINDOWS_IAS_QUERY *PIAS_QUERY;
typedef WINDOWS_IAS_QUERY *PWINDOWS_IAS_QUERY;
typedef SOCKADDR_IRDA *PSOCKADDR_IRDA;
#pragma pack(pop)
#ifdef __cplusplus
}
#endif
#endif /* __AF_IRDA_H */

View File

@@ -1,369 +0,0 @@
#ifndef _NTOS_CCFUNCS_H
#define _NTOS_CCFUNCS_H
/* $Id$ */
#ifdef __cplusplus
extern "C" {
#endif
/* exported variables */
/* these should be in the KPCR */
#ifdef __NTOSKRNL__
extern ULONG EXPORTED CcFastMdlReadWait;
extern ULONG EXPORTED CcFastReadNotPossible;
extern ULONG EXPORTED CcFastReadWait;
#else
extern ULONG IMPORTED CcFastMdlReadWait;
extern ULONG IMPORTED CcFastReadNotPossible;
extern ULONG IMPORTED CcFastReadWait;
#endif
BOOLEAN
STDCALL
CcCanIWrite (
IN PFILE_OBJECT FileObject,
IN ULONG BytesToWrite,
IN BOOLEAN Wait,
IN BOOLEAN Retrying
);
BOOLEAN
STDCALL
CcCopyRead (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN BOOLEAN Wait,
OUT PVOID Buffer,
OUT PIO_STATUS_BLOCK IoStatus
);
BOOLEAN
STDCALL
CcCopyWrite (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN BOOLEAN Wait,
IN PVOID Buffer
);
VOID
STDCALL
CcDeferWrite (
IN PFILE_OBJECT FileObject,
IN PCC_POST_DEFERRED_WRITE PostRoutine,
IN PVOID Context1,
IN PVOID Context2,
IN ULONG BytesToWrite,
IN BOOLEAN Retrying
);
VOID
STDCALL
CcFastCopyRead (
IN PFILE_OBJECT FileObject,
IN ULONG FileOffset,
IN ULONG Length,
IN ULONG PageCount,
OUT PVOID Buffer,
OUT PIO_STATUS_BLOCK IoStatus
);
VOID
STDCALL
CcFastCopyWrite (
IN PFILE_OBJECT FileObject,
IN ULONG FileOffset,
IN ULONG Length,
IN PVOID Buffer
);
VOID
STDCALL
CcFlushCache (
IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
IN PLARGE_INTEGER FileOffset OPTIONAL,
IN ULONG Length,
OUT PIO_STATUS_BLOCK IoStatus OPTIONAL
);
LARGE_INTEGER
STDCALL
CcGetDirtyPages (
IN PVOID LogHandle,
IN PDIRTY_PAGE_ROUTINE DirtyPageRoutine,
IN PVOID Context1,
IN PVOID Context2
);
PFILE_OBJECT
STDCALL
CcGetFileObjectFromBcb (
IN PVOID Bcb
);
PFILE_OBJECT
STDCALL
CcGetFileObjectFromSectionPtrs (
IN PSECTION_OBJECT_POINTERS SectionObjectPointer
);
LARGE_INTEGER
STDCALL
CcGetFlushedValidData (
IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
IN BOOLEAN BcbListHeld
);
LARGE_INTEGER
STDCALL
CcGetLsnForFileObject (
IN PFILE_OBJECT FileObject,
OUT PLARGE_INTEGER OldestLsn OPTIONAL
);
VOID
STDCALL
CcInitializeCacheMap (
IN PFILE_OBJECT FileObject,
IN PCC_FILE_SIZES FileSizes,
IN BOOLEAN PinAccess,
IN PCACHE_MANAGER_CALLBACKS CallBacks,
IN PVOID LazyWriterContext
);
BOOLEAN
STDCALL
CcIsThereDirtyData (
IN PVPB Vpb
);
BOOLEAN
STDCALL
CcMapData (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN BOOLEAN Wait,
OUT PVOID * Bcb,
OUT PVOID * Buffer
);
VOID
STDCALL
CcMdlRead (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
OUT PMDL * MdlChain,
OUT PIO_STATUS_BLOCK IoStatus
);
VOID
STDCALL
CcMdlReadComplete (
IN PFILE_OBJECT FileObject,
IN PMDL MdlChain
);
VOID
STDCALL
CcMdlWriteAbort (
IN PFILE_OBJECT FileObject,
IN PMDL MdlChain
);
VOID
STDCALL
CcMdlWriteComplete (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN PMDL MdlChain
);
BOOLEAN
STDCALL
CcPinMappedData (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN ULONG Flags,
OUT PVOID * Bcb
);
BOOLEAN
STDCALL
CcPinRead (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN ULONG Flags,
OUT PVOID * Bcb,
OUT PVOID * Buffer
);
VOID
STDCALL
CcPrepareMdlWrite (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
OUT PMDL * MdlChain,
OUT PIO_STATUS_BLOCK IoStatus
);
BOOLEAN
STDCALL
CcPreparePinWrite (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN BOOLEAN Zero,
IN ULONG Flags,
OUT PVOID * Bcb,
OUT PVOID * Buffer
);
BOOLEAN
STDCALL
CcPurgeCacheSection (
IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
IN PLARGE_INTEGER FileOffset OPTIONAL,
IN ULONG Length,
IN BOOLEAN UninitializeCacheMaps
);
#define CcReadAhead(FO,FOFF,LEN) \
{ \
if ((LEN) >= 256) \
{ \
CcScheduleReadAhead((FO),(FOFF),(LEN)); \
} \
}
VOID
STDCALL
CcRepinBcb (
IN PVOID Bcb
);
PVOID
STDCALL
CcRemapBcb (
IN PVOID Bcb
);
VOID
STDCALL
CcScheduleReadAhead (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length
);
VOID
STDCALL
CcSetAdditionalCacheAttributes (
IN PFILE_OBJECT FileObject,
IN BOOLEAN DisableReadAhead,
IN BOOLEAN DisableWriteBehind
);
VOID
STDCALL
CcSetBcbOwnerPointer (
IN PVOID Bcb,
IN PVOID Owner
);
VOID
STDCALL
CcSetDirtyPageThreshold (
IN PFILE_OBJECT FileObject,
IN ULONG DirtyPageThreshold
);
VOID
STDCALL
CcSetDirtyPinnedData (
IN PVOID Bcb,
IN PLARGE_INTEGER Lsn OPTIONAL
);
VOID
STDCALL
CcSetFileSizes (
IN PFILE_OBJECT FileObject,
IN PCC_FILE_SIZES FileSizes
);
VOID
STDCALL
CcSetLogHandleForFile (
IN PFILE_OBJECT FileObject,
IN PVOID LogHandle,
IN PFLUSH_TO_LSN FlushToLsnRoutine
);
VOID
STDCALL
CcSetReadAheadGranularity (
IN PFILE_OBJECT FileObject,
IN ULONG Granularity
);
BOOLEAN
STDCALL
CcUninitializeCacheMap (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER TruncateSize OPTIONAL,
IN PCACHE_UNINITIALIZE_EVENT UninitializeCompleteEvent OPTIONAL
);
VOID
STDCALL
CcUnpinData (
IN PVOID Bcb
);
VOID
STDCALL
CcUnpinDataForThread (
IN PVOID Bcb,
IN ERESOURCE_THREAD ResourceThreadId
);
VOID
STDCALL
CcUnpinRepinnedBcb (
IN PVOID Bcb,
IN BOOLEAN WriteThrough,
IN PIO_STATUS_BLOCK IoStatus
);
NTSTATUS
STDCALL
CcWaitForCurrentLazyWriterActivity (
VOID
);
BOOLEAN
STDCALL
CcZeroData (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER StartOffset,
IN PLARGE_INTEGER EndOffset,
IN BOOLEAN Wait
);
#ifdef __cplusplus
}
#endif
#endif
/* EOF */

View File

@@ -1,90 +0,0 @@
#ifndef __INCLUDE_DDK_CCTYPES_H
#define __INCLUDE_DDK_CCTYPES_H
typedef struct _CACHE_UNINITIALIZE_EVENT
{
struct _CACHE_UNINITIALIZE_EVENT * Next;
KEVENT Event;
} CACHE_UNINITIALIZE_EVENT, *PCACHE_UNINITIALIZE_EVENT;
typedef struct _CC_FILE_SIZES
{
LARGE_INTEGER AllocationSize;
LARGE_INTEGER FileSize;
LARGE_INTEGER ValidDataLength;
} CC_FILE_SIZES, *PCC_FILE_SIZES;
typedef VOID STDCALL_FUNC
(*PCC_POST_DEFERRED_WRITE)(IN PVOID Context1,
IN PVOID Context2);
typedef struct _PUBLIC_BCB
{
CSHORT NodeTypeCode;
CSHORT NodeByteSize;
ULONG MappedLength;
LARGE_INTEGER MappedFileOffset;
} PUBLIC_BCB, *PPUBLIC_BCB;
typedef VOID (*PDIRTY_PAGE_ROUTINE) (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN PLARGE_INTEGER OldestLsn,
IN PLARGE_INTEGER NewestLsn,
IN PVOID Context1,
IN PVOID Context2
);
typedef BOOLEAN STDCALL_FUNC
(*PACQUIRE_FOR_LAZY_WRITE)(IN PVOID Context,
IN BOOLEAN Wait);
typedef VOID STDCALL_FUNC
(*PRELEASE_FROM_LAZY_WRITE)(IN PVOID Context);
typedef BOOLEAN STDCALL_FUNC
(*PACQUIRE_FOR_READ_AHEAD)(IN PVOID Context,
IN BOOLEAN Wait);
typedef VOID STDCALL_FUNC
(*PRELEASE_FROM_READ_AHEAD)(IN PVOID Context);
typedef struct _CACHE_MANAGER_CALLBACKS
{
PACQUIRE_FOR_LAZY_WRITE AcquireForLazyWrite;
PRELEASE_FROM_LAZY_WRITE ReleaseFromLazyWrite;
PACQUIRE_FOR_READ_AHEAD AcquireForReadAhead;
PRELEASE_FROM_READ_AHEAD ReleaseFromReadAhead;
} CACHE_MANAGER_CALLBACKS, *PCACHE_MANAGER_CALLBACKS;
/* this is already defined in iotypes.h */
/*
typedef struct _SECTION_OBJECT_POINTERS
{
PVOID DataSectionObject;
PVOID SharedCacheMap;
PVOID ImageSectionObject;
} SECTION_OBJECT_POINTERS, *PSECTION_OBJECT_POINTERS;
*/
typedef VOID STDCALL_FUNC
(*PFLUSH_TO_LSN)(IN PVOID LogHandle,
IN LARGE_INTEGER Lsn);
typedef struct _FSRTL_COMMON_FCB_HEADER {
CSHORT NodeTypeCode;
CSHORT NodeByteSize;
UCHAR Flags;
UCHAR IsFastIoPossible;
UCHAR Flags2;
UCHAR Reserved;
PERESOURCE Resource;
PERESOURCE PagingIoResource;
LARGE_INTEGER AllocationSize;
LARGE_INTEGER FileSize;
LARGE_INTEGER ValidDataLength;
} FSRTL_COMMON_FCB_HEADER, *PFSRTL_COMMON_FCB_HEADER;
#endif /* __INCLUDE_DDK_CCTYPES_H */

View File

@@ -1,233 +0,0 @@
/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: services/storage/include/class2.h
* PURPOSE: SCSI class driver definitions
* PROGRAMMER: Eric Kohl (ekohl@rz-online.de)
*/
#ifndef __INCLUDE_DDK_CLASS2_H
#define __INCLUDE_DDK_CLASS2_H
#include "ntddscsi.h"
#include "srb.h"
#define MAXIMUM_RETRIES 15
#define RETRY_WAIT 2000000 /* 200 ms in units of 100 ns */
struct _CLASS_INIT_DATA;
typedef VOID STDCALL
(*PCLASS_ERROR)(IN PDEVICE_OBJECT DeviceObject,
IN PSCSI_REQUEST_BLOCK Srb,
IN OUT NTSTATUS *Status,
IN OUT BOOLEAN *Retry);
typedef BOOLEAN STDCALL
(*PCLASS_DEVICE_CALLBACK)(IN PINQUIRYDATA);
typedef NTSTATUS STDCALL
(*PCLASS_READ_WRITE)(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp);
typedef BOOLEAN STDCALL
(*PCLASS_FIND_DEVICES)(IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath,
IN struct _CLASS_INIT_DATA *InitializationData,
IN PDEVICE_OBJECT PortDeviceObject,
IN ULONG PortNumber);
typedef NTSTATUS STDCALL
(*PCLASS_DEVICE_CONTROL)(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp);
typedef NTSTATUS STDCALL
(*PCLASS_SHUTDOWN_FLUSH)(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp);
typedef NTSTATUS STDCALL
(*PCLASS_CREATE_CLOSE)(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp);
typedef struct _CLASS_INIT_DATA
{
ULONG InitializationDataSize;
ULONG DeviceExtensionSize;
DEVICE_TYPE DeviceType;
ULONG DeviceCharacteristics;
PCLASS_ERROR ClassError;
PCLASS_READ_WRITE ClassReadWriteVerification;
PCLASS_DEVICE_CALLBACK ClassFindDeviceCallBack;
PCLASS_FIND_DEVICES ClassFindDevices;
PCLASS_DEVICE_CONTROL ClassDeviceControl;
PCLASS_SHUTDOWN_FLUSH ClassShutdownFlush;
PCLASS_CREATE_CLOSE ClassCreateClose;
PDRIVER_STARTIO ClassStartIo;
} CLASS_INIT_DATA, *PCLASS_INIT_DATA;
typedef struct _DEVICE_EXTENSION
{
PDEVICE_OBJECT DeviceObject;
PDEVICE_OBJECT PortDeviceObject;
LARGE_INTEGER PartitionLength;
LARGE_INTEGER StartingOffset;
ULONG DMByteSkew;
ULONG DMSkew;
BOOLEAN DMActive;
PCLASS_ERROR ClassError;
PCLASS_READ_WRITE ClassReadWriteVerification;
PCLASS_FIND_DEVICES ClassFindDevices;
PCLASS_DEVICE_CONTROL ClassDeviceControl;
PCLASS_SHUTDOWN_FLUSH ClassShutdownFlush;
PCLASS_CREATE_CLOSE ClassCreateClose;
PDRIVER_STARTIO ClassStartIo;
PIO_SCSI_CAPABILITIES PortCapabilities;
PDISK_GEOMETRY DiskGeometry;
PDEVICE_OBJECT PhysicalDevice;
PSENSE_DATA SenseData;
ULONG TimeOutValue;
ULONG DeviceNumber;
ULONG SrbFlags;
ULONG ErrorCount;
KSPIN_LOCK SplitRequestSpinLock;
NPAGED_LOOKASIDE_LIST SrbLookasideListHead;
LONG LockCount;
UCHAR PortNumber;
UCHAR PathId;
UCHAR TargetId;
UCHAR Lun;
UCHAR SectorShift;
UCHAR ReservedByte;
USHORT DeviceFlags;
PKEVENT MediaChangeEvent;
HANDLE MediaChangeEventHandle;
BOOLEAN MediaChangeNoMedia;
ULONG MediaChangeCount;
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;
typedef struct _COMPLETION_CONTEXT
{
PDEVICE_OBJECT DeviceObject;
SCSI_REQUEST_BLOCK Srb;
} COMPLETION_CONTEXT, *PCOMPLETION_CONTEXT;
/* FUNCTIONS ****************************************************************/
NTSTATUS STDCALL
ScsiClassAsynchronousCompletion(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PVOID Context);
VOID STDCALL
ScsiClassBuildRequest(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp);
NTSTATUS STDCALL
ScsiClassClaimDevice(IN PDEVICE_OBJECT PortDeviceObject,
IN PSCSI_INQUIRY_DATA LunInfo,
IN BOOLEAN Release,
OUT PDEVICE_OBJECT *NewPortDeviceObject OPTIONAL);
NTSTATUS STDCALL
ScsiClassCreateDeviceObject(IN PDRIVER_OBJECT DriverObject,
IN PCCHAR ObjectNameBuffer,
IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL,
IN OUT PDEVICE_OBJECT *DeviceObject,
IN PCLASS_INIT_DATA InitializationData);
NTSTATUS STDCALL
ScsiClassDeviceControl(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp);
PVOID STDCALL
ScsiClassFindModePage(IN PCHAR ModeSenseBuffer,
IN ULONG Length,
IN UCHAR PageMode,
IN BOOLEAN Use6Byte);
ULONG STDCALL
ScsiClassFindUnclaimedDevices(IN PCLASS_INIT_DATA InitializationData,
OUT PSCSI_ADAPTER_BUS_INFO AdapterInformation);
NTSTATUS STDCALL
ScsiClassGetCapabilities(IN PDEVICE_OBJECT PortDeviceObject,
OUT PIO_SCSI_CAPABILITIES *PortCapabilities);
NTSTATUS STDCALL
ScsiClassGetInquiryData(IN PDEVICE_OBJECT PortDeviceObject,
OUT PSCSI_ADAPTER_BUS_INFO *ConfigInfo);
ULONG STDCALL
ScsiClassInitialize(IN PVOID Argument1,
IN PVOID Argument2,
IN PCLASS_INIT_DATA InitializationData);
VOID STDCALL
ScsiClassInitializeSrbLookasideList(IN PDEVICE_EXTENSION DeviceExtension,
IN ULONG NumberElements);
NTSTATUS STDCALL
ScsiClassInternalIoControl(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp);
BOOLEAN STDCALL
ScsiClassInterpretSenseInfo(IN PDEVICE_OBJECT DeviceObject,
IN PSCSI_REQUEST_BLOCK Srb,
IN UCHAR MajorFunctionCode,
IN ULONG IoDeviceCode,
IN ULONG RetryCount,
OUT NTSTATUS *Status);
NTSTATUS STDCALL
ScsiClassIoComplete(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PVOID Context);
NTSTATUS STDCALL
ScsiClassIoCompleteAssociated(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PVOID Context);
ULONG STDCALL
ScsiClassModeSense(IN PDEVICE_OBJECT DeviceObject,
IN PCHAR ModeSenseBuffer,
IN ULONG Length,
IN UCHAR PageMode);
ULONG STDCALL
ScsiClassQueryTimeOutRegistryValue(IN PUNICODE_STRING RegistryPath);
NTSTATUS STDCALL
ScsiClassReadDriveCapacity(IN PDEVICE_OBJECT DeviceObject);
VOID STDCALL
ScsiClassReleaseQueue(IN PDEVICE_OBJECT DeviceObject);
NTSTATUS STDCALL
ScsiClassSendSrbAsynchronous(PDEVICE_OBJECT DeviceObject,
PSCSI_REQUEST_BLOCK Srb,
PIRP Irp,
PVOID BufferAddress,
ULONG BufferLength,
BOOLEAN WriteToDevice);
NTSTATUS STDCALL
ScsiClassSendSrbSynchronous(PDEVICE_OBJECT DeviceObject,
PSCSI_REQUEST_BLOCK Srb,
PVOID BufferAddress,
ULONG BufferLength,
BOOLEAN WriteToDevice);
VOID STDCALL
ScsiClassSplitRequest(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN ULONG MaximumBytes);
#endif /* __INCLUDE_DDK_CLASS2_H */
/* EOF */

View File

@@ -1,117 +0,0 @@
#ifndef __INCLUDE_DDK_CMTYPES_H
#define __INCLUDE_DDK_CMTYPES_H
/*
* Configuration Manager structures and typedefs
*/
/* key query information class */
typedef enum _KEY_INFORMATION_CLASS
{
KeyBasicInformation,
KeyNodeInformation,
KeyFullInformation,
KeyNameInformation,
KeyCachedInformation,
KeyFlagsInformation
} KEY_INFORMATION_CLASS;
typedef struct _KEY_BASIC_INFORMATION
{
LARGE_INTEGER LastWriteTime;
ULONG TitleIndex;
ULONG NameLength;
WCHAR Name[1];
} KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION;
typedef struct _KEY_FULL_INFORMATION
{
LARGE_INTEGER LastWriteTime;
ULONG TitleIndex;
ULONG ClassOffset;
ULONG ClassLength;
ULONG SubKeys;
ULONG MaxNameLen;
ULONG MaxClassLen;
ULONG Values;
ULONG MaxValueNameLen;
ULONG MaxValueDataLen;
WCHAR Class[1];
} KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION;
typedef struct _KEY_NODE_INFORMATION
{
LARGE_INTEGER LastWriteTime;
ULONG TitleIndex;
ULONG ClassOffset;
ULONG ClassLength;
ULONG NameLength;
WCHAR Name[1];
} KEY_NODE_INFORMATION, *PKEY_NODE_INFORMATION;
/* key set information class */
typedef enum _KEY_SET_INFORMATION_CLASS {
KeyWriteTimeInformation,
KeyUserFlagsInformation,
MaxKeySetInfoClass
} KEY_SET_INFORMATION_CLASS;
typedef struct _KEY_WRITE_TIME_INFORMATION {
LARGE_INTEGER LastWriteTime;
} KEY_WRITE_TIME_INFORMATION, *PKEY_WRITE_TIME_INFORMATION;
typedef struct _KEY_USER_FLAGS_INFORMATION {
ULONG UserFlags;
} KEY_USER_FLAGS_INFORMATION, *PKEY_USER_FLAGS_INFORMATION;
/* key value information class */
typedef enum _KEY_VALUE_INFORMATION_CLASS
{
KeyValueBasicInformation,
KeyValueFullInformation,
KeyValuePartialInformation
} KEY_VALUE_INFORMATION_CLASS;
typedef struct _KEY_VALUE_BASIC_INFORMATION
{
ULONG TitleIndex;
ULONG Type;
ULONG NameLength;
WCHAR Name[1];
} KEY_VALUE_BASIC_INFORMATION, *PKEY_VALUE_BASIC_INFORMATION;
typedef struct _KEY_VALUE_FULL_INFORMATION
{
ULONG TitleIndex;
ULONG Type;
ULONG DataOffset;
ULONG DataLength;
ULONG NameLength;
WCHAR Name[1];
} KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION;
typedef struct _KEY_VALUE_PARTIAL_INFORMATION
{
ULONG TitleIndex;
ULONG Type;
ULONG DataLength;
UCHAR Data[1];
} KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
/* used by [Nt/Zw]QueryMultipleValueKey */
typedef struct _KEY_VALUE_ENTRY
{
PUNICODE_STRING ValueName;
ULONG DataLength;
ULONG DataOffset;
ULONG Type;
} KEY_VALUE_ENTRY, *PKEY_VALUE_ENTRY;
#endif /* __INCLUDE_DDK_CMTYPES_H */

View File

@@ -1,280 +0,0 @@
/*
* Cancel-Safe Queue Library
* Copyright (c) 2004, Vizzini (vizzini@plasmic.com)
* Licensed under the GNU GPL for the ReactOS project
*
* This header defines the interface to the ReactOS Cancel-Safe Queue library.
* This interface is based on and is similar to the Microsoft Cancel-Safe
* Queue interface.
*
* BACKGROUND
*
* IRP queuing is a royal pain in the butt, due to the fact that there are
* tons of built-in race conditions. IRP handling is difficult in general,
* but the cancel logic has been particularly complicated due to some subtle
* races, coupled with the fact that the system interfaces have changed over
* time.
*
* Walter Oney (2nd. Ed. of Programming the Windows Driver Model) states a
* common opinion among driver developers when he says that it is foolish
* to try to roll your own cancel logic. There are only a very few people
* who have gotten it right in the past. He suggests, instead, that you
* either use his own well-tested code, or use the code in the Microsoft
* Cancel-Safe Queue Library.
*
* We cannot do either, of course, due to copyright issues. I have therefore
* created this clone of the Microsoft library in order to concentrate all
* of the IRP-queuing bugs in one place. I'm quite sure there are problems
* here, so if you are a driver writer, I'd be glad to hear your feedback.
*
* Apart from that, please try to use these routines, rather than building
* your own. If you think you have found a bug, please bring it up with me
* or on-list, as this is complicated and non-obvious stuff. Don't just
* change this and hope for the best!
*
* USAGE
*
* This library follows exactly the same interface as the Microsoft Cancel-Safe
* Queue routines (IoCsqXxx()). As such, the authoritative reference is the
* current DDK. There is also a DDK sample called "cancel" that has an
* example of how to use this code. I have also provided a sample driver
* that makes use of this queue. Finally, please do read the header and the
* source if you're curious about the inner workings of these routines.
*/
#ifndef _REACTOS_CSQ_H
#define _REACTOS_CSQ_H
struct _IO_CSQ;
/*
* CSQ Callbacks
*
* The cancel-safe queue is implemented as a set of IoCsqXxx() OS routines
* copuled with a set of driver callbacks to handle the basic operations of
* the queue. You need to supply one of each of these functions in your own
* driver. These routines are also documented in the DDK under CsqXxx().
* That is the authoritative documentation.
*/
/*
* Function to insert an IRP in the queue. No need to worry about locking;
* just tack it onto your list or something.
*
* Sample implementation:
*
VOID NTAPI CsqInsertIrp(PIO_CSQ Csq, PIRP Irp)
{
KdPrint(("Inserting IRP 0x%x into CSQ\n", Irp));
InsertTailList(&IrpQueue, &Irp->Tail.Overlay.ListEntry);
}
*
*/
typedef VOID (NTAPI *PIO_CSQ_INSERT_IRP) (struct _IO_CSQ *Csq,
PIRP Irp);
/*
* Function to insert an IRP into the queue with extended context information.
* This is useful if you need to be able to de-queue particular IRPs more
* easily in some cases.
*
* Same deal as above; sample implementation:
*
NTSTATUS NTAPI CsqInsertIrpEx(PIO_CSQ Csq, PIRP Irp, PVOID InsertContext)
{
CsqInsertIrp(Csq, Irp);
return STATUS_PENDING;
}
*
*/
typedef NTSTATUS (NTAPI *PIO_CSQ_INSERT_IRP_EX) (struct _IO_CSQ *Csq,
PIRP Irp,
PVOID InsertContext);
/*
* Function to remove an IRP from the queue.
*
* Sample:
*
VOID NTAPI CsqRemoveIrp(PIO_CSQ Csq, PIRP Irp)
{
KdPrint(("Removing IRP 0x%x from CSQ\n", Irp));
RemoveEntryList(&Irp->Tail.Overlay.ListEntry);
}
*
*/
typedef VOID (NTAPI *PIO_CSQ_REMOVE_IRP) (struct _IO_CSQ *Csq,
PIRP Irp);
/*
* Function to look for an IRP in the queue
*
* Sample:
*
PIRP NTAPI CsqPeekNextIrp(PIO_CSQ Csq, PIRP Irp, PVOID PeekContext)
{
KdPrint(("Peeking for next IRP\n"));
if(Irp)
return CONTAINING_RECORD(&Irp->Tail.Overlay.ListEntry.Flink, IRP, Tail.Overlay.ListEntry);
if(IsListEmpty(&IrpQueue))
return NULL;
return CONTAINING_RECORD(IrpQueue.Flink, IRP, Tail.Overlay.ListEntry);
}
*
*/
typedef PIRP (NTAPI *PIO_CSQ_PEEK_NEXT_IRP) (struct _IO_CSQ *Csq,
PIRP Irp,
PVOID PeekContext);
/*
* Lock the queue. This can be a spinlock, a mutex, or whatever
* else floats your boat.
*
* Sample:
*
VOID NTAPI CsqAcquireLock(PIO_CSQ Csq, PKIRQL Irql)
{
KdPrint(("Acquiring spin lock\n"));
KeAcquireSpinLock(&IrpQueueLock, Irql);
}
*
*/
typedef VOID (NTAPI *PIO_CSQ_ACQUIRE_LOCK) (struct _IO_CSQ *Csq,
PKIRQL Irql);
/*
* Unlock the queue:
*
VOID NTAPI CsqReleaseLock(PIO_CSQ Csq, KIRQL Irql)
{
KdPrint(("Releasing spin lock\n"));
KeReleaseSpinLock(&IrpQueueLock, Irql);
}
*
*/
typedef VOID (NTAPI *PIO_CSQ_RELEASE_LOCK) (struct _IO_CSQ *Csq,
KIRQL Irql);
/*
* Finally, this is called by the queue library when it wants to complete
* a canceled IRP.
*
* Sample:
*
VOID NTAPI CsqCompleteCancelledIrp(PIO_CSQ Csq, PIRP Irp)
{
KdPrint(("cancelling irp 0x%x\n", Irp));
Irp->IoStatus.Status = STATUS_CANCELLED;
Irp->IoStatus.Information = 0;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
}
*
*/
typedef VOID (NTAPI *PIO_CSQ_COMPLETE_CANCELED_IRP) (struct _IO_CSQ *Csq,
PIRP Irp);
/*
* STRUCTURES
*
* NOTE: Please do not use these directly. You will make incompatible code
* if you do. Always only use the documented IoCsqXxx() interfaces and you
* will amass much Good Karma.
*/
#define IO_TYPE_CSQ_IRP_CONTEXT 1
#define IO_TYPE_CSQ 2
#define IO_TYPE_CSQ_EX 3
/*
* IO_CSQ - Queue control structure
*/
typedef struct _IO_CSQ {
ULONG Type;
PIO_CSQ_INSERT_IRP CsqInsertIrp;
PIO_CSQ_REMOVE_IRP CsqRemoveIrp;
PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp;
PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock;
PIO_CSQ_RELEASE_LOCK CsqReleaseLock;
PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp;
PVOID ReservePointer; /* must be NULL */
} IO_CSQ, *PIO_CSQ;
/*
* IO_CSQ_IRP_CONTEXT - Context used to track an IRP in the CSQ
*/
typedef struct _IO_CSQ_IRP_CONTEXT {
ULONG Type;
PIRP Irp;
PIO_CSQ Csq;
} IO_CSQ_IRP_CONTEXT, *PIO_CSQ_IRP_CONTEXT;
/*
* CANCEL-SAFE QUEUE DDIs
*
* These device driver interfaces are called to make use of the queue. Again,
* authoritative documentation for these functions is in the DDK. The csqtest
* driver also makes use of some of them.
*/
/*
* Call this in DriverEntry or similar in order to set up the Csq structure.
* As long as the Csq struct and the functions you pass in are resident,
* there are no IRQL restrictions.
*/
NTSTATUS NTAPI IoCsqInitialize(PIO_CSQ Csq,
PIO_CSQ_INSERT_IRP CsqInsertIrp,
PIO_CSQ_REMOVE_IRP CsqRemoveIrp,
PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp,
PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock,
PIO_CSQ_RELEASE_LOCK CsqReleaseLock,
PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp);
/*
* Same as above, except you provide a CsqInsertIrpEx routine instead of
* CsqInsertIrp. This eventually allows you to supply extra tracking
* information for use with the queue.
*/
NTSTATUS NTAPI IoCsqInitializeEx(PIO_CSQ Csq,
PIO_CSQ_INSERT_IRP_EX CsqInsertIrpEx,
PIO_CSQ_REMOVE_IRP CsqRemoveIrp,
PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp,
PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock,
PIO_CSQ_RELEASE_LOCK CsqReleaseLock,
PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp);
/*
* Insert an IRP into the queue
*/
VOID NTAPI IoCsqInsertIrp(PIO_CSQ Csq,
PIRP Irp,
PIO_CSQ_IRP_CONTEXT Context);
/*
* Insert an IRP into the queue, with special context maintained that
* makes it easy to find IRPs in the queue
*/
NTSTATUS NTAPI IoCsqInsertIrpEx(PIO_CSQ Csq,
PIRP Irp,
PIO_CSQ_IRP_CONTEXT Context,
PVOID InsertContext);
/*
* Remove a particular IRP from the queue
*/
PIRP NTAPI IoCsqRemoveIrp(PIO_CSQ Csq,
PIO_CSQ_IRP_CONTEXT Context);
/*
* Remove the next IRP from the queue
*/
PIRP NTAPI IoCsqRemoveNextIrp(PIO_CSQ Csq,
PVOID PeekContext);
#endif /* _REACTOS_CSQ_H */

View File

@@ -1,535 +0,0 @@
/*
* Direct3D driver interface
* (DirectX 7 version)
*
* Copyright (C) 2001 Ove Kaaven
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_D3DHAL_H
#define __WINE_D3DHAL_H
#ifdef __cplusplus
extern "C" {
#endif
#include <ddk/ddrawi.h>
#include <d3d.h>
/*****************************************************************************
* device info structures
*/
typedef struct _D3DDeviceDesc_V1 {
DWORD dwSize;
DWORD dwFlags;
D3DCOLORMODEL dcmColorModel;
DWORD dwDevCaps;
D3DTRANSFORMCAPS dtcTransformCaps;
BOOL bClipping;
D3DLIGHTINGCAPS dlcLightingCaps;
D3DPRIMCAPS dpcLineCaps;
D3DPRIMCAPS dpcTriCaps;
DWORD dwDeviceRenderBitDepth;
DWORD dwDeviceZBufferBitDepth;
DWORD dwMaxBufferSize;
DWORD dwMaxVertexCount;
} D3DDEVICEDESC_V1,*LPD3DDEVICEDESC_V1;
/* this is to allow keeping the bulk of our OpenGL code out of x11drv */
#define D3DDD_WINE_OPENGL_DEVICE 0x00008000
typedef struct _D3DHAL_GLOBALDRIVERDATA {
DWORD dwSize;
D3DDEVICEDESC_V1 hwCaps;
DWORD dwNumVertices;
DWORD dwNumClipVertices;
DWORD dwNumTextureFormats;
LPDDSURFACEDESC lpTextureFormats;
} D3DHAL_GLOBALDRIVERDATA,*LPD3DHAL_GLOBALDRIVERDATA;
typedef struct _D3DHAL_D3DEXTENDEDCAPS {
DWORD dwSize;
/* DirectX 5 */
DWORD dwMinTextureWidth, dwMaxTextureWidth;
DWORD dwMinTextureHeight, dwMaxTextureHeight;
DWORD dwMinStippleWidth, dwMaxStippleWidth;
DWORD dwMinStippleHeight, dwMaxStippleHeight;
/* DirectX 6 */
DWORD dwMaxTextureRepeat;
DWORD dwMaxTextureAspectRatio;
DWORD dwMaxAnisotropy;
D3DVALUE dvGuardBandLeft;
D3DVALUE dvGuardBandTop;
D3DVALUE dvGuardBandRight;
D3DVALUE dvGuardBandBottom;
D3DVALUE dvExtentsAdjust;
DWORD dwStencilCaps;
DWORD dwFVFCaps;
DWORD dwTextureOpCaps;
WORD wMaxTextureBlendStages;
WORD wMaxSimultaneousTextures;
/* DirectX 7 */
DWORD dwMaxActiveLights;
D3DVALUE dvMaxVertexW;
WORD wMaxUserClipPlanes;
WORD wMaxVertexBlendMatrices;
DWORD dwVertexProcessingCaps;
DWORD dwReserved1;
DWORD dwReserved2;
DWORD dwReserved3;
DWORD dwReserved4;
} D3DHAL_D3DEXTENDEDCAPS,*LPD3DHAL_D3DEXTENDEDCAPS;
/*****************************************************************************
* d3d->driver callbacks
*/
typedef struct _D3DHAL_CONTEXTCREATEDATA *LPD3DHAL_CONTEXTCREATEDATA;
typedef struct _D3DHAL_CONTEXTDESTROYDATA *LPD3DHAL_CONTEXTDESTROYDATA;
typedef struct _D3DHAL_CONTEXTDESTROYALLDATA *LPD3DHAL_CONTEXTDESTROYALLDATA;
typedef struct _D3DHAL_SCENECAPTUREDATA *LPD3DHAL_SCENECAPTUREDATA;
typedef struct _D3DHAL_RENDERSTATEDATA *LPD3DHAL_RENDERSTATEDATA;
typedef struct _D3DHAL_RENDERPRIMITIVEDATA *LPD3DHAL_RENDERPRIMITIVEDATA;
typedef struct _D3DHAL_TEXTURECREATEDATA *LPD3DHAL_TEXTURECREATEDATA;
typedef struct _D3DHAL_TEXTUREDESTROYDATA *LPD3DHAL_TEXTUREDESTROYDATA;
typedef struct _D3DHAL_TEXTURESWAPDATA *LPD3DHAL_TEXTURESWAPDATA;
typedef struct _D3DHAL_TEXTUREGETSURFDATA *LPD3DHAL_TEXTUREGETSURFDATA;
typedef struct _D3DHAL_GETSTATEDATA *LPD3DHAL_GETSTATEDATA;
typedef DWORD (PASCAL *LPD3DHAL_CONTEXTCREATECB) (LPD3DHAL_CONTEXTCREATEDATA);
typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYCB) (LPD3DHAL_CONTEXTDESTROYDATA);
typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYALLCB)(LPD3DHAL_CONTEXTDESTROYALLDATA);
typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB) (LPD3DHAL_SCENECAPTUREDATA);
typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB) (LPD3DHAL_RENDERSTATEDATA);
typedef DWORD (PASCAL *LPD3DHAL_RENDERPRIMITIVECB) (LPD3DHAL_RENDERPRIMITIVEDATA);
typedef DWORD (PASCAL *LPD3DHAL_TEXTURECREATECB) (LPD3DHAL_TEXTURECREATEDATA);
typedef DWORD (PASCAL *LPD3DHAL_TEXTUREDESTROYCB) (LPD3DHAL_TEXTUREDESTROYDATA);
typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB) (LPD3DHAL_TEXTURESWAPDATA);
typedef DWORD (PASCAL *LPD3DHAL_TEXTUREGETSURFCB) (LPD3DHAL_TEXTUREGETSURFDATA);
typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB) (LPD3DHAL_GETSTATEDATA);
typedef struct _D3DHAL_CALLBACKS {
DWORD dwSize;
LPD3DHAL_CONTEXTCREATECB ContextCreate;
LPD3DHAL_CONTEXTDESTROYCB ContextDestroy;
LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
LPD3DHAL_SCENECAPTURECB SceneCapture;
LPVOID lpReserved10;
LPVOID lpReserved11;
LPD3DHAL_RENDERSTATECB RenderState;
LPD3DHAL_RENDERPRIMITIVECB RenderPrimitive;
DWORD dwReserved;
LPD3DHAL_TEXTURECREATECB TextureCreate;
LPD3DHAL_TEXTUREDESTROYCB TextureDestroy;
LPD3DHAL_TEXTURESWAPCB TextureSwap;
LPD3DHAL_TEXTUREGETSURFCB TextureGetSurf;
/* now why did MS create CALLBACKS2 and CALLBACKS3 structures if
* all these reserved fields were available? we may never know */
LPVOID lpReserved12;
LPVOID lpReserved13;
LPVOID lpReserved14;
LPVOID lpReserved15;
LPVOID lpReserved16;
LPVOID lpReserved17;
LPVOID lpReserved18;
LPVOID lpReserved19;
LPVOID lpReserved20;
LPVOID lpReserved21;
LPD3DHAL_GETSTATECB GetState;
DWORD dwReserved0;
DWORD dwReserved1;
DWORD dwReserved2;
DWORD dwReserved3;
DWORD dwReserved4;
DWORD dwReserved5;
DWORD dwReserved6;
DWORD dwReserved7;
DWORD dwReserved8;
DWORD dwReserved9;
} D3DHAL_CALLBACKS,*LPD3DHAL_CALLBACKS;
typedef struct _D3DHAL_SETRENDERTARGETDATA *LPD3DHAL_SETRENDERTARGETDATA;
typedef struct _D3DHAL_CLEARDATA *LPD3DHAL_CLEARDATA;
typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA *LPD3DHAL_DRAWONEPRIMITIVEDATA;
typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA;
typedef struct _D3DHAL_DRAWPRIMITIVESDATA *LPD3DHAL_DRAWPRIMITIVESDATA;
typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB) (LPD3DHAL_SETRENDERTARGETDATA);
typedef DWORD (PASCAL *LPD3DHAL_CLEARCB) (LPD3DHAL_CLEARDATA);
typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB) (LPD3DHAL_DRAWONEPRIMITIVEDATA);
typedef DWORD (PASCAL *LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB)(LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA);
typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB) (LPD3DHAL_DRAWPRIMITIVESDATA);
typedef struct _D3DHAL_CALLBACKS2 {
DWORD dwSize;
DWORD dwFlags;
LPD3DHAL_SETRENDERTARGETCB SetRenderTarget;
LPD3DHAL_CLEARCB Clear;
LPD3DHAL_DRAWONEPRIMITIVECB DrawOnePrimitive;
LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB DrawOneIndexedPrimitive;
LPD3DHAL_DRAWPRIMITIVESCB DrawPrimitives;
} D3DHAL_CALLBACKS2,*LPD3DHAL_CALLBACKS2;
typedef struct _D3DHAL_CLEAR2DATA *LPD3DHAL_CLEAR2DATA;
typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA;
typedef struct _D3DHAL_DRAWPRIMITIVES2DATA *LPD3DHAL_DRAWPRIMITIVES2DATA;
typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB) (LPD3DHAL_CLEAR2DATA);
typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA);
typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB) (LPD3DHAL_DRAWPRIMITIVES2DATA);
typedef struct _D3DHAL_CALLBACKS3 {
DWORD dwSize;
DWORD dwFlags;
LPD3DHAL_CLEAR2CB Clear2;
LPVOID lpvReserved;
LPD3DHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
LPD3DHAL_DRAWPRIMITIVES2CB DrawPrimitives2;
} D3DHAL_CALLBACKS3,*LPD3DHAL_CALLBACKS3;
/*****************************************************************************
* parameter structures
*/
typedef struct _D3DHAL_CONTEXTCREATEDATA {
union {
LPDDRAWI_DIRECTDRAW_GBL lpDDGbl; /* pre-DirectX 7 */
LPDDRAWI_DIRECTDRAW_LCL lpDDLcl; /* DirectX 7 */
} DUMMYUNIONNAME1;
union {
LPDIRECTDRAWSURFACE lpDDS;
LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; /* DirectX 7 */
} DUMMYUNIONNAME2;
union {
LPDIRECTDRAWSURFACE lpDDSZ;
LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl; /* DirectX 7 */
} DUMMYUNIONNAME3;
union {
DWORD dwPID;
ULONG_PTR dwrstates;
} DUMMYUNIONNAME4;
ULONG_PTR dwhContext;
HRESULT ddrval;
} D3DHAL_CONTEXTCREATEDATA;
typedef struct _D3DHAL_CONTEXTDESTROYDATA {
ULONG_PTR dwhContext;
HRESULT ddrval;
} D3DHAL_CONTEXTDESTROYDATA;
typedef struct _D3DHAL_CONTEXTDESTROYALLDATA {
DWORD dwPID;
HRESULT ddrval;
} D3DHAL_CONTEXTDESTROYALLDATA;
typedef struct _D3DHAL_SCENECAPTUREDATA {
ULONG_PTR dwhContext;
DWORD dwFlag;
HRESULT ddrval;
} D3DHAL_SCENECAPTUREDATA;
#define D3DHAL_SCENE_CAPTURE_START 0x00000000
#define D3DHAL_SCENE_CAPTURE_END 0x00000001
typedef struct _D3DHAL_SETRENDERTARGETDATA {
ULONG_PTR dwhContext;
union {
LPDIRECTDRAWSURFACE lpDDS;
LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl;
} DUMMYUNIONNAME1;
union {
LPDIRECTDRAWSURFACE lpDDSZ;
LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl;
} DUMMYUNIONNAME2;
HRESULT ddrval;
} D3DHAL_SETRENDERTARGETDATA;
typedef struct _D3DHAL_DRAWPRIMITIVES2DATA {
ULONG_PTR dwhContext;
DWORD dwFlags;
DWORD dwVertexType;
LPDDRAWI_DDRAWSURFACE_LCL lpDDCommands;
DWORD dwCommandOffset;
DWORD dwCommandLength;
union {
LPDDRAWI_DDRAWSURFACE_LCL lpDDVertex;
LPVOID lpVertices;
} DUMMYUNIONNAME1;
DWORD dwVertexOffset;
DWORD dwVertexLength;
DWORD dwReqVertexBufSize;
DWORD dwReqCommandBufSize;
LPDWORD lpdwRStates;
union {
DWORD dwVertexSize;
HRESULT ddrval;
} DUMMYUNIONNAME2;
DWORD dwErrorOffset;
} D3DHAL_DRAWPRIMITIVES2DATA;
#define D3DHALDP2_USERMEMVERTICES 0x00000001
#define D3DHALDP2_EXECUTEBUFFER 0x00000002
#define D3DHALDP2_SWAPVERTEXBUFFER 0x00000004
#define D3DHALDP2_SWAPCOMMANDBUFFER 0x00000008
#define D3DHALDP2_REQVERTEXBUFSIZE 0x00000010
#define D3DHALDP2_REQCOMMANDBUFSIZE 0x00000020
#define D3DHALDP2_VIDMEMVERTEXBUF 0x00000040
#define D3DHALDP2_VIDMEMCOMMANDBUF 0x00000080
/*****************************************************************************
* DrawPrimitives2 command structures
*/
typedef struct _D3DHAL_DP2COMMAND {
BYTE bCommand;
BYTE bReserved;
union {
WORD wPrimitiveCount;
WORD wStateCount;
} DUMMYUNIONNAME;
} D3DHAL_DP2COMMAND,*LPD3DHAL_DP2COMMAND;
typedef enum _D3DHAL_DP2OPERATION {
D3DDP2OP_POINTS = 1,
D3DDP2OP_INDEXEDLINELIST = 2,
D3DDP2OP_INDEXEDTRIANGLELIST = 3,
D3DDP2OP_RESERVED0 = 4,
D3DDP2OP_RENDERSTATE = 8,
D3DDP2OP_LINELIST = 15,
D3DDP2OP_LINESTRIP = 16,
D3DDP2OP_INDEXEDLINESTRIP = 17,
D3DDP2OP_TRIANGLELIST = 18,
D3DDP2OP_TRIANGLESTRIP = 19,
D3DDP2OP_INDEXEDTRIANGLESTRIP = 20,
D3DDP2OP_TRIANGLEFAN = 21,
D3DDP2OP_INDEXEDTRIANGLEFAN = 22,
D3DDP2OP_TRIANGLEFAN_IMM = 23,
D3DDP2OP_LINELIST_IMM = 24,
D3DDP2OP_TEXTURESTAGESTATE = 25,
D3DDP2OP_INDEXEDTRIANGLELIST2 = 26,
D3DDP2OP_INDEXEDLINELIST2 = 27,
D3DDP2OP_VIEWPORTINFO = 28,
D3DDP2OP_WINFO = 29,
/* pre-DirectX 7 interfaces */
D3DDP2OP_SETPALETTE = 30,
D3DDP2OP_UPDATEPALETTE = 31,
/* DirectX 7 interfaces */
D3DDP2OP_ZRANGE = 32,
D3DDP2OP_SETMATERIAL = 33,
D3DDP2OP_SETLIGHT = 34,
D3DDP2OP_CREATELIGHT = 35,
D3DDP2OP_SETTRANSFORM = 36,
D3DDP2OP_EXT = 37,
D3DDP2OP_TEXBLT = 38,
D3DDP2OP_STATESET = 39,
D3DDP2OP_SETPRIORITY = 40,
/* all interfaces */
D3DDP2OP_SETRENDERTARGET = 41,
D3DDP2OP_CLEAR = 42,
/* DirectX 7 interfaces */
D3DDP2OP_SETTEXLOD = 43,
D3DPP2OP_SETCLIPPLANE = 44
} D3DHAL_DP2OPERATION;
/* point primitives */
typedef struct _D3DHAL_POINTS {
WORD wCount;
WORD wVStart;
} D3DHAL_DP2POINTS,*LPD3DHAL_DP2POINTS;
/* line primitives */
typedef struct _D3DHAL_DP2STARTVERTEX {
WORD wVStart;
} D3DHAL_DP2STARTVERTEX,*LPD3DHAL_DP2STARTVERTEX;
typedef struct _D3DHAL_DP2LINELIST {
WORD wVStart;
} D3DHAL_DP2LINELIST,*LPD3DHAL_DP2LINELIST;
typedef struct _D3DHAL_DP2INDEXEDLINELIST {
WORD wV1;
WORD wV2;
} D3DHAL_DP2INDEXEDLINELIST,*LPD3DHAL_DP2INDEXEDLINELIST;
typedef struct _D3DHAL_DP2LINESTRIP {
WORD wVStart;
} D3DHAL_DP2LINESTRIP,*LPD3DHAL_DP2LINESTRIP;
typedef struct _D3DHAL_DP2INDEXEDLINESTRIP {
WORD wV[2];
} D3DHAL_DP2INDEXEDLINESTRIP,*LPD3DHAL_DP2INDEXEDLINESTRIP;
/* triangle primitives */
typedef struct _D3DHAL_DP2TRIANGLELIST {
WORD wVStart;
} D3DHAL_DP2TRIANGLELIST,*LPD3DHAL_DP2TRIANGLELIST;
typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
WORD wV1;
WORD wV2;
WORD wV3;
WORD wFlags;
} D3DHAL_DP2INDEXEDTRIANGLELIST,*LPD3DHAL_DP2INDEXEDTRIANGLELIST;
typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST2 {
WORD wV1;
WORD wV2;
WORD wV3;
} D3DHAL_DP2INDEXEDTRIANGLELIST2,*LPD3DHAL_DP2INDEXEDTRIANGLELIST2;
typedef struct _D3DHAL_DP2TRIANGLESTRIP {
WORD wVStart;
} D3DHAL_DP2TRIANGLESTRIP,*LPD3DHAL_DP2TRIANGLESTRIP;
typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
WORD wV[3];
} D3DHAL_DP2INDEXEDTRIANGLESTRIP,*LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;
typedef struct _D3DHAL_DP2TRIANGLEFAN {
WORD wVStart;
} D3DHAL_DP2TRIANGLEFAN,*LPD3DHAL_DP2TRIANGLEFAN;
typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN {
WORD wV[3];
} D3DHAL_DP2INDEXEDTRIANGLEFAN,*LPD3DHAL_DP2INDEXEDTRIANGLEFAN;
typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM {
DWORD dwEdgeFlags;
} D3DHAL_DP2TRIANGLEFAN_IMM,*LPD3DHAL_DP2TRIANGLEFAN_IMM;
/* render states */
typedef struct _D3DHAL_DP2RENDERSTATE {
D3DRENDERSTATETYPE RenderState;
union {
D3DVALUE dvState;
DWORD dwState;
} DUMMYUNIONNAME;
} D3DHAL_DP2RENDERSTATE,*LPD3DHAL_DP2RENDERSTATE;
typedef struct _D3DHAL_DP2TEXTURESTAGESTATE {
WORD wStage;
WORD TSState;
DWORD dwValue;
} D3DHAL_DP2TEXTURESTAGESTATE,*LPD3DHAL_DP2TEXTURESTAGESTATE;
#define D3DTSS_TEXTUREMAP 0
typedef struct _D3DHAL_DP2VIEWPORTINFO {
DWORD dwX;
DWORD dwY;
DWORD dwWidth;
DWORD dwHeight;
} D3DHAL_DP2VIEWPORTINFO,*LPD3DHAL_DP2VIEWPORTINFO;
typedef struct _D3DHAL_DP2WINFO {
D3DVALUE dwWNear;
D3DVALUE dwWFar;
} D3DHAL_DP2WINFO,*LPD3DHAL_DP2WINFO;
typedef struct _D3DHAL_DP2SETPALETTE {
DWORD dwPaletteHandle;
DWORD dwPaletteFlags;
DWORD dwSurfaceHandle;
} D3DHAL_DP2SETPALETTE,*LPD3DHAL_DP2SETPALETTE;
typedef struct _D3DHAL_DP2UPDATEPALETTE {
DWORD dwPaletteHandle;
WORD wStartIndex;
WORD wNumEntries;
} D3DHAL_DP2UPDATEPALETTE,*LPD3DHAL_DP2UPDATEPALETTE;
typedef struct _D3DHAL_DP2ZRANGE {
D3DVALUE dvMinZ;
D3DVALUE dvMaxZ;
} D3DHAL_DP2ZRANGE,*LPD3DHAL_DP2ZRANGE;
typedef D3DMATERIAL7 D3DHAL_DP2SETMATERIAL,*LPD3DHAL_DP2SETMATERIAL;
typedef struct _D3DHAL_DP2SETLIGHT {
DWORD dwIndex;
DWORD dwDataType;
} D3DHAL_DP2SETLIGHT,*LPD3DHAL_DP2SETLIGHT;
#define D3DHAL_SETLIGHT_ENABLE 0
#define D3DHAL_SETLIGHT_DISABLE 1
#define D3DHAL_SETLIGHT_DATA 2
typedef struct _D3DHAL_DP2CREATELIGHT {
DWORD dwIndex;
} D3DHAL_DP2CREATELIGHT,*LPD3DHAL_DP2CREATELIGHT;
typedef struct _D3DHAL_DP2SETTRANSFORM {
D3DTRANSFORMSTATETYPE xfrmType;
D3DMATRIX matrix;
} D3DHAL_DP2SETTRANSFORM,*LPD3DHAL_DP2SETTRANSFORM;
typedef struct _D3DHAL_DP2TEXBLT {
DWORD dwDDDestSurface;
DWORD dwDDSrcSurface;
POINT pDest;
RECTL rSrc;
DWORD dwFlags;
} D3DHAL_DP2TEXBLT,*LPD3DHAL_DP2TEXBLT;
typedef struct _D3DHAL_DP2STATESET {
DWORD dwOperation;
DWORD dwParam;
D3DSTATEBLOCKTYPE sbType;
} D3DHAL_DP2STATESET,*LPD3DHAL_DP2STATESET;
#define D3DHAL_STATESETBEGIN 0
#define D3DHAL_STATESETEND 1
#define D3DHAL_STATESETDELETE 2
#define D3DHAL_STATESETEXECUTE 3
#define D3DHAL_STATESETCAPTURE 4
typedef struct _D3DHAL_DP2SETPRIORITY {
DWORD dwDDSurface;
DWORD dwPriority;
} D3DHAL_DP2SETPRIORITY,*LPD3DHAL_DP2SETPRIORITY;
typedef struct _D3DHAL_DP2SETRENDERTARGET {
DWORD hRenderTarget;
DWORD hZBuffer;
} D3DHAL_DP2SETRENDERTARGET,*LPD3DHAL_DP2SETRENDERTARGET;
typedef struct _D3DHAL_DP2CLEAR {
DWORD dwFlags;
DWORD dwFillColor;
D3DVALUE dvFillDepth;
DWORD dwFillStencil;
RECT Rects[1];
} D3DHAL_DP2CLEAR,*LPD3DHAL_DP2CLEAR;
typedef struct _D3DHAL_DP2SETTEXLOD {
DWORD dwDDSurface;
DWORD dwLOD;
} D3DHAL_DP2SETTEXLOD,*LPD3DHAL_DP2SETTEXLOD;
typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA
{
ULONG_PTR dwhContext;
DWORD dwFlags;
DWORD dwReserved;
DWORD dwNumPasses;
HRESULT ddrval;
} D3DHAL_VALIDATETEXTURESTAGESTATEDATA;
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* __WINE_DDRAWI_H */

View File

@@ -1,72 +0,0 @@
/*
* Direct3D NT driver interface
*/
#ifndef __DDK_D3DNTHAL_H
#define __DDK_D3DNTHAL_H
#include <ddk/ddrawint.h>
#include <d3dtypes.h>
#include <d3dcaps.h>
#ifdef __cplusplus
extern "C" {
#endif
DEFINE_GUID(GUID_D3DCallbacks, 0x7BF06990, 0x8794, 0x11D0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xD2, 0xEF, 0x02);
DEFINE_GUID(GUID_D3DCallbacks3, 0xDDF41230, 0xEC0A, 0x11D0, 0xA9, 0xB6, 0x00, 0xAA, 0x00, 0xC0, 0x99, 0x3E);
DEFINE_GUID(GUID_D3DExtendedCaps, 0x7DE41F80, 0x9D93, 0x11D0, 0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29);
DEFINE_GUID(GUID_D3DParseUnknownCommandCallback, 0x2E04FFA0, 0x98E4, 0x11D1, 0x8C, 0xE1, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8);
DEFINE_GUID(GUID_ZPixelFormats, 0x93869880, 0x36CF, 0x11D1, 0x9B, 0x1B, 0x00, 0xAA, 0x00, 0xBB, 0xB8, 0xAE);
DEFINE_GUID(GUID_DDStereoMode, 0xF828169C, 0xA8E8, 0x11D2, 0xA1, 0xF2, 0x00, 0xA0, 0xC9, 0x83, 0xEA, 0xF6);
typedef struct _D3DNTHAL_CONTEXTCREATEDATA *PD3DNTHAL_CONTEXTCREATEDATA;
typedef struct _D3DNTHAL_CONTEXTDESTROYDATA *PD3DNTHAL_CONTEXTDESTROYDATA;
typedef struct _D3DNTHAL_DRAWPRIMITIVES2DATA *PD3DNTHAL_DRAWPRIMITIVES2DATA;
typedef struct _D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA *PD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA;
/* DIRECT3D object callbacks */
typedef DWORD (STDCALL *PD3DNTHAL_CONTEXTCREATECB)(PD3DNTHAL_CONTEXTCREATEDATA);
typedef DWORD (STDCALL *PD3DNTHAL_CONTEXTDESTROYCB)(PD3DNTHAL_CONTEXTDESTROYDATA);
typedef struct _D3DNTHAL_CALLBACKS {
DWORD dwSize;
PD3DNTHAL_CONTEXTCREATECB ContextCreate;
PD3DNTHAL_CONTEXTDESTROYCB ContextDestroy;
PVOID Reserved[32];
} D3DNTHAL_CALLBACKS;
typedef D3DNTHAL_CALLBACKS *PD3DNTHAL_CALLBACKS;
/* Structures to report driver capabilities */
typedef struct _D3DNTHAL_DEVICEDESC {
DWORD dwSize;
DWORD dwFlags;
D3DCOLORMODEL dcmColorModel;
DWORD dwDevCaps;
D3DTRANSFORMCAPS dtcTransformCaps;
BOOL bClipping;
D3DLIGHTINGCAPS dlcLightingCaps;
D3DPRIMCAPS dpcLineCaps;
D3DPRIMCAPS dpcTriCaps;
DWORD dwDeviceRenderBitDepth;
DWORD dwDeviceZBufferBitDepth;
DWORD dwMaxBufferSize;
DWORD dwMaxVertexCount;
} D3DNTHAL_DEVICEDESC, *PD3DNT_HALDEVICEDESC;
typedef struct _D3DNTHAL_GLOBALDRIVERDATA {
DWORD dwSize;
D3DNTHAL_DEVICEDESC hwCaps;
DWORD dwNumVertices;
DWORD dwNumClipVertices;
DWORD dwNumTextureFormats;
LPDDSURFACEDESC lpTextureFormats;
} D3DNTHAL_GLOBALDRIVERDATA, *PD3DNTHAL_GLOBALDRIVERDATA;
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* __DDK_D3DNTHAL_H */

View File

@@ -1,49 +0,0 @@
#ifndef __INCLUDE_DDK_DBGFUNCS_H
#define __INCLUDE_DDK_DBGFUNCS_H
/* $Id$ */
VOID STDCALL DbgBreakPointWithStatus (ULONG Status);
VOID STDCALL DbgBreakPoint(VOID);
ULONG DbgPrint(PCH Format,...);
VOID STDCALL DbgPrompt (PCH OutputString, PCH InputString, USHORT InputSize);
ULONG
__cdecl
DbgPrintEx(
IN ULONG ComponentId,
IN ULONG Level,
IN PCH Format,
...
);
ULONG
__cdecl
DbgPrintReturnControlC(
PCH Format,
...
);
NTSTATUS
STDCALL
DbgQueryDebugFilterState(
IN ULONG ComponentId,
IN ULONG Level
);
NTSTATUS
STDCALL
DbgSetDebugFilterState(
IN ULONG ComponentId,
IN ULONG Level,
IN BOOLEAN State
);
NTSTATUS
STDCALL
DbgLoadImageSymbols(
IN PUNICODE_STRING Name,
IN ULONG Base,
IN ULONG Unknown3
);
#endif /* __INCLUDE_DDK_DBGFUNCS_H */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,108 +0,0 @@
#ifndef _DDK_DEFINES_H
#define _DDK_DEFINES_H
/* GENERAL DEFINITIONS ****************************************************/
#ifndef __ASM__
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0400
#endif
#include <ddk/kedef.h>
#include <ddk/iodef.h>
/*
* PURPOSE: Number of a thread priority levels
*/
#define NR_PRIORITY_LEVELS (32)
/*
* PURPOSE: Object attributes
*/
enum
{
OBJ_INHERIT = 0x2,
OBJ_PERMANENT = 0x10,
OBJ_EXCLUSIVE = 0x20,
OBJ_CASE_INSENSITIVE = 0x40,
OBJ_OPENIF = 0x80,
OBJ_OPENLINK = 0x100,
OBJ_KERNEL_HANDLE = 0x200,
OBJ_VALID_ATTRIBUTES = 0x3F2,
};
/*
* PURPOSE: Timer types
*/
enum
{
NotificationTimer,
SynchronizationTimer,
};
/*
* PURPOSE: Some drivers use these
*/
#ifndef IN
#define IN
#define OUT
#define OPTIONAL
#endif
/*
* PURPOSE: Arguments to MmProbeAndLockPages
*/
enum
{
IoReadAccess,
IoWriteAccess,
IoModifyAccess,
};
#define MAXIMUM_VOLUME_LABEL_LENGTH (32)
#include <ddk/i386/irql.h>
#define PASSIVE_LEVEL 0 // Passive release level
#define LOW_LEVEL 0 // Lowest interrupt level
#define APC_LEVEL 1 // APC interrupt level
#define DISPATCH_LEVEL 2 // Dispatcher level
/* timer used for profiling */
#define PROFILE_LEVEL 27
/* Interval clock 1 level - Not used on x86 */
#define CLOCK1_LEVEL 28
#define CLOCK2_LEVEL 28 // Interval clock 2 level
#define IPI_LEVEL 29 // Interprocessor interrupt level
#define POWER_LEVEL 30 // Power failure level
#define HIGH_LEVEL 31 // Highest interrupt level
#define SYNCH_LEVEL (IPI_LEVEL-1) // synchronization level
#define WINSTA_ACCESSCLIPBOARD (0x4L)
#define WINSTA_ACCESSGLOBALATOMS (0x20L)
#define WINSTA_CREATEDESKTOP (0x8L)
#define WINSTA_ENUMDESKTOPS (0x1L)
#define WINSTA_ENUMERATE (0x100L)
#define WINSTA_EXITWINDOWS (0x40L)
#define WINSTA_READATTRIBUTES (0x2L)
#define WINSTA_READSCREEN (0x200L)
#define WINSTA_WRITEATTRIBUTES (0x10L)
#define DF_ALLOWOTHERACCOUNTHOOK (0x1L)
#define DESKTOP_CREATEMENU (0x4L)
#define DESKTOP_CREATEWINDOW (0x2L)
#define DESKTOP_ENUMERATE (0x40L)
#define DESKTOP_HOOKCONTROL (0x8L)
#define DESKTOP_JOURNALPLAYBACK (0x20L)
#define DESKTOP_JOURNALRECORD (0x10L)
#define DESKTOP_READOBJECTS (0x1L)
#define DESKTOP_SWITCHDESKTOP (0x100L)
#define DESKTOP_WRITEOBJECTS (0x80L)
#endif /* __ASM__ */
/* Values returned by KeGetPreviousMode() */
#define KernelMode (0)
#define UserMode (1)
#endif /* ndef _DDK_DEFINES_H */

File diff suppressed because it is too large Load Diff

View File

@@ -1,261 +0,0 @@
/* $Id$ */
#ifndef __INCLUDE_DDK_EXTYPES_H
#define __INCLUDE_DDK_EXTYPES_H
typedef ULONG INTERLOCKED_RESULT;
typedef enum _POOL_TYPE {
NonPagedPool,
PagedPool,
NonPagedPoolMustSucceed,
DontUseThisType,
NonPagedPoolCacheAligned,
PagedPoolCacheAligned,
NonPagedPoolCacheAlignedMustS,
MaxPoolType,
NonPagedPoolSession = 32,
PagedPoolSession,
NonPagedPoolMustSucceedSession,
DontUseThisTypeSession,
NonPagedPoolCacheAlignedSession,
PagedPoolCacheAlignedSession,
NonPagedPoolCacheAlignedMustSSession
} POOL_TYPE;
typedef enum _WORK_QUEUE_TYPE {
CriticalWorkQueue,
DelayedWorkQueue,
HyperCriticalWorkQueue,
MaximumWorkQueue
} WORK_QUEUE_TYPE;
typedef struct _EX_QUEUE_WORKER_INFO {
UCHAR QueueDisabled:1;
UCHAR MakeThreadsAsNecessary:1;
UCHAR WaitMode:1;
ULONG WorkerCount:29;
} EX_QUEUE_WORKER_INFO, *PEX_QUEUE_WORKER_INFO;
typedef struct _EX_WORK_QUEUE {
KQUEUE WorkerQueue;
ULONG DynamicThreadCount;
ULONG WorkItemsProcessed;
ULONG WorkItemsProcessedLastPass;
ULONG QueueDepthLastPass;
EX_QUEUE_WORKER_INFO Info;
} EX_WORK_QUEUE, *PEX_WORK_QUEUE;
typedef ULONG_PTR ERESOURCE_THREAD, *PERESOURCE_THREAD;
typedef struct _OWNER_ENTRY
{
ERESOURCE_THREAD OwnerThread;
union
{
LONG OwnerCount;
ULONG TableSize;
}; /* anon */
} OWNER_ENTRY, *POWNER_ENTRY;
typedef struct _ERESOURCE
{
LIST_ENTRY SystemResourcesList;
POWNER_ENTRY OwnerTable;
SHORT ActiveCount;
USHORT Flag;
PKSEMAPHORE SharedWaiters;
PKEVENT ExclusiveWaiters;
OWNER_ENTRY OwnerThreads[2];
ULONG ContentionCount;
USHORT NumberOfSharedWaiters;
USHORT NumberOfExclusiveWaiters;
union
{
PVOID Address;
ULONG CreatorBackTraceIndex;
}; /* anon */
KSPIN_LOCK SpinLock;
} ERESOURCE, *PERESOURCE;
#define EX_RUNDOWN_ACTIVE 0x1
#define EX_RUNDOWN_COUNT_SHIFT 0x1
#define EX_RUNDOWN_COUNT_INC (0x1 << EX_RUNDOWN_COUNT_SHIFT)
typedef struct _RUNDOWN_DESCRIPTOR {
ULONG_PTR References;
KEVENT RundownEvent;
} RUNDOWN_DESCRIPTOR, *PRUNDOWN_DESCRIPTOR;
typedef struct _EX_RUNDOWN_REF {
union {
ULONG_PTR Count;
PRUNDOWN_DESCRIPTOR Ptr;
};
} EX_RUNDOWN_REF, *PEX_RUNDOWN_REF;
typedef struct
{
LONG Count;
struct _KTHREAD* Owner;
ULONG Contention;
KEVENT Event;
ULONG OldIrql;
} FAST_MUTEX, *PFAST_MUTEX;
typedef struct _ZONE_HEADER
{
SINGLE_LIST_ENTRY FreeList;
SINGLE_LIST_ENTRY SegmentList;
ULONG BlockSize;
ULONG TotalSegmentSize;
} ZONE_HEADER, *PZONE_HEADER;
typedef struct _ZONE_SEGMENT_HEADER
{
SINGLE_LIST_ENTRY SegmentList; /* was Entry */
PVOID Reserved; /* was ULONG Size; */
} ZONE_SEGMENT_HEADER, *PZONE_SEGMENT_HEADER;
typedef VOID STDCALL_FUNC
(*PWORKER_THREAD_ROUTINE)(PVOID Parameter);
/* Modified by Andrew Greenwood, 16th July 2003: */
typedef struct _WORK_QUEUE_ITEM
{
LIST_ENTRY List;
PWORKER_THREAD_ROUTINE WorkerRoutine;
PVOID Parameter;
} WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM;
typedef PVOID STDCALL_FUNC
(*PALLOCATE_FUNCTION)(POOL_TYPE PoolType,
ULONG NumberOfBytes,
ULONG Tag);
typedef VOID STDCALL_FUNC
(*PFREE_FUNCTION)(PVOID Buffer);
typedef union _SLIST_HEADER
{
ULONGLONG Alignment;
struct
{
SLIST_ENTRY Next;
USHORT Depth;
USHORT Sequence;
}; /* now anonymous */
} SLIST_HEADER, *PSLIST_HEADER;
typedef struct _NPAGED_LOOKASIDE_LIST
{
SLIST_HEADER ListHead;
USHORT Depth;
USHORT MaximumDepth;
ULONG TotalAllocates;
ULONG AllocateMisses;
ULONG TotalFrees;
ULONG FreeMisses;
POOL_TYPE Type;
ULONG Tag;
ULONG Size;
PALLOCATE_FUNCTION Allocate;
PFREE_FUNCTION Free;
LIST_ENTRY ListEntry;
ULONG LastTotalAllocates;
ULONG LastAllocateMisses;
ULONG Pad[2];
KSPIN_LOCK Obsoleted;
} NPAGED_LOOKASIDE_LIST, *PNPAGED_LOOKASIDE_LIST;
typedef struct _PAGED_LOOKASIDE_LIST
{
SLIST_HEADER ListHead;
USHORT Depth;
USHORT MaximumDepth;
ULONG TotalAllocates;
ULONG AllocateMisses;
ULONG TotalFrees;
ULONG FreeMisses;
POOL_TYPE Type;
ULONG Tag;
ULONG Size;
PALLOCATE_FUNCTION Allocate;
PFREE_FUNCTION Free;
LIST_ENTRY ListEntry;
ULONG LastTotalAllocates;
ULONG LastAllocateMisses;
FAST_MUTEX Obsoleted;
} PAGED_LOOKASIDE_LIST, *PPAGED_LOOKASIDE_LIST;
typedef struct _PP_LOOKASIDE_LIST {
struct _GENERAL_LOOKASIDE *P;
struct _GENERAL_LOOKASIDE *L;
} PP_LOOKASIDE_LIST, *PPP_LOOKASIDE_LIST;
typedef enum _EX_POOL_PRIORITY {
LowPoolPriority,
LowPoolPrioritySpecialPoolOverrun = 8,
LowPoolPrioritySpecialPoolUnderrun = 9,
NormalPoolPriority = 16,
NormalPoolPrioritySpecialPoolOverrun = 24,
NormalPoolPrioritySpecialPoolUnderrun = 25,
HighPoolPriority = 32,
HighPoolPrioritySpecialPoolOverrun = 40,
HighPoolPrioritySpecialPoolUnderrun = 41
} EX_POOL_PRIORITY;
typedef enum _SUITE_TYPE {
SmallBusiness,
Enterprise,
BackOffice,
CommunicationServer,
TerminalServer,
SmallBusinessRestricted,
EmbeddedNT,
DataCenter,
SingleUserTS,
Personal,
Blade,
MaxSuiteType
} SUITE_TYPE;
typedef enum _HARDERROR_RESPONSE_OPTION {
OptionAbortRetryIgnore,
OptionOk,
OptionOkCancel,
OptionRetryCancel,
OptionYesNo,
OptionYesNoCancel,
OptionShutdownSystem
} HARDERROR_RESPONSE_OPTION, *PHARDERROR_RESPONSE_OPTION;
typedef enum _HARDERROR_RESPONSE {
ResponseReturnToCaller,
ResponseNotHandled,
ResponseAbort,
ResponseCancel,
ResponseIgnore,
ResponseNo,
ResponseOk,
ResponseRetry,
ResponseYes
} HARDERROR_RESPONSE, *PHARDERROR_RESPONSE;
/* callback object (not functional in NT4)*/
typedef struct _CALLBACK_OBJECT *PCALLBACK_OBJECT;
typedef VOID STDCALL_FUNC
(*PCALLBACK_FUNCTION)(PVOID CallbackContext,
PVOID Argument1,
PVOID Argument2);
#endif /* __INCLUDE_DDK_EXTYPES_H */
/* EOF */

View File

@@ -1,792 +0,0 @@
#ifndef __INCLUDE_DDK_FSFUNCS_H
#define __INCLUDE_DDK_FSFUNCS_H
/* $Id$ */
#define FlagOn(x,f) ((x) & (f))
#include <ntos/fstypes.h>
/* Some comments on the Prototypes that aren't in the IFS:
FsRtlMdlReadCompleteDev (FsRtlMdlReadComplete is on GNU IFS. The Dev Suffix simply means an extra PDEVICE_OBJECT param)
FsRtlMdlReadDev (FsRtlMdlReadDev is on GNU IFS. The Dev Suffix simply means an extra PDEVICE_OBJECT param)
FsRtlMdlWriteCompleteDev FsRtlMdlWriteCompleteDev is on GNU IFS. The Dev Suffix simply means an extra PDEVICE_OBJECT param)
FsRtlPrepareMdlWrite (Compared with CcMdlWrite, which is already documented)
FsRtlPrepareMdlWriteDev (Same as above, and add a pointer to device object (Dev suffix)
*/
#ifdef __NTOSKRNL__
extern PUCHAR EXPORTED FsRtlLegalAnsiCharacterArray;
#else
extern PUCHAR IMPORTED FsRtlLegalAnsiCharacterArray;
#endif
#define FSRTL_WILD_CHARACTER 0x08
typedef signed char SCHAR;
VOID
STDCALL
FsRtlFreeFileLock(
IN PFILE_LOCK FileLock
);
VOID
STDCALL
FsRtlAcquireFileExclusive (
IN PFILE_OBJECT FileObject
);
PFILE_LOCK
STDCALL
FsRtlAllocateFileLock (
IN PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine OPTIONAL,
IN PUNLOCK_ROUTINE UnlockRoutine OPTIONAL
);
#define FsRtlAreThereCurrentFileLocks(FL) (((FL)->FastIoIsQuestionable))
BOOLEAN STDCALL
FsRtlAddLargeMcbEntry(IN PLARGE_MCB Mcb,
IN LONGLONG Vbn,
IN LONGLONG Lbn,
IN LONGLONG SectorCount);
BOOLEAN STDCALL
FsRtlAddMcbEntry (IN PMCB Mcb,
IN VBN Vbn,
IN LBN Lbn,
IN ULONG SectorCount);
VOID STDCALL
FsRtlAddToTunnelCache (
IN PTUNNEL Cache,
IN ULONGLONG DirectoryKey,
IN PUNICODE_STRING ShortName,
IN PUNICODE_STRING LongName,
IN BOOLEAN KeyByShortName,
IN ULONG DataLength,
IN PVOID Data
);
PVOID STDCALL
FsRtlAllocatePool (
IN POOL_TYPE PoolType,
IN ULONG NumberOfBytes
);
PVOID STDCALL
FsRtlAllocatePoolWithQuota (
IN POOL_TYPE PoolType,
IN ULONG NumberOfBytes
);
PVOID STDCALL
FsRtlAllocatePoolWithQuotaTag (
IN POOL_TYPE PoolType,
IN ULONG NumberOfBytes,
IN ULONG Tag
);
PVOID
STDCALL
FsRtlAllocatePoolWithTag (
IN POOL_TYPE PoolType,
IN ULONG NumberOfBytes,
IN ULONG Tag
);
DWORD
STDCALL
FsRtlAllocateResource (
VOID
);
BOOLEAN
STDCALL
FsRtlAreNamesEqual (
IN PUNICODE_STRING Name1,
IN PUNICODE_STRING Name2,
IN BOOLEAN IgnoreCase,
IN PWCHAR UpcaseTable OPTIONAL
);
NTSTATUS
STDCALL
FsRtlBalanceReads (
PDEVICE_OBJECT TargetDevice
);
BOOLEAN
STDCALL
FsRtlCheckLockForReadAccess (
IN PFILE_LOCK FileLock,
IN PIRP Irp
);
BOOLEAN
STDCALL
FsRtlCheckLockForWriteAccess (
IN PFILE_LOCK FileLock,
IN PIRP Irp
);
NTSTATUS STDCALL
FsRtlCheckOplock(IN POPLOCK Oplock,
IN PIRP Irp,
IN PVOID Context,
IN POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine OPTIONAL,
IN POPLOCK_FS_PREPOST_IRP PostIrpRoutine OPTIONAL);
BOOLEAN
STDCALL
FsRtlCopyRead (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN BOOLEAN Wait,
IN ULONG LockKey,
OUT PVOID Buffer,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject
);
BOOLEAN
STDCALL
FsRtlCopyWrite (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN BOOLEAN Wait,
IN ULONG LockKey,
IN PVOID Buffer,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject
);
BOOLEAN STDCALL
FsRtlCurrentBatchOplock(IN POPLOCK Oplock);
VOID STDCALL
FsRtlDeleteKeyFromTunnelCache(IN PTUNNEL Cache,
IN ULONGLONG DirectoryKey);
VOID STDCALL
FsRtlDeleteTunnelCache(IN PTUNNEL Cache);
VOID STDCALL
FsRtlDeregisterUncProvider(IN HANDLE Handle);
VOID STDCALL
FsRtlDissectDbcs(IN ANSI_STRING Name,
OUT PANSI_STRING FirstPart,
OUT PANSI_STRING RemainingPart);
VOID STDCALL
FsRtlDissectName(IN UNICODE_STRING Name,
OUT PUNICODE_STRING FirstPart,
OUT PUNICODE_STRING RemainingPart);
BOOLEAN STDCALL
FsRtlDoesDbcsContainWildCards(IN PANSI_STRING Name);
BOOLEAN STDCALL
FsRtlDoesNameContainWildCards(IN PUNICODE_STRING Name);
BOOLEAN
STDCALL
FsRtlFastCheckLockForRead (
IN PFILE_LOCK FileLock,
IN PLARGE_INTEGER FileOffset,
IN PLARGE_INTEGER Length,
IN ULONG Key,
IN PFILE_OBJECT FileObject,
IN PEPROCESS Process
);
BOOLEAN
STDCALL
FsRtlFastCheckLockForWrite (
IN PFILE_LOCK FileLock,
IN PLARGE_INTEGER FileOffset,
IN PLARGE_INTEGER Length,
IN ULONG Key,
IN PFILE_OBJECT FileObject,
IN PEPROCESS Process
);
NTSTATUS
STDCALL
FsRtlFastUnlockAll (
IN PFILE_LOCK FileLock,
IN PFILE_OBJECT FileObject,
IN PEPROCESS Process,
IN PVOID Context OPTIONAL
);
NTSTATUS
STDCALL
FsRtlFastUnlockAllByKey (
IN PFILE_LOCK FileLock,
IN PFILE_OBJECT FileObject,
IN PEPROCESS Process,
IN ULONG Key,
IN PVOID Context OPTIONAL
);
NTSTATUS
STDCALL
FsRtlFastUnlockSingle (
IN PFILE_LOCK FileLock,
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN PLARGE_INTEGER Length,
IN PEPROCESS Process,
IN ULONG Key,
IN PVOID Context OPTIONAL,
IN BOOLEAN AlreadySynchronized
);
BOOLEAN
STDCALL
FsRtlFindInTunnelCache (
IN PTUNNEL Cache,
IN ULONGLONG DirectoryKey,
IN PUNICODE_STRING Name,
OUT PUNICODE_STRING ShortName,
OUT PUNICODE_STRING LongName,
IN OUT PULONG DataLength,
OUT PVOID Data
);
NTSTATUS
STDCALL
FsRtlGetFileSize (
IN PFILE_OBJECT FileObject,
IN OUT PLARGE_INTEGER FileSize
);
PFILE_LOCK_INFO
STDCALL
FsRtlGetNextFileLock (
IN PFILE_LOCK FileLock,
IN BOOLEAN Restart
);
BOOLEAN STDCALL
FsRtlGetNextLargeMcbEntry(IN PLARGE_MCB Mcb,
IN ULONG RunIndex,
OUT PLONGLONG Vbn,
OUT PLONGLONG Lbn,
OUT PLONGLONG SectorCount);
BOOLEAN STDCALL
FsRtlGetNextMcbEntry (IN PMCB Mcb,
IN ULONG RunIndex,
OUT PVBN Vbn,
OUT PLBN Lbn,
OUT PULONG SectorCount);
#define FsRtlEnterFileSystem KeEnterCriticalRegion
#define FsRtlExitFileSystem KeLeaveCriticalRegion
VOID
STDCALL
FsRtlIncrementCcFastReadNotPossible( VOID );
VOID
STDCALL
FsRtlIncrementCcFastReadWait( VOID );
VOID
STDCALL
FsRtlIncrementCcFastReadNoWait( VOID );
VOID
STDCALL
FsRtlIncrementCcFastReadResourceMiss( VOID );
VOID
STDCALL
FsRtlInitializeFileLock (
IN PFILE_LOCK FileLock,
IN PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine OPTIONAL,
IN PUNLOCK_ROUTINE UnlockRoutine OPTIONAL
);
VOID STDCALL
FsRtlInitializeLargeMcb(IN PLARGE_MCB Mcb,
IN POOL_TYPE PoolType);
VOID STDCALL
FsRtlInitializeMcb (IN PMCB Mcb,
IN POOL_TYPE PoolType);
VOID STDCALL
FsRtlInitializeOplock(IN OUT POPLOCK Oplock);
VOID
STDCALL
FsRtlInitializeTunnelCache (
IN PTUNNEL Cache
);
NTSTATUS
STDCALL
FsRtlInsertPerFileObjectContext (
IN PFSRTL_ADVANCED_FCB_HEADER PerFileObjectContext,
IN PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/ Ptr
);
NTSTATUS
STDCALL
FsRtlInsertPerStreamContext (
IN PFSRTL_ADVANCED_FCB_HEADER PerStreamContext,
IN PFSRTL_PER_STREAM_CONTEXT Ptr
);
BOOLEAN STDCALL
FsRtlIsDbcsInExpression(IN PANSI_STRING Expression,
IN PANSI_STRING Name);
BOOLEAN
STDCALL
FsRtlIsFatDbcsLegal(IN ANSI_STRING DbcsName,
IN BOOLEAN WildCardsPermissible,
IN BOOLEAN PathNamePermissible,
IN BOOLEAN LeadingBackslashPermissible);
BOOLEAN
STDCALL
FsRtlIsHpfsDbcsLegal(IN ANSI_STRING DbcsName,
IN BOOLEAN WildCardsPermissible,
IN BOOLEAN PathNamePermissible,
IN BOOLEAN LeadingBackslashPermissible);
BOOLEAN
STDCALL
FsRtlIsNameInExpression (
IN PUNICODE_STRING Expression,
IN PUNICODE_STRING Name,
IN BOOLEAN IgnoreCase,
IN PWCHAR UpcaseTable OPTIONAL
);
BOOLEAN STDCALL
FsRtlIsNtstatusExpected(IN NTSTATUS NtStatus);
ULONG
FsRtlIsPagingFile (
IN PFILE_OBJECT FileObject
);
BOOLEAN STDCALL
FsRtlIsTotalDeviceFailure(IN NTSTATUS NtStatus);
#define FsRtlIsUnicodeCharacterWild(C) ( \
(((C) >= 0x40) ? \
FALSE : \
FlagOn((FsRtlLegalAnsiCharacterArray)[(C)], FSRTL_WILD_CHARACTER )) \
)
#define FSRTL_FAT_LEGAL 0x01
#define FSRTL_HPFS_LEGAL 0x02
#define FSRTL_NTFS_LEGAL 0x04
#define FSRTL_WILD_CHARACTER 0x08
#define FSRTL_OLE_LEGAL 0x10
#define FSRTL_NTFS_STREAM_LEGAL (FSRTL_NTFS_LEGAL | FSRTL_OLE_LEGAL)
#define FsRtlIsAnsiCharacterWild(C) ( \
FsRtlTestAnsiCharacter((C), FALSE, FALSE, FSRTL_WILD_CHARACTER) \
)
#define FsRtlIsAnsiCharacterLegalFat(C,WILD_OK) ( \
FsRtlTestAnsiCharacter((C), TRUE, (WILD_OK), FSRTL_FAT_LEGAL) \
)
#define FsRtlIsAnsiCharacterLegalHpfs(C,WILD_OK) ( \
FsRtlTestAnsiCharacter((C), TRUE, (WILD_OK), FSRTL_HPFS_LEGAL) \
)
#define FsRtlIsAnsiCharacterLegalNtfs(C,WILD_OK) ( \
FsRtlTestAnsiCharacter((C), TRUE, (WILD_OK), FSRTL_NTFS_LEGAL) \
)
#define FsRtlIsAnsiCharacterLegalNtfsStream(C,WILD_OK) ( \
FsRtlTestAnsiCharacter((C), TRUE, (WILD_OK), FSRTL_NTFS_STREAM_LEGAL) \
)
#define FsRtlIsAnsiCharacterLegal(C,FLAGS) ( \
FsRtlTestAnsiCharacter((C), TRUE, FALSE, (FLAGS)) \
)
#define FsRtlTestAnsiCharacter(C, DEFAULT_RET, WILD_OK, FLAGS) ( \
((SCHAR)(C) < 0) ? DEFAULT_RET : \
FlagOn(FsRtlLegalAnsiCharacterArray[(int)(C)], \
(FLAGS) | \
((WILD_OK) ? FSRTL_WILD_CHARACTER : 0) ) \
)
#define FsRtlIsLeadDbcsCharacter(DBCS_CHAR) ( \
(BOOLEAN)((UCHAR)(DBCS_CHAR) < 0x80 ? FALSE : \
(NLS_MB_CODE_PAGE_TAG && \
(NLS_OEM_LEAD_BYTE_INFO[(UCHAR)(DBCS_CHAR)] != 0))) \
)
BOOLEAN STDCALL
FsRtlLookupLargeMcbEntry(IN PLARGE_MCB Mcb,
IN LONGLONG Vbn,
OUT PLONGLONG Lbn OPTIONAL,
OUT PLONGLONG SectorCountFromLbn OPTIONAL,
OUT PLONGLONG StartingLbn OPTIONAL,
OUT PLONGLONG SectorCountFromStartingLbn OPTIONAL,
OUT PULONG Index OPTIONAL);
BOOLEAN STDCALL
FsRtlLookupLastLargeMcbEntry(IN PLARGE_MCB Mcb,
OUT PLONGLONG Vbn,
OUT PLONGLONG Lbn);
BOOLEAN
STDCALL
FsRtlLookupLastLargeMcbEntryAndIndex (
IN PLARGE_MCB OpaqueMcb,
OUT PLONGLONG LargeVbn,
OUT PLONGLONG LargeLbn,
OUT PULONG Index
);
BOOLEAN STDCALL
FsRtlLookupLastMcbEntry (IN PMCB Mcb,
OUT PVBN Vbn,
OUT PLBN Lbn);
BOOLEAN STDCALL
FsRtlLookupMcbEntry (IN PMCB Mcb,
IN VBN Vbn,
OUT PLBN Lbn,
OUT PULONG SectorCount OPTIONAL,
OUT PULONG Index);
PFSRTL_PER_STREAM_CONTEXT
STDCALL
FsRtlLookupPerStreamContextInternal (
IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
IN PVOID OwnerId OPTIONAL,
IN PVOID InstanceId OPTIONAL
);
PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/
STDCALL
FsRtlLookupPerFileObjectContext (
IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
IN PVOID OwnerId OPTIONAL,
IN PVOID InstanceId OPTIONAL
);
BOOLEAN
STDCALL
FsRtlMdlRead (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN ULONG LockKey,
OUT PMDL *MdlChain,
OUT PIO_STATUS_BLOCK IoStatus
);
BOOLEAN
STDCALL
FsRtlMdlReadComplete (
IN PFILE_OBJECT FileObject,
IN OUT PMDL MdlChain
);
BOOLEAN
STDCALL
FsRtlMdlReadCompleteDev (
IN PFILE_OBJECT FileObject,
IN PMDL MdlChain,
IN PDEVICE_OBJECT DeviceObject
);
BOOLEAN
STDCALL
FsRtlMdlReadDev (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN ULONG LockKey,
OUT PMDL *MdlChain,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject
);
BOOLEAN
STDCALL
FsRtlMdlWriteComplete (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN PMDL MdlChain
);
BOOLEAN
STDCALL
FsRtlMdlWriteCompleteDev (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN PMDL MdlChain,
IN PDEVICE_OBJECT DeviceObject
);
VOID
STDCALL
FsRtlNotifyChangeDirectory (
IN PNOTIFY_SYNC NotifySync,
IN PVOID FsContext,
IN PSTRING FullDirectoryName,
IN PLIST_ENTRY NotifyList,
IN BOOLEAN WatchTree,
IN ULONG CompletionFilter,
IN PIRP NotifyIrp
);
VOID
STDCALL
FsRtlNotifyCleanup (
IN PNOTIFY_SYNC NotifySync,
IN PLIST_ENTRY NotifyList,
IN PVOID FsContext
);
typedef
BOOLEAN (*PCHECK_FOR_TRAVERSE_ACCESS) (
IN PVOID NotifyContext,
IN PVOID TargetContext,
IN PSECURITY_SUBJECT_CONTEXT SubjectContext
);
VOID
STDCALL
FsRtlNotifyFilterChangeDirectory (
IN PNOTIFY_SYNC NotifySync,
IN PLIST_ENTRY NotifyList,
IN PVOID FsContext,
IN PSTRING FullDirectoryName,
IN BOOLEAN WatchTree,
IN BOOLEAN IgnoreBuffer,
IN ULONG CompletionFilter,
IN PIRP NotifyIrp,
IN PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback OPTIONAL,
IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL,
IN PFILTER_REPORT_CHANGE FilterCallback OPTIONAL
);
VOID
STDCALL
FsRtlNotifyFilterReportChange (
IN PNOTIFY_SYNC NotifySync,
IN PLIST_ENTRY NotifyList,
IN PSTRING FullTargetName,
IN USHORT TargetNameOffset,
IN PSTRING StreamName OPTIONAL,
IN PSTRING NormalizedParentName OPTIONAL,
IN ULONG FilterMatch,
IN ULONG Action,
IN PVOID TargetContext,
IN PVOID FilterContext
);
VOID
STDCALL
FsRtlNotifyFullChangeDirectory (
IN PNOTIFY_SYNC NotifySync,
IN PLIST_ENTRY NotifyList,
IN PVOID FsContext,
IN PSTRING FullDirectoryName,
IN BOOLEAN WatchTree,
IN BOOLEAN IgnoreBuffer,
IN ULONG CompletionFilter,
IN PIRP NotifyIrp,
IN PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback OPTIONAL,
IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL
);
VOID
STDCALL
FsRtlNotifyFullReportChange (
IN PNOTIFY_SYNC NotifySync,
IN PLIST_ENTRY NotifyList,
IN PSTRING FullTargetName,
IN USHORT TargetNameOffset,
IN PSTRING StreamName OPTIONAL,
IN PSTRING NormalizedParentName OPTIONAL,
IN ULONG FilterMatch,
IN ULONG Action,
IN PVOID TargetContext
);
VOID
STDCALL
FsRtlNotifyUninitializeSync (
IN OUT PNOTIFY_SYNC NotifySync
);
VOID
STDCALL
FsRtlNotifyReportChange (
IN PNOTIFY_SYNC NotifySync,
IN PLIST_ENTRY NotifyList,
IN PSTRING FullTargetName,
IN PUSHORT FileNamePartLength,
IN ULONG FilterMatch
);
VOID STDCALL
FsRtlNotifyInitializeSync(IN OUT PNOTIFY_SYNC *NotifySync);
NTSTATUS STDCALL
FsRtlNotifyVolumeEvent(IN PFILE_OBJECT FileObject,
IN ULONG EventCode);
NTSTATUS STDCALL
FsRtlOplockFsctrl(IN POPLOCK Oplock,
IN PIRP Irp,
IN ULONG OpenCount);
BOOLEAN STDCALL
FsRtlOplockIsFastIoPossible(IN POPLOCK Oplock);
BOOLEAN
STDCALL
FsRtlPrepareMdlWrite (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN ULONG LockKey,
OUT PMDL *MdlChain,
OUT PIO_STATUS_BLOCK IoStatus
);
BOOLEAN
STDCALL
FsRtlPrepareMdlWriteDev (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN ULONG LockKey,
OUT PMDL *MdlChain,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject
);
NTSTATUS STDCALL
FsRtlNormalizeNtstatus(IN NTSTATUS NtStatusToNormalize,
IN NTSTATUS NormalizedNtStatus);
ULONG STDCALL
FsRtlNumberOfRunsInLargeMcb(IN PLARGE_MCB Mcb);
ULONG STDCALL
FsRtlNumberOfRunsInMcb (IN PMCB Mcb);
VOID
STDCALL
FsRtlPostPagingFileStackOverflow(IN PVOID Context,
IN PKEVENT Event,
IN PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine) ;
VOID
STDCALL
FsRtlPostStackOverflow (IN PVOID Context,
IN PKEVENT Event,
IN PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine) ;
BOOLEAN
STDCALL
FsRtlPrivateLock (
IN PFILE_LOCK FileLock,
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN PLARGE_INTEGER Length,
IN PEPROCESS Process,
IN ULONG Key,
IN BOOLEAN FailImmediately,
IN BOOLEAN ExclusiveLock,
OUT PIO_STATUS_BLOCK IoStatus,
IN PIRP Irp OPTIONAL,
IN PVOID Context,
IN BOOLEAN AlreadySynchronized
);
NTSTATUS
STDCALL
FsRtlProcessFileLock (
IN PFILE_LOCK FileLock,
IN PIRP Irp,
IN PVOID Context OPTIONAL
);
NTSTATUS
STDCALL
FsRtlRegisterFileSystemFilterCallbacks(IN PDRIVER_OBJECT FilterDriverObject,
IN PFS_FILTER_CALLBACKS Callbacks);
NTSTATUS STDCALL
FsRtlRegisterUncProvider(IN OUT PHANDLE Handle,
IN PUNICODE_STRING RedirectorDeviceName,
IN BOOLEAN MailslotsSupported);
VOID
STDCALL
FsRtlReleaseFile (
IN PFILE_OBJECT FileObject
);
VOID STDCALL
FsRtlRemoveLargeMcbEntry(IN PLARGE_MCB Mcb,
IN LONGLONG Vbn,
IN LONGLONG SectorCount);
VOID STDCALL
FsRtlRemoveMcbEntry (IN PMCB Mcb,
IN VBN Vbn,
IN ULONG SectorCount);
PFSRTL_PER_STREAM_CONTEXT
STDCALL
FsRtlRemovePerStreamContext (
IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
IN PVOID OwnerId OPTIONAL,
IN PVOID InstanceId OPTIONAL
);
PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/
STDCALL
FsRtlRemovePerFileObjectContext (
IN PFSRTL_ADVANCED_FCB_HEADER PerFileObjectContext,
IN PVOID OwnerId OPTIONAL,
IN PVOID InstanceId OPTIONAL
);
VOID
STDCALL
FsRtlResetLargeMcb (
IN PLARGE_MCB Mcb,
IN BOOLEAN SelfSynchronized
);
BOOLEAN STDCALL
FsRtlSplitLargeMcb(IN PLARGE_MCB Mcb,
IN LONGLONG Vbn,
IN LONGLONG Amount);
NTSTATUS
STDCALL
FsRtlSyncVolumes (
ULONG Unknown0,
ULONG Unknown1,
ULONG Unknown2
);
VOID
STDCALL
FsRtlTeardownPerStreamContexts (
IN PFSRTL_ADVANCED_FCB_HEADER AdvancedHeader
);
VOID STDCALL
FsRtlTruncateLargeMcb(IN PLARGE_MCB Mcb,
IN LONGLONG Vbn);
VOID STDCALL
FsRtlTruncateMcb (IN PMCB Mcb,
IN VBN Vbn);
VOID STDCALL
FsRtlUninitializeFileLock (IN PFILE_LOCK FileLock);
VOID STDCALL
FsRtlUninitializeLargeMcb(IN PLARGE_MCB Mcb);
VOID STDCALL
FsRtlUninitializeMcb (IN PMCB Mcb);
VOID STDCALL
FsRtlUninitializeOplock(IN POPLOCK Oplock);
#endif /* __INCLUDE_DDK_FSFUNCS_H */

View File

@@ -1,191 +0,0 @@
#ifndef __INCLUDE_DDK_FSTYPES_H
#define __INCLUDE_DDK_FSTYPES_H
/* $Id$ */
#ifndef __USE_W32API
typedef struct _FILE_LOCK_INFO {
LARGE_INTEGER StartingByte;
LARGE_INTEGER Length;
BOOLEAN ExclusiveLock;
ULONG Key;
PFILE_OBJECT FileObject;
PEPROCESS Process;
LARGE_INTEGER EndingByte;
} FILE_LOCK_INFO, *PFILE_LOCK_INFO;
typedef struct _FILE_LINK_INFORMATION {
BOOLEAN ReplaceIfExists;
HANDLE RootDirectory;
ULONG FileNameLength;
WCHAR FileName[1];
} FILE_LINK_INFORMATION, *PFILE_LINK_INFORMATION;
typedef struct _FILE_VALID_DATA_LENGTH_INFORMATION {
LARGE_INTEGER ValidDataLength;
} FILE_VALID_DATA_LENGTH_INFORMATION, *PFILE_VALID_DATA_LENGTH_INFORMATION;
typedef NTSTATUS (*PCOMPLETE_LOCK_IRP_ROUTINE) (
IN PVOID Context,
IN PIRP Irp
);
typedef VOID (*PFSRTL_STACK_OVERFLOW_ROUTINE) (
IN PVOID Context,
IN PKEVENT Event
);
typedef VOID (*PUNLOCK_ROUTINE) (
IN PVOID Context,
IN PFILE_LOCK_INFO FileLockInfo
);
typedef
BOOLEAN (*PFILTER_REPORT_CHANGE) (
IN PVOID NotifyContext,
IN PVOID FilterContext
);
typedef enum _FS_FILTER_SECTION_SYNC_TYPE {
SyncTypeOther = 0,
SyncTypeCreateSection
} FS_FILTER_SECTION_SYNC_TYPE, *PFS_FILTER_SECTION_SYNC_TYPE;
typedef union _FS_FILTER_PARAMETERS {
/* AcquireForModifiedPageWriter */
struct {
PLARGE_INTEGER EndingOffset;
} AcquireForModifiedPageWriter;
/* ReleaseForModifiedPageWriter */
struct {
PERESOURCE ResourceToRelease;
} ReleaseForModifiedPageWriter;
/* AcquireForSectionSynchronization */
struct {
FS_FILTER_SECTION_SYNC_TYPE SyncType;
ULONG PageProtection;
} AcquireForSectionSynchronization;
/* Other */
struct {
PVOID Argument1;
PVOID Argument2;
PVOID Argument3;
PVOID Argument4;
PVOID Argument5;
} Others;
} FS_FILTER_PARAMETERS, *PFS_FILTER_PARAMETERS;
typedef struct _FS_FILTER_CALLBACK_DATA {
ULONG SizeOfFsFilterCallbackData;
UCHAR Operation;
UCHAR Reserved;
struct _DEVICE_OBJECT *DeviceObject;
struct _FILE_OBJECT *FileObject;
FS_FILTER_PARAMETERS Parameters;
} FS_FILTER_CALLBACK_DATA, *PFS_FILTER_CALLBACK_DATA;
typedef
NTSTATUS
(*PFS_FILTER_CALLBACK) (
IN PFS_FILTER_CALLBACK_DATA Data,
OUT PVOID *CompletionContext
);
typedef
VOID
(*PFS_FILTER_COMPLETION_CALLBACK) (
IN PFS_FILTER_CALLBACK_DATA Data,
IN NTSTATUS OperationStatus,
IN PVOID CompletionContext
);
typedef struct _FS_FILTER_CALLBACKS {
ULONG SizeOfFsFilterCallbacks;
ULONG Reserved;
PFS_FILTER_CALLBACK PreAcquireForSectionSynchronization;
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForSectionSynchronization;
PFS_FILTER_CALLBACK PreReleaseForSectionSynchronization;
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForSectionSynchronization;
PFS_FILTER_CALLBACK PreAcquireForCcFlush;
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForCcFlush;
PFS_FILTER_CALLBACK PreReleaseForCcFlush;
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForCcFlush;
PFS_FILTER_CALLBACK PreAcquireForModifiedPageWriter;
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForModifiedPageWriter;
PFS_FILTER_CALLBACK PreReleaseForModifiedPageWriter;
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForModifiedPageWriter;
} FS_FILTER_CALLBACKS, *PFS_FILTER_CALLBACKS;
typedef struct _FILE_LOCK {
PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine;
PUNLOCK_ROUTINE UnlockRoutine;
BOOLEAN FastIoIsQuestionable;
BOOLEAN Pad[3];
PVOID LockInformation;
FILE_LOCK_INFO LastReturnedLockInfo;
PVOID LastReturnedLock;
} FILE_LOCK, *PFILE_LOCK;
typedef struct _TUNNEL {
FAST_MUTEX Mutex;
PRTL_SPLAY_LINKS Cache;
LIST_ENTRY TimerQueue;
USHORT NumEntries;
} TUNNEL, *PTUNNEL;
typedef struct _NOTIFY_SYNC
{
DWORD Unknown0; /* 0x00 */
DWORD Unknown1; /* 0x04 */
DWORD Unknown2; /* 0x08 */
WORD Unknown3; /* 0x0c */
WORD Unknown4; /* 0x0e */
DWORD Unknown5; /* 0x10 */
DWORD Unknown6; /* 0x14 */
DWORD Unknown7; /* 0x18 */
DWORD Unknown8; /* 0x1c */
DWORD Unknown9; /* 0x20 */
DWORD Unknown10; /* 0x24 */
} NOTIFY_SYNC, * PNOTIFY_SYNC;
typedef struct _FSRTL_ADVANCED_FCB_HEADER {
FSRTL_COMMON_FCB_HEADER Header;
PFAST_MUTEX FastMutex;
LIST_ENTRY FilterContexts;
} FSRTL_ADVANCED_FCB_HEADER;
typedef FSRTL_ADVANCED_FCB_HEADER *PFSRTL_ADVANCED_FCB_HEADER;
typedef struct _FSRTL_PER_STREAM_CONTEXT {
LIST_ENTRY Links;
PVOID OwnerId;
PVOID InstanceId;
PFREE_FUNCTION FreeCallback;
} FSRTL_PER_STREAM_CONTEXT, *PFSRTL_PER_STREAM_CONTEXT;
typedef VOID
(*POPLOCK_WAIT_COMPLETE_ROUTINE)(PVOID Context,
PIRP Irp);
typedef VOID
(*POPLOCK_FS_PREPOST_IRP)(PVOID Context,
PIRP Irp);
typedef PVOID OPLOCK, *POPLOCK;
#endif /* __USE_W32API */
#endif /* __INCLUDE_DDK_FSFUNCS_H */

View File

@@ -1,291 +0,0 @@
#ifndef __INCLUDE_DDK_HALFUNCS_H
#define __INCLUDE_DDK_HALFUNCS_H
/* $Id$ */
#include <ntos/haltypes.h>
#include <ddk/iotypes.h>
VOID STDCALL
HalAcquireDisplayOwnership(IN PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters);
NTSTATUS STDCALL
HalAdjustResourceList(PCM_RESOURCE_LIST Resources);
NTSTATUS STDCALL
HalAllocateAdapterChannel(IN PADAPTER_OBJECT AdapterObject,
IN PWAIT_CONTEXT_BLOCK WaitContextBlock,
IN ULONG NumberOfMapRegisters,
IN PDRIVER_CONTROL ExecutionRoutine);
PVOID STDCALL
HalAllocateCommonBuffer(PADAPTER_OBJECT AdapterObject,
ULONG Length,
PPHYSICAL_ADDRESS LogicalAddress,
BOOLEAN CacheEnabled);
PVOID STDCALL
HalAllocateCrashDumpRegisters(IN PADAPTER_OBJECT AdapterObject,
IN OUT PULONG NumberOfMapRegisters);
NTSTATUS STDCALL
HalAssignSlotResources(
PUNICODE_STRING RegistryPath,
PUNICODE_STRING DriverClassName,
PDRIVER_OBJECT DriverObject,
PDEVICE_OBJECT DeviceObject,
INTERFACE_TYPE BusType,
ULONG BusNumber,
ULONG SlotNumber,
PCM_RESOURCE_LIST *AllocatedResources
);
VOID STDCALL
HalCalibratePerformanceCounter(ULONG Count);
/*
FASTCALL
HalClearSoftwareInterrupt
*/
VOID STDCALL
HalDisplayString(IN PCH String);
/*
* HalExamineMBR() is not exported explicitly.
* It is exported by the HalDispatchTable.
*
* VOID
* HalExamineMBR(PDEVICE_OBJECT DeviceObject,
* ULONG SectorSize,
* ULONG MBRTypeIdentifier,
* PVOID Buffer);
*/
BOOLEAN STDCALL
HalFlushCommonBuffer(ULONG Unknown1,
ULONG Unknown2,
ULONG Unknown3,
ULONG Unknown4,
ULONG Unknown5,
ULONG Unknown6,
ULONG Unknown7,
ULONG Unknown8);
VOID STDCALL
HalFreeCommonBuffer(PADAPTER_OBJECT AdapterObject,
ULONG Length,
PHYSICAL_ADDRESS LogicalAddress,
PVOID VirtualAddress,
BOOLEAN CacheEnabled);
PADAPTER_OBJECT STDCALL
HalGetAdapter(PDEVICE_DESCRIPTION DeviceDescription,
PULONG NumberOfMapRegisters);
ULONG STDCALL
HalGetBusData(BUS_DATA_TYPE BusDataType,
ULONG BusNumber,
ULONG SlotNumber,
PVOID Buffer,
ULONG Length);
ULONG STDCALL
HalGetBusDataByOffset(BUS_DATA_TYPE BusDataType,
ULONG BusNumber,
ULONG SlotNumber,
PVOID Buffer,
ULONG Offset,
ULONG Length);
/* Is this function really exported ??
ULONG
HalGetDmaAlignmentRequirement(VOID);
NTOSAPI
DDKAPI
*/
ULONG STDCALL
HalGetDmaAlignmentRequirement(
VOID);
BOOLEAN STDCALL
HalGetEnvironmentVariable(IN PCH Name,
OUT PCH Value,
IN USHORT ValueLength);
ULONG STDCALL
HalGetInterruptVector(INTERFACE_TYPE InterfaceType,
ULONG BusNumber,
ULONG BusInterruptLevel,
ULONG BusInterruptVector,
PKIRQL Irql,
PKAFFINITY Affinity);
BOOLEAN STDCALL
HalMakeBeep(ULONG Frequency);
VOID STDCALL
HalQueryDisplayParameters(PULONG DispSizeX,
PULONG DispSizeY,
PULONG CursorPosX,
PULONG CursorPosY);
VOID STDCALL
HalQueryRealTimeClock(PTIME_FIELDS Time);
/*
* HalQuerySystemInformation() is not exported explicitly.
* It is exported by the HalDispatchTable.
*
* VOID
* HalQuerySystemInformation(VOID);
*/
ULONG STDCALL
HalReadDmaCounter(PADAPTER_OBJECT AdapterObject);
VOID STDCALL
HalRequestIpi(ULONG Unknown);
/*
FASTCALL
HalRequestSoftwareInterrupt
*/
ULONG STDCALL
HalSetBusData(BUS_DATA_TYPE BusDataType,
ULONG BusNumber,
ULONG SlotNumber,
PVOID Buffer,
ULONG Length);
ULONG STDCALL
HalSetBusDataByOffset(BUS_DATA_TYPE BusDataType,
ULONG BusNumber,
ULONG SlotNumber,
PVOID Buffer,
ULONG Offset,
ULONG Length);
VOID STDCALL
HalSetDisplayParameters(ULONG CursorPosX,
ULONG CursorPosY);
BOOLEAN STDCALL
HalSetEnvironmentVariable(IN PCH Name,
IN PCH Value);
/*
HalSetProfileInterval
*/
VOID STDCALL
HalSetRealTimeClock(PTIME_FIELDS Time);
/*
HalSetTimeIncrement
*/
BOOLEAN STDCALL
HalStartNextProcessor(ULONG Unknown1,
ULONG Unknown2);
/*
HalStartProfileInterrupt
*/
/*
HalStopProfileInterrupt
*/
ULONG FASTCALL
HalSystemVectorDispatchEntry(ULONG Unknown1,
ULONG Unknown2,
ULONG Unknown3);
BOOLEAN STDCALL
HalTranslateBusAddress(INTERFACE_TYPE InterfaceType,
ULONG BusNumber,
PHYSICAL_ADDRESS BusAddress,
PULONG AddressSpace,
PPHYSICAL_ADDRESS TranslatedAddress);
/*
* Kernel debugger support functions
*/
BOOLEAN STDCALL
KdPortInitialize(PKD_PORT_INFORMATION PortInformation,
DWORD Unknown1,
DWORD Unknown2);
BOOLEAN STDCALL
KdPortGetByte(PUCHAR ByteRecieved);
BOOLEAN STDCALL
KdPortPollByte(PUCHAR ByteRecieved);
VOID STDCALL
KdPortPutByte(UCHAR ByteToSend);
/*
* Port I/O functions
*/
VOID STDCALL
READ_PORT_BUFFER_UCHAR(PUCHAR Port,
PUCHAR Value,
ULONG Count);
VOID STDCALL
READ_PORT_BUFFER_ULONG(PULONG Port,
PULONG Value,
ULONG Count);
VOID STDCALL
READ_PORT_BUFFER_USHORT(PUSHORT Port,
PUSHORT Value,
ULONG Count);
UCHAR STDCALL
READ_PORT_UCHAR(PUCHAR Port);
ULONG STDCALL
READ_PORT_ULONG(PULONG Port);
USHORT STDCALL
READ_PORT_USHORT(PUSHORT Port);
VOID STDCALL
WRITE_PORT_BUFFER_UCHAR(PUCHAR Port,
PUCHAR Value,
ULONG Count);
VOID STDCALL
WRITE_PORT_BUFFER_ULONG(PULONG Port,
PULONG Value,
ULONG Count);
VOID STDCALL
WRITE_PORT_BUFFER_USHORT(PUSHORT Port,
PUSHORT Value,
ULONG Count);
VOID STDCALL
WRITE_PORT_UCHAR(PUCHAR Port,
UCHAR Value);
VOID STDCALL
WRITE_PORT_ULONG(PULONG Port,
ULONG Value);
VOID STDCALL
WRITE_PORT_USHORT(PUSHORT Port,
USHORT Value);
#endif /* __INCLUDE_DDK_HALDDK_H */
/* EOF */

View File

@@ -1,7 +0,0 @@
/*
* PURPOSE: The number of device specific level levels
*/
#define NR_DEVICE_SPECIFIC_LEVELS (16)

View File

@@ -1,7 +0,0 @@
#ifndef __INCLUDE_DDK_I386_PAGESIZE_H
#define __INCLUDE_DDK_I386_PAGESIZE_H
#define PAGE_SIZE (4096)
#define PAGE_SHIFT 12L
#endif /* __INCLUDE_DDK_I386_PAGESIZE_H */

View File

@@ -1,23 +0,0 @@
#ifndef __INCLUDE_DDK_IOCTRL_H
#define __INCLUDE_DDK_IOCTRL_H
#define CTL_CODE(Dev, Func, Meth, Acc) ( ((Dev)<<16) | ((Acc)<<14) | ((Func)<<2) | (Meth))
/*#define DEVICE_TYPE_FROM_CTL_CODE(ctlCode) (((ULONG)(ctlCode&0xffff0000))>>16) */
/*#define IO_METHOD_FROM_CTL_CODE(ctlCode) (ctlCode&0x00000003) */
/* IOCTL Parameter buffering methods */
#define METHOD_BUFFERED 0
#define METHOD_IN_DIRECT 1
#define METHOD_OUT_DIRECT 2
#define METHOD_NEITHER 3
/* IOCTL File access type */
#define FILE_ANY_ACCESS 0
#define FILE_READ_ACCESS 1
#define FILE_WRITE_ACCESS 2
#endif /* __INCLUDE_DDK_IOCTRL_H */

View File

@@ -1,515 +0,0 @@
#ifndef __INCLUDE_DDK_IODEF_H
#define __INCLUDE_DDK_IODEF_H
typedef enum _IO_QUERY_DEVICE_DESCRIPTION
{
IoQueryDeviceIdentifier = 0,
IoQueryDeviceConfigurationData,
IoQueryDeviceComponentInformation,
IoQueryDeviceDataFormatMaximum,
} IO_QUERY_DEVICE_DESCRIPTION, *PIO_QUERY_DEVICE_DESCRIPTION;
typedef enum _CONFIGURATION_TYPE
{
ArcSystem,
CentralProcessor,
FloatingPointProcessor,
PrimaryIcache,
PrimaryDcache,
SecondaryIcache,
SecondaryDcache,
SecondaryCache,
EisaAdapter,
TcAdapter,
ScsiAdapter,
DtiAdapter,
MultiFunctionAdapter,
DiskController,
TapeController,
CdromController,
WorkController,
SerialController,
NetworkController,
DisplayController,
ParallelController,
PointerController,
KeyboardController,
AudioController,
OtherController,
DiskPeripheral,
FloppyDiskPeripheral,
TapePeripheral,
ModemPeripheral,
MonitorPeripheral,
PrinterPeripheral,
PointerPeripheral,
KeyboardPeripheral,
TerminalPeripheral,
OtherPeripheral,
LinePeripheral,
NetworkPeripheral,
SystemMemory,
DockingInformation,
RealModeIrqRoutingTable,
RealModePCIEnumeration,
MaximumType
} CONFIGURATION_TYPE, *PCONFIGURATION_TYPE;
typedef int CM_RESOURCE_TYPE;
#define CmResourceTypeNull 0
#define CmResourceTypePort 1
#define CmResourceTypeInterrupt 2
#define CmResourceTypeMemory 3
#define CmResourceTypeDma 4
#define CmResourceTypeDeviceSpecific 5
#define CmResourceTypeBusNumber 6
#define CmResourceTypeMaximum 7
typedef enum _CM_SHARE_DISPOSITION
{
CmResourceShareUndetermined = 0,
CmResourceShareDeviceExclusive,
CmResourceShareDriverExclusive,
CmResourceShareShared,
} CM_SHARE_DISPOSITION;
#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0
#define CM_RESOURCE_INTERRUPT_LATCHED 1
#define CM_RESOURCE_MEMORY_READ_WRITE 0x0000
#define CM_RESOURCE_MEMORY_READ_ONLY 0x0001
#define CM_RESOURCE_MEMORY_WRITE_ONLY 0x0002
#define CM_RESOURCE_MEMORY_PREFETCHABLE 0x0004
#define CM_RESOURCE_MEMORY_COMBINEDWRITE 0x0008
#define CM_RESOURCE_MEMORY_24 0x0010
#define CM_RESOURCE_PORT_MEMORY 0x0000
#define CM_RESOURCE_PORT_IO 0x0001
#define CM_RESOURCE_PORT_FORWARD_FIRST_256_OF_EACH_1024 0x0002
#define CM_RESOURCE_PORT_10_BIT_DECODE 0x0004
#define CM_RESOURCE_PORT_12_BIT_DECODE 0x0008
#define CM_RESOURCE_PORT_16_BIT_DECODE 0x0010
#define CM_RESOURCE_PORT_POSITIVE_DECODE 0x0020
#define CM_RESOURCE_PORT_PASSIVE_DECODE 0x0040
#define CM_RESOURCE_PORT_WINDOW_DECODE 0x0080
#define CM_RESOURCE_DMA_8 0x0000
#define CM_RESOURCE_DMA_16 0x0001
#define CM_RESOURCE_DMA_32 0x0002
#define CM_RESOURCE_DMA_8_AND_16 0x0004
#define CM_RESOURCE_DMA_BUS_MASTER 0x0008
#define CM_RESOURCE_DMA_TYPE_A 0x0010
#define CM_RESOURCE_DMA_TYPE_B 0x0020
#define CM_RESOURCE_DMA_TYPE_F 0x0040
/*
* PURPOSE: Irp flags
*/
enum
{
IRP_NOCACHE = 0x1,
IRP_PAGING_IO = 0x2,
IRP_MOUNT_COMPLETION = 0x2,
IRP_SYNCHRONOUS_API = 0x4,
IRP_ASSOCIATED_IRP = 0x8,
IRP_BUFFERED_IO = 0x10,
IRP_DEALLOCATE_BUFFER = 0x20,
IRP_INPUT_OPERATION = 0x40,
IRP_SYNCHRONOUS_PAGING_IO = 0x40,
IRP_CREATE_OPERATION = 0x80,
IRP_READ_OPERATION = 0x100,
IRP_WRITE_OPERATION = 0x200,
IRP_CLOSE_OPERATION = 0x400,
IRP_DEFER_IO_COMPLETION = 0x800,
IRP_OB_QUERY_NAME = 0x1000,
IRP_HOLD_DEVICE_QUEUE = 0x2000,
IRP_RETRY_IO_COMPLETION = 0x4000
};
#define SL_FORCE_ACCESS_CHECK (0x1)
#define SL_OPEN_PAGING_FILE (0x2)
#define SL_OPEN_TARGET_DIRECTORY (0x4)
#define SL_CASE_SENSITIVE (0x80)
#define SL_KEY_SPECIFIED (0x1)
#define SL_OVERRIDE_VERIFY_VOLUME (0x2)
#define SL_WRITE_THROUGHT (0x4)
#define SL_FT_SEQUENTIAL_WRITE (0x8)
#define SL_FAIL_IMMEDIATELY (0x1)
#define SL_EXCLUSIVE_LOCK (0x2)
#define SL_WATCH_TREE (0x1)
#define SL_RESTART_SCAN (0x1)
#define SL_RETURN_SINGLE_ENTRY (0x2)
#define SL_INDEX_SPECIFIED (0x4)
#define SL_ALLOW_RAW_MOUNT (0x1)
#define SL_PENDING_RETURNED 0x01
#define SL_INVOKE_ON_CANCEL 0x20
#define SL_INVOKE_ON_SUCCESS 0x40
#define SL_INVOKE_ON_ERROR 0x80
/*
* IoCreateFile options
*/
#define IO_NO_PARAMETER_CHECKING 0x0100
#define IO_CHECK_CREATE_PARAMETERS 0x0200
/*
* Possible flags for the device object flags
*/
#define DO_UNLOAD_PENDING 0x00000001
#define DO_VERIFY_VOLUME 0x00000002
#define DO_BUFFERED_IO 0x00000004
#define DO_EXCLUSIVE 0x00000008
#define DO_DIRECT_IO 0x00000010
#define DO_MAP_IO_BUFFER 0x00000020
#define DO_DEVICE_HAS_NAME 0x00000040
#define DO_DEVICE_INITIALIZING 0x00000080
#define DO_SYSTEM_BOOT_PARTITION 0x00000100
#define DO_LONG_TERM_REQUESTS 0x00000200
#define DO_NEVER_LAST_DEVICE 0x00000400
#define DO_SHUTDOWN_REGISTERED 0x00000800
#define DO_BUS_ENUMERATED_DEVICE 0x00001000
#define DO_POWER_PAGABLE 0x00002000
#define DO_POWER_INRUSH 0x00004000
#define DO_LOW_PRIORITY_FILESYSTEM 0x00010000
/*
* Possible device types
*/
#define FILE_DEVICE_BEEP 0x00000001
#define FILE_DEVICE_CD_ROM 0x00000002
#define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003
#define FILE_DEVICE_CONTROLLER 0x00000004
#define FILE_DEVICE_DATALINK 0x00000005
#define FILE_DEVICE_DFS 0x00000006
#define FILE_DEVICE_DISK 0x00000007
#define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008
#define FILE_DEVICE_FILE_SYSTEM 0x00000009
#define FILE_DEVICE_INPORT_PORT 0x0000000a
#define FILE_DEVICE_KEYBOARD 0x0000000b
#define FILE_DEVICE_MAILSLOT 0x0000000c
#define FILE_DEVICE_MIDI_IN 0x0000000d
#define FILE_DEVICE_MIDI_OUT 0x0000000e
#define FILE_DEVICE_MOUSE 0x0000000f
#define FILE_DEVICE_MULTI_UNC_PROVIDER 0x00000010
#define FILE_DEVICE_NAMED_PIPE 0x00000011
#define FILE_DEVICE_NETWORK 0x00000012
#define FILE_DEVICE_NETWORK_BROWSER 0x00000013
#define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014
#define FILE_DEVICE_NULL 0x00000015
#define FILE_DEVICE_PARALLEL_PORT 0x00000016
#define FILE_DEVICE_PHYSICAL_NETCARD 0x00000017
#define FILE_DEVICE_PRINTER 0x00000018
#define FILE_DEVICE_SCANNER 0x00000019
#define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001a
#define FILE_DEVICE_SERIAL_PORT 0x0000001b
#define FILE_DEVICE_SCREEN 0x0000001c
#define FILE_DEVICE_SOUND 0x0000001d
#define FILE_DEVICE_STREAMS 0x0000001e
#define FILE_DEVICE_TAPE 0x0000001f
#define FILE_DEVICE_TAPE_FILE_SYSTEM 0x00000020
#define FILE_DEVICE_TRANSPORT 0x00000021
#define FILE_DEVICE_UNKNOWN 0x00000022
#define FILE_DEVICE_VIDEO 0x00000023
#define FILE_DEVICE_VIRTUAL_DISK 0x00000024
#define FILE_DEVICE_WAVE_IN 0x00000025
#define FILE_DEVICE_WAVE_OUT 0x00000026
#define FILE_DEVICE_8042_PORT 0x00000027
#define FILE_DEVICE_NETWORK_REDIRECTOR 0x00000028
#define FILE_DEVICE_BATTERY 0x00000029
#define FILE_DEVICE_BUS_EXTENDER 0x0000002a
#define FILE_DEVICE_MODEM 0x0000002b
#define FILE_DEVICE_VDM 0x0000002c
#define FILE_DEVICE_MASS_STORAGE 0x0000002d
#define FILE_DEVICE_SMB 0x0000002e
#define FILE_DEVICE_KS 0x0000002f
#define FILE_DEVICE_CHANGER 0x00000030
#define FILE_DEVICE_SMARTCARD 0x00000031
#define FILE_DEVICE_ACPI 0x00000032
#define FILE_DEVICE_DVD 0x00000033
#define FILE_DEVICE_FULLSCREEN_VIDEO 0x00000034
#define FILE_DEVICE_DFS_FILE_SYSTEM 0x00000035
#define FILE_DEVICE_DFS_VOLUME 0x00000036
#define FILE_DEVICE_SERENUM 0x00000037
#define FILE_DEVICE_TERMSRV 0x00000038
#define FILE_DEVICE_KSEC 0x00000039
#define FILE_REMOVABLE_MEDIA 0x00000001
#define FILE_READ_ONLY_DEVICE 0x00000002
#define FILE_FLOPPY_DISKETTE 0x00000004
#define FILE_WRITE_ONCE_MEDIA 0x00000008
#define FILE_REMOTE_DEVICE 0x00000010
#define FILE_DEVICE_IS_MOUNTED 0x00000020
#define FILE_VIRTUAL_VOLUME 0x00000040
#define FILE_AUTOGENERATED_DEVICE_NAME 0x00000080
#define FILE_DEVICE_SECURE_OPEN 0x00000100
/*
* PURPOSE: Bus types
*/
typedef enum _INTERFACE_TYPE
{
InterfaceTypeUndefined = -1,
Internal,
Isa,
Eisa,
MicroChannel,
TurboChannel,
PCIBus,
VMEBus,
NuBus,
PCMCIABus,
CBus,
MPIBus,
MPSABus,
ProcessorInternal,
InternalPowerBus,
PNPISABus,
MaximumInterfaceType
} INTERFACE_TYPE, *PINTERFACE_TYPE;
enum
{
IRP_MJ_CREATE,
IRP_MJ_CREATE_NAMED_PIPE,
IRP_MJ_CLOSE,
IRP_MJ_READ,
IRP_MJ_WRITE,
IRP_MJ_QUERY_INFORMATION,
IRP_MJ_SET_INFORMATION,
IRP_MJ_QUERY_EA,
IRP_MJ_SET_EA,
IRP_MJ_FLUSH_BUFFERS,
IRP_MJ_QUERY_VOLUME_INFORMATION,
IRP_MJ_SET_VOLUME_INFORMATION,
IRP_MJ_DIRECTORY_CONTROL,
IRP_MJ_FILE_SYSTEM_CONTROL,
IRP_MJ_DEVICE_CONTROL,
IRP_MJ_INTERNAL_DEVICE_CONTROL,
IRP_MJ_SHUTDOWN,
IRP_MJ_LOCK_CONTROL,
IRP_MJ_CLEANUP,
IRP_MJ_CREATE_MAILSLOT,
IRP_MJ_QUERY_SECURITY,
IRP_MJ_SET_SECURITY,
IRP_MJ_POWER,
IRP_MJ_SYSTEM_CONTROL,
IRP_MJ_DEVICE_CHANGE,
IRP_MJ_QUERY_QUOTA,
IRP_MJ_SET_QUOTA,
IRP_MJ_PNP,
IRP_MJ_MAXIMUM_FUNCTION,
};
#define IRP_MJ_SCSI IRP_MJ_INTERNAL_DEVICE_CONTROL
/*
* Minor function numbers for IRP_MJ_LOCK_CONTROL
*/
#define IRP_MN_LOCK 0x01
#define IRP_MN_UNLOCK_SINGLE 0x02
#define IRP_MN_UNLOCK_ALL 0x03
#define IRP_MN_UNLOCK_ALL_BY_KEY 0x04
/*
* Minor function numbers for IRP_MJ_FILE_SYSTEM_CONTROL
*/
#define IRP_MN_USER_FS_REQUEST 0x00
#define IRP_MN_MOUNT_VOLUME 0x01
#define IRP_MN_VERIFY_VOLUME 0x02
#define IRP_MN_LOAD_FILE_SYSTEM 0x03
/*
* Minor function numbers for IRP_MJ_SCSI
*/
#define IRP_MN_SCSI_CLASS 0x01
/*
* Minor function codes for IRP_MJ_POWER
*/
#define IRP_MN_WAIT_WAKE 0x00
#define IRP_MN_POWER_SEQUENCE 0x01
#define IRP_MN_SET_POWER 0x02
#define IRP_MN_QUERY_POWER 0x03
/*
* Minor function codes for IRP_MJ_PNP
*/
#define IRP_MN_START_DEVICE 0x00
#define IRP_MN_QUERY_REMOVE_DEVICE 0x01
#define IRP_MN_REMOVE_DEVICE 0x02
#define IRP_MN_CANCEL_REMOVE_DEVICE 0x03
#define IRP_MN_STOP_DEVICE 0x04
#define IRP_MN_QUERY_STOP_DEVICE 0x05
#define IRP_MN_CANCEL_STOP_DEVICE 0x06
#define IRP_MN_QUERY_DEVICE_RELATIONS 0x07
#define IRP_MN_QUERY_INTERFACE 0x08
#define IRP_MN_QUERY_CAPABILITIES 0x09
#define IRP_MN_QUERY_RESOURCES 0x0A
#define IRP_MN_QUERY_RESOURCE_REQUIREMENTS 0x0B
#define IRP_MN_QUERY_DEVICE_TEXT 0x0C
#define IRP_MN_FILTER_RESOURCE_REQUIREMENTS 0x0D
#define IRP_MN_READ_CONFIG 0x0F
#define IRP_MN_WRITE_CONFIG 0x10
#define IRP_MN_EJECT 0x11
#define IRP_MN_SET_LOCK 0x12
#define IRP_MN_QUERY_ID 0x13
#define IRP_MN_QUERY_PNP_DEVICE_STATE 0x14
#define IRP_MN_QUERY_BUS_INFORMATION 0x15
#define IRP_MN_DEVICE_USAGE_NOTIFICATION 0x16
#define IRP_MN_SURPRISE_REMOVAL 0x17
#define IRP_MN_QUERY_LEGACY_BUS_INFORMATION 0x18
/*
* Priority increments
*/
#define EVENT_INCREMENT 1
#define IO_NO_INCREMENT 0
#define IO_CD_ROM_INCREMENT 1
#define IO_DISK_INCREMENT 4
#define IO_KEYBOARD_INCREMENT 6
#define IO_MAILSLOT_INCREMENT 2
#define IO_MOUSE_INCREMENT 6
#define IO_NAMED_PIPE_INCREMENT 2
#define IO_NETWORK_INCREMENT 2
#define IO_PARALLEL_INCREMENT 1
#define IO_SERIAL_INCREMENT 2
#define IO_SOUND_INCREMENT 8
#define IO_VIDEO_INCREMENT 1
#define MUTANT_INCREMENT 1
#define SEMAPHORE_INCREMENT 1
#define FILE_BYTE_ALIGNMENT 0x00000000
#define FILE_WORD_ALIGNMENT 0x00000001
#define FILE_LONG_ALIGNMENT 0x00000003
#define FILE_QUAD_ALIGNMENT 0x00000007
#define FILE_OCTA_ALIGNMENT 0x0000000f
#define FILE_32_BYTE_ALIGNMENT 0x0000001f
#define FILE_64_BYTE_ALIGNMENT 0x0000003f
#define FILE_128_BYTE_ALIGNMENT 0x0000007f
#define FILE_256_BYTE_ALIGNMENT 0x000000ff
#define FILE_512_BYTE_ALIGNMENT 0x000001ff
/*
* File disposition values
*/
#define FILE_SUPERSEDED 0x0000
#define FILE_OPENED 0x0001
#define FILE_CREATED 0x0002
#define FILE_OVERWRITTEN 0x0003
#define FILE_EXISTS 0x0004
#define FILE_DOES_NOT_EXIST 0x0005
/*
* file creation flags
*/
#define FILE_DIRECTORY_FILE 0x00000001
#define FILE_WRITE_THROUGH 0x00000002
#define FILE_SEQUENTIAL_ONLY 0x00000004
#define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008
#define FILE_SYNCHRONOUS_IO_ALERT 0x00000010
#define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020
#define FILE_NON_DIRECTORY_FILE 0x00000040
#define FILE_CREATE_TREE_CONNECTION 0x00000080
#define FILE_COMPLETE_IF_OPLOCKED 0x00000100
#define FILE_NO_EA_KNOWLEDGE 0x00000200
#define FILE_OPEN_FOR_RECOVERY 0x00000400
#define FILE_RANDOM_ACCESS 0x00000800
#define FILE_DELETE_ON_CLOSE 0x00001000
#define FILE_OPEN_BY_FILE_ID 0x00002000
#define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000
#define FILE_NO_COMPRESSION 0x00008000
#define FILE_RESERVE_OPFILTER 0x00100000
#define FILE_TRANSACTED_MODE 0x00200000
#define FILE_OPEN_OFFLINE_FILE 0x00400000
#define FILE_VALID_OPTION_FLAGS 0x007fffff
#define FILE_VALID_PIPE_OPTION_FLAGS 0x00000032
#define FILE_VALID_MAILSLOT_OPTION_FLAGS 0x00000032
#define FILE_VALID_SET_FLAGS 0x00001036
#define FILE_OPEN_REPARSE_POINT 0x00200000
/*
* special ByteOffset values
*/
#define FILE_WRITE_TO_END_OF_FILE 0xffffffff
#define FILE_USE_FILE_POINTER_POSITION 0xfffffffe
typedef ULONG FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS;
/*
* file system information class values
*/
#define FileFsVolumeInformation 1
#define FileFsLabelInformation 2
#define FileFsSizeInformation 3
#define FileFsDeviceInformation 4
#define FileFsAttributeInformation 5
#define FileFsControlInformation 6
#define FileFsQuotaQueryInformation 7
#define FileFsQuotaSetInformation 8
#define FileFsMaximumInformation 9
#define IRP_MN_QUERY_DIRECTORY 0x01
#define IRP_MN_NOTIFY_CHANGE_DIRECTORY 0x02
typedef struct _FILE_QUOTA_INFORMATION {
ULONG NextEntryOffset;
ULONG SidLength;
LARGE_INTEGER ChangeTime;
LARGE_INTEGER QuotaUsed;
LARGE_INTEGER QuotaThreshold;
LARGE_INTEGER QuotaLimit;
LARGE_INTEGER Sid;
} FILE_QUOTA_INFORMATION, *PFILE_QUOTA_INFORMATION;
/*
* Floppy device data type
*/
typedef struct _CM_FLOPPY_DEVICE_DATA
{
USHORT Version;
USHORT Revision;
CHAR Size[8];
ULONG MaxDensity;
ULONG MountDensity;
UCHAR StepRateHeadUnloadTime;
UCHAR HeadLoadTime;
UCHAR MotorOffTime;
UCHAR SectorLengthCode;
UCHAR SectorPerTrack;
UCHAR ReadWriteGapLength;
UCHAR DataTransferLength;
UCHAR FormatGapLength;
UCHAR FormatFillCharacter;
UCHAR HeadSettleTime;
UCHAR MotorSettleTime;
UCHAR MaximumTrackValue;
UCHAR DataTransferRate;
} CM_FLOPPY_DEVICE_DATA, *PCM_FLOPPY_DEVICE_DATA;
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,67 +0,0 @@
#ifndef __INCLUDE_DDK_KEDEF_H
#define __INCLUDE_DDK_KEDEF_H
typedef enum _KBUGCHECK_BUFFER_DUMP_STATE
{
BufferEmpty,
BufferInserted,
BufferStarted,
BufferFinished,
BufferIncomplete
}KBUGCHECK_BUFFER_DUMP_STATE;
typedef enum _KINTERRUPT_MODE
{
LevelSensitive,
Latched,
} KINTERRUPT_MODE;
/*
* PURPOSE: DPC importance
*/
typedef enum _KDPC_IMPORTANCE
{
LowImportance,
MediumImportance,
HighImportance
} KDPC_IMPORTANCE;
typedef enum _EVENT_TYPE
{
NotificationEvent,
SynchronizationEvent,
} EVENT_TYPE;
typedef enum _KWAIT_REASON
{
Executive,
FreePage,
PageIn,
PoolAllocation,
DelayExecution,
Suspended,
UserRequest,
WrExecutive,
WrFreePage,
WrPageIn,
WrPoolAllocation,
WrDelayExecution,
WrSuspended,
WrUserRequest,
WrEventPair,
WrQueue,
WrLpcReceive,
WrLpcReply,
WrVirtualMemory,
WrPageOut,
WrRendezvous,
Spare2,
WrGuardedMutex,
Spare4,
Spare5,
Spare6,
WrKernel,
MaximumWaitReason,
} KWAIT_REASON;
#endif

View File

@@ -1,856 +0,0 @@
#ifndef __INCLUDE_DDK_KEFUNCS_H
#define __INCLUDE_DDK_KEFUNCS_H
#define KEBUGCHECK(a) DbgPrint("KeBugCheck at %s:%i\n",__FILE__,__LINE__), KeBugCheck(a)
/* KERNEL FUNCTIONS ********************************************************/
NTSTATUS
STDCALL
KeRestoreFloatingPointState(
IN PKFLOATING_SAVE FloatSave);
NTSTATUS
STDCALL
KeSaveFloatingPointState(
OUT PKFLOATING_SAVE FloatSave);
#ifndef KeFlushIoBuffers
#define KeFlushIoBuffers(Mdl, ReadOperation, DmaOperation)
#endif
VOID STDCALL KeAttachProcess(struct _KPROCESS *Process);
VOID FASTCALL KiAcquireSpinLock(PKSPIN_LOCK SpinLock);
VOID FASTCALL KiReleaseSpinLock(PKSPIN_LOCK SpinLock);
VOID KeDrainApcQueue(VOID);
struct _KPROCESS* STDCALL KeGetCurrentProcess(VOID);
/*
* FUNCTION: Acquires a spinlock so the caller can synchronize access to
* data
* ARGUMENTS:
* SpinLock = Initialized spinlock
* OldIrql (OUT) = Set the previous irql on return
*/
VOID STDCALL KeAcquireSpinLock (PKSPIN_LOCK SpinLock,
PKIRQL OldIrql);
#ifndef __USE_W32API
static __inline
VOID
KeMemoryBarrier(
VOID)
{
volatile LONG Barrier;
__asm__ __volatile__ ("xchg %%eax, %0" : : "m" (Barrier) : "%eax");
}
VOID STDCALL KeAcquireSpinLockAtDpcLevel (IN PKSPIN_LOCK SpinLock);
#define KefAcquireSpinLockAtDpcLevel KeAcquireSpinLockAtDpcLevel
VOID
STDCALL
KeReleaseSpinLockFromDpcLevel(
IN PKSPIN_LOCK SpinLock);
#endif
/*
* FUNCTION: Brings the system down in a controlled manner when an
* inconsistency that might otherwise cause corruption has been detected
* ARGUMENTS:
* BugCheckCode = Specifies the reason for the bug check
* RETURNS: Doesn't
*
* NOTES - please use the macro KEBUGCHECK with the same argument so the end-user
* knows what file/line number where the bug check occured
*/
VOID STDCALL KeBugCheck (ULONG BugCheckCode);
/*
* FUNCTION: Brings the system down in a controlled manner when an
* inconsistency that might otherwise cause corruption has been detected
* ARGUMENTS:
* BugCheckCode = Specifies the reason for the bug check
* BugCheckParameter[1-4] = Additional information about bug
* RETURNS: Doesn't
*
* NOTES - please use the macro KEBUGCHECKEX with the same arguments so the end-user
* knows what file/line number where the bug check occured
*/
VOID STDCALL KeBugCheckEx (ULONG BugCheckCode,
ULONG BugCheckParameter1,
ULONG BugCheckParameter2,
ULONG BugCheckParameter3,
ULONG BugCheckParameter4);
BOOLEAN STDCALL KeCancelTimer (PKTIMER Timer);
VOID STDCALL KeClearEvent (PKEVENT Event);
BOOLEAN STDCALL KeConnectInterrupt(PKINTERRUPT InterruptObject);
NTSTATUS STDCALL KeDelayExecutionThread (KPROCESSOR_MODE WaitMode,
BOOLEAN Alertable,
PLARGE_INTEGER Internal);
BOOLEAN STDCALL KeDeregisterBugCheckCallback (
PKBUGCHECK_CALLBACK_RECORD CallbackRecord);
VOID STDCALL KeDetachProcess (VOID);
VOID STDCALL KeDisconnectInterrupt(PKINTERRUPT InterruptObject);
VOID STDCALL KeEnterCriticalRegion (VOID);
/*
* FUNCTION: Enters the kernel debugger
* ARGUMENTS:
* None
*/
VOID STDCALL KeEnterKernelDebugger (VOID);
KIRQL STDCALL KeGetCurrentIrql (VOID);
#ifndef __USE_W32API
#define KeGetCurrentProcessorNumber() (KeGetCurrentKPCR()->ProcessorNumber)
ULONG KeGetDcacheFillSize(VOID);
KPROCESSOR_MODE STDCALL KeGetPreviousMode (VOID);
#endif
struct _KTHREAD* STDCALL KeGetCurrentThread (VOID);
VOID STDCALL KeInitializeApc (IN PKAPC Apc,
IN PKTHREAD Thread,
IN KAPC_ENVIRONMENT TargetEnvironment,
IN PKKERNEL_ROUTINE KernelRoutine,
IN PKRUNDOWN_ROUTINE RundownRoutine,
IN PKNORMAL_ROUTINE NormalRoutine,
IN KPROCESSOR_MODE Mode,
IN PVOID Context);
/*
* VOID
* KeInitializeCallbackRecord (
* PKBUGCHECK_CALLBACK_RECORD CallbackRecord
* );
*/
#ifndef KeInitializeCallbackRecord
#define KeInitializeCallbackRecord(CallbackRecord) \
(CallbackRecord)->State = BufferEmpty
#endif
VOID STDCALL KeInitializeDeviceQueue (PKDEVICE_QUEUE DeviceQueue);
VOID STDCALL KeInitializeDpc (PKDPC Dpc,
PKDEFERRED_ROUTINE DeferredRoutine,
PVOID DeferredContext);
VOID STDCALL KeInitializeEvent (PKEVENT Event,
EVENT_TYPE Type,
BOOLEAN State);
VOID STDCALL KeInitializeInterrupt(PKINTERRUPT InterruptObject,
PKSERVICE_ROUTINE ServiceRoutine,
PVOID ServiceContext,
PKSPIN_LOCK SpinLock,
ULONG Vector,
KIRQL Irql,
KIRQL SynchronizeIrql,
KINTERRUPT_MODE InterruptMode,
BOOLEAN ShareVector,
CHAR ProcessorNumber,
BOOLEAN FloatingSave);
VOID STDCALL KeInitializeMutant(IN PKMUTANT Mutant,
IN BOOLEAN InitialOwner);
VOID STDCALL KeInitializeMutex (PKMUTEX Mutex,
ULONG Level);
VOID STDCALL
KeInitializeQueue(IN PKQUEUE Queue,
IN ULONG Count);
PLIST_ENTRY STDCALL
KeRundownQueue(IN PKQUEUE Queue);
VOID STDCALL KeInitializeSemaphore (PKSEMAPHORE Semaphore,
LONG Count,
LONG Limit);
/*
* FUNCTION: Initializes a spinlock
* ARGUMENTS:
* SpinLock = Spinlock to initialize
*/
VOID STDCALL KeInitializeSpinLock (PKSPIN_LOCK SpinLock);
VOID STDCALL KeInitializeTimer (PKTIMER Timer);
VOID STDCALL KeInitializeTimerEx (PKTIMER Timer,
TIMER_TYPE Type);
BOOLEAN STDCALL KeInsertByKeyDeviceQueue (PKDEVICE_QUEUE DeviceQueue,
PKDEVICE_QUEUE_ENTRY QueueEntry,
ULONG SortKey);
BOOLEAN STDCALL KeInsertDeviceQueue (PKDEVICE_QUEUE DeviceQueue,
PKDEVICE_QUEUE_ENTRY DeviceQueueEntry);
LONG STDCALL
KeInsertHeadQueue(IN PKQUEUE Queue,
IN PLIST_ENTRY Entry);
LONG STDCALL
KeInsertQueue(IN PKQUEUE Queue,
IN PLIST_ENTRY Entry);
BOOLEAN STDCALL KeInsertQueueApc (PKAPC Apc,
PVOID SystemArgument1,
PVOID SystemArgument2,
KPRIORITY PriorityBoost);
BOOLEAN STDCALL KeInsertQueueDpc (PKDPC Dpc,
PVOID SystemArgument1,
PVOID SystemArgument2);
VOID STDCALL KeLeaveCriticalRegion (VOID);
VOID STDCALL KeLowerIrql (KIRQL NewIrql);
LONG STDCALL KePulseEvent (PKEVENT Event,
KPRIORITY Increment,
BOOLEAN Wait);
LARGE_INTEGER
STDCALL
KeQueryPerformanceCounter (
PLARGE_INTEGER PerformanceFrequency
);
VOID
STDCALL
KeQuerySystemTime (
PLARGE_INTEGER CurrentTime
);
VOID
STDCALL
KeQueryTickCount (
PLARGE_INTEGER TickCount
);
ULONG
STDCALL
KeQueryTimeIncrement (
VOID
);
ULONGLONG
STDCALL
KeQueryInterruptTime(
VOID
);
VOID
STDCALL
KeRaiseIrql (
KIRQL NewIrql,
PKIRQL OldIrql
);
KIRQL
STDCALL
KeRaiseIrqlToDpcLevel (
VOID
);
LONG
STDCALL
KeReadStateEvent (
PKEVENT Event
);
LONG STDCALL
KeReadStateMutant(IN PKMUTANT Mutant);
LONG STDCALL
KeReadStateMutex(IN PKMUTEX Mutex);
LONG STDCALL
KeReadStateQueue(IN PKQUEUE Queue);
LONG STDCALL
KeReadStateSemaphore(IN PKSEMAPHORE Semaphore);
BOOLEAN STDCALL
KeReadStateTimer(IN PKTIMER Timer);
BOOLEAN
STDCALL
KeRegisterBugCheckCallback (
PKBUGCHECK_CALLBACK_RECORD CallbackRecord,
PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine,
PVOID Buffer,
ULONG Length,
PUCHAR Component
);
LONG
STDCALL
KeReleaseMutant(
IN PKMUTANT Mutant,
IN KPRIORITY Increment,
IN BOOLEAN Abandon,
IN BOOLEAN Wait
);
LONG
STDCALL
KeReleaseMutex (
PKMUTEX Mutex,
BOOLEAN Wait
);
LONG
STDCALL
KeReleaseSemaphore (
PKSEMAPHORE Semaphore,
KPRIORITY Increment,
LONG Adjustment,
BOOLEAN Wait
);
VOID
STDCALL
KeReleaseSpinLock (
PKSPIN_LOCK Spinlock,
KIRQL NewIrql
);
#ifndef __USE_W32API
VOID
STDCALL
KeReleaseSpinLockFromDpcLevel (
PKSPIN_LOCK Spinlock
);
#endif
PKDEVICE_QUEUE_ENTRY
STDCALL
KeRemoveByKeyDeviceQueue (
PKDEVICE_QUEUE DeviceQueue,
ULONG SortKey
);
PKDEVICE_QUEUE_ENTRY
STDCALL
KeRemoveDeviceQueue (
PKDEVICE_QUEUE DeviceQueue
);
BOOLEAN STDCALL
KeRemoveEntryDeviceQueue(PKDEVICE_QUEUE DeviceQueue,
PKDEVICE_QUEUE_ENTRY DeviceQueueEntry);
PLIST_ENTRY STDCALL
KeRemoveQueue(IN PKQUEUE Queue,
IN KPROCESSOR_MODE WaitMode,
IN PLARGE_INTEGER Timeout OPTIONAL);
BOOLEAN STDCALL
KeRemoveQueueDpc(IN PKDPC Dpc);
LONG STDCALL
KeResetEvent(IN PKEVENT Event);
VOID STDCALL
KeRosDumpStackFrames ( PULONG Frame, ULONG FrameCount );
ULONG STDCALL
KeRosGetStackFrames ( PULONG Frames, ULONG FrameCount );
BOOLEAN STDCALL
KeRosPrintAddress(PVOID address);
NTSTATUS STDCALL
KeSetAffinityThread(PKTHREAD Thread,
KAFFINITY Affinity);
LONG STDCALL
KeSetBasePriorityThread(struct _KTHREAD* Thread,
LONG Increment);
LONG
STDCALL
KeSetEvent (
PKEVENT Event,
KPRIORITY Increment,
BOOLEAN Wait
);
KPRIORITY STDCALL KeSetPriorityThread (struct _KTHREAD* Thread,
KPRIORITY Priority);
BOOLEAN STDCALL KeSetTimer (PKTIMER Timer,
LARGE_INTEGER DueTime,
PKDPC Dpc);
BOOLEAN STDCALL KeSetTimerEx (PKTIMER Timer,
LARGE_INTEGER DueTime,
LONG Period,
PKDPC Dpc);
VOID STDCALL KeStallExecutionProcessor (ULONG MicroSeconds);
BOOLEAN STDCALL KeSynchronizeExecution (PKINTERRUPT Interrupt,
PKSYNCHRONIZE_ROUTINE SynchronizeRoutine,
PVOID SynchronizeContext);
NTSTATUS STDCALL KeWaitForMultipleObjects (ULONG Count,
PVOID Object[],
WAIT_TYPE WaitType,
KWAIT_REASON WaitReason,
KPROCESSOR_MODE WaitMode,
BOOLEAN Alertable,
PLARGE_INTEGER Timeout,
PKWAIT_BLOCK WaitBlockArray);
NTSTATUS
STDCALL
KeWaitForMutexObject (
PKMUTEX Mutex,
KWAIT_REASON WaitReason,
KPROCESSOR_MODE WaitMode,
BOOLEAN Alertable,
PLARGE_INTEGER Timeout
);
NTSTATUS
STDCALL
KeWaitForSingleObject (
PVOID Object,
KWAIT_REASON WaitReason,
KPROCESSOR_MODE WaitMode,
BOOLEAN Alertable,
PLARGE_INTEGER Timeout
);
/* io permission map has a 8k size
* Each bit in the IOPM corresponds to an io port byte address. The bitmap
* is initialized to allow IO at any port. [ all bits set ].
*/
typedef struct _IOPM
{
UCHAR Bitmap[8192];
} IOPM, *PIOPM;
/*
* FUNCTION: Provides the kernel with a new access map for a driver
* ARGUMENTS:
* NewMap: = If FALSE the kernel's map is set to all disabled. If TRUE
* the kernel disables access to a particular port.
* IoPortMap = Caller supplies storage for the io permission map.
* REMARKS
* Each bit in the IOPM corresponds to an io port byte address. The bitmap
* is initialized to allow IO at any port. [ all bits set ]. The IOPL determines
* the minium privilege level required to perform IO prior to checking the permission map.
*/
BOOL STDCALL
Ke386SetIoAccessMap(ULONG NewMap, PULONG IoPermissionMap);
/*
* FUNCTION: Queries the io permission map.
* ARGUMENTS:
* NewMap: = If FALSE the kernel's map is set to all disabled. If TRUE
* the kernel disables access to a particular port.
* IoPortMap = Caller supplies storage for the io permission map.
* REMARKS
* Each bit in the IOPM corresponds to an io port byte address. The bitmap
* is initialized to allow IO at any port. [ all bits set ]. The IOPL determines
* the minium privilege level required to perform IO prior to checking the permission map.
*/
BOOL STDCALL
Ke386QueryIoAccessMap(ULONG NewMap, PULONG IoPermissionMap);
/*
* FUNCTION: Set the process IOPL
* ARGUMENTS:
* Eprocess = Pointer to a executive process object
* EnableIo = Specify TRUE to enable IO and FALSE to disable
*/
BOOL STDCALL
Ke386IoSetAccessProcess(struct _EPROCESS* Eprocess, BOOL EnableIo);
/*
* FUNCTION: Sets the contents of a gdt descriptor.
* ARGUMENTS:
* Entry = The selector to set.
* Value1 = The value of the low dword of the descriptor.
* Value2 = The value of the high dword of the descriptor.
*/
VOID
KeSetGdtSelector(
ULONG Entry,
ULONG Value1,
ULONG Value2
);
/*
* FUNCTION: Releases a set of Global Descriptor Table Selectors
* ARGUMENTS:
* SelArray =
* NumOfSelectors =
*/
NTSTATUS
KeI386ReleaseGdtSelectors(
OUT PULONG SelArray,
IN ULONG NumOfSelectors
);
/*
* FUNCTION: Allocates a set of Global Descriptor Table Selectors
* ARGUMENTS:
* SelArray =
* NumOfSelectors =
*/
NTSTATUS
KeI386AllocateGdtSelectors(
OUT PULONG SelArray,
IN ULONG NumOfSelectors
);
KIRQL
FASTCALL
KfAcquireSpinLock (
IN PKSPIN_LOCK SpinLock
);
VOID
FASTCALL
KfLowerIrql (
IN KIRQL NewIrql
);
KIRQL
FASTCALL
KfRaiseIrql (
IN KIRQL NewIrql
);
VOID
FASTCALL
KfReleaseSpinLock (
IN PKSPIN_LOCK SpinLock,
IN KIRQL NewIrql
);
VOID STDCALL KiDispatchInterrupt(VOID);
/* Stubs Start here */
VOID
STDCALL
KeReleaseInterruptSpinLock(
IN PKINTERRUPT Interrupt,
IN KIRQL OldIrql
);
BOOLEAN
STDCALL
KeAreApcsDisabled(
VOID
);
VOID
STDCALL
KeFlushQueuedDpcs(
VOID
);
ULONG
STDCALL
KeGetRecommendedSharedDataAlignment(
VOID
);
ULONG
STDCALL
KeQueryRuntimeThread(
IN PKTHREAD Thread,
OUT PULONG UserTime
);
BOOLEAN
STDCALL
KeSetKernelStackSwapEnable(
IN BOOLEAN Enable
);
BOOLEAN
STDCALL
KeDeregisterBugCheckReasonCallback(
IN PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord
);
BOOLEAN
STDCALL
KeRegisterBugCheckReasonCallback(
IN PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord,
IN PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine,
IN KBUGCHECK_CALLBACK_REASON Reason,
IN PUCHAR Component
);
VOID
STDCALL
KeTerminateThread(
IN KPRIORITY Increment
);
BOOLEAN
STDCALL
KeIsExecutingDpc(
VOID
);
VOID
STDCALL
KeSetEventBoostPriority(
IN PKEVENT Event,
IN PKTHREAD *Thread OPTIONAL
);
PVOID
STDCALL
KeFindConfigurationEntry(
IN PVOID Unknown,
IN ULONG Class,
IN CONFIGURATION_TYPE Type,
IN PULONG RegKey
);
PVOID
STDCALL
KeFindConfigurationNextEntry(
IN PVOID Unknown,
IN ULONG Class,
IN CONFIGURATION_TYPE Type,
IN PULONG RegKey,
IN PVOID *NextLink
);
VOID
STDCALL
KeFlushEntireTb(
IN BOOLEAN Unknown,
IN BOOLEAN CurrentCpuOnly
);
VOID
STDCALL
KeRevertToUserAffinityThread(
VOID
);
VOID
STDCALL
KiCoprocessorError(
VOID
);
VOID
STDCALL
KiUnexpectedInterrupt(
VOID
);
VOID
STDCALL
KeSetDmaIoCoherency(
IN ULONG Coherency
);
VOID
STDCALL
KeSetProfileIrql(
IN KIRQL ProfileIrql
);
VOID
STDCALL
KeSetSystemAffinityThread(
IN KAFFINITY Affinity
);
NTSTATUS
STDCALL
KeUserModeCallback(
IN ULONG FunctionID,
IN PVOID InputBuffer,
IN ULONG InputLength,
OUT PVOID *OutputBuffer,
OUT PULONG OutputLength
);
VOID
STDCALL
KeSetTimeIncrement(
IN ULONG MaxIncrement,
IN ULONG MinIncrement
);
VOID
STDCALL
KeCapturePersistentThreadState(
IN PVOID CurrentThread,
IN ULONG Setting1,
IN ULONG Setting2,
IN ULONG Setting3,
IN ULONG Setting4,
IN ULONG Setting5,
IN PVOID ThreadState
);
BOOLEAN
STDCALL
KeRemoveSystemServiceTable(
IN ULONG TableIndex
);
NTSTATUS
KeI386FlatToGdtSelector(
IN ULONG Base,
IN USHORT Length,
IN USHORT Selector
);
CCHAR
STDCALL
KeSetIdealProcessorThread (
IN PKTHREAD Thread,
IN CCHAR Processor
);
typedef
VOID
(FASTCALL *PTIME_UPDATE_NOTIFY_ROUTINE)(
IN HANDLE ThreadId,
IN KPROCESSOR_MODE Mode
);
VOID
FASTCALL
KeSetTimeUpdateNotifyRoutine(
IN PTIME_UPDATE_NOTIFY_ROUTINE NotifyRoutine
);
PKDEVICE_QUEUE_ENTRY
STDCALL
KeRemoveByKeyDeviceQueueIfBusy (
IN PKDEVICE_QUEUE DeviceQueue,
IN ULONG SortKey
);
KAFFINITY
STDCALL
KeQueryActiveProcessors (
VOID
);
VOID
FASTCALL
KeAcquireInStackQueuedSpinLockAtDpcLevel(
IN PKSPIN_LOCK SpinLock,
IN PKLOCK_QUEUE_HANDLE LockHandle
);
VOID
FASTCALL
KeReleaseInStackQueuedSpinLockFromDpcLevel(
IN PKLOCK_QUEUE_HANDLE LockHandle
);
KPRIORITY
STDCALL
KeQueryPriorityThread (
IN PKTHREAD Thread
);
KIRQL
STDCALL
KeAcquireInterruptSpinLock(
IN PKINTERRUPT Interrupt
);
VOID
__cdecl
KeSaveStateForHibernate(
IN PVOID State
);
NTSTATUS
STDCALL
KeRaiseUserException(
IN NTSTATUS ExceptionCode
);
VOID
FASTCALL
KeAcquireGuardedMutex(
PKGUARDED_MUTEX GuardedMutex
);
VOID
FASTCALL
KeAcquireGuardedMutexUnsafe(
PKGUARDED_MUTEX GuardedMutex
);
VOID
STDCALL
KeEnterGuardedRegion(VOID);
VOID
STDCALL
KeLeaveGuardedRegion(VOID);
VOID
FASTCALL
KeInitializeGuardedMutex(
PKGUARDED_MUTEX GuardedMutex
);
VOID
FASTCALL
KeReleaseGuardedMutexUnsafe(
PKGUARDED_MUTEX GuardedMutex
);
VOID
FASTCALL
KeReleaseGuardedMutex(
PKGUARDED_MUTEX GuardedMutex
);
BOOL
FASTCALL
KeTryToAcquireGuardedMutex(
PKGUARDED_MUTEX GuardedMutex
);
#endif /* __INCLUDE_DDK_KEFUNCS_H */

View File

@@ -1,413 +0,0 @@
/* KERNEL TYPES **************************************************************/
#ifndef __INCLUDE_DDK_KETYPES_H
#define __INCLUDE_DDK_KETYPES_H
/* include ntos/ketypes.h here? */
struct _KMUTANT;
typedef LONG KPRIORITY;
typedef LONG FLONG;
typedef VOID STDCALL_FUNC
(*PKBUGCHECK_CALLBACK_ROUTINE)(PVOID Buffer, ULONG Length);
typedef BOOLEAN STDCALL_FUNC
(*PKSYNCHRONIZE_ROUTINE)(PVOID SynchronizeContext);
struct _KAPC;
typedef VOID STDCALL_FUNC
(*PKNORMAL_ROUTINE)(PVOID NormalContext,
PVOID SystemArgument1,
PVOID SystemArgument2);
typedef VOID STDCALL_FUNC
(*PKKERNEL_ROUTINE)(struct _KAPC* Apc,
PKNORMAL_ROUTINE* NormalRoutine,
PVOID* NormalContext,
PVOID* SystemArgument1,
PVOID* SystemArgument2);
typedef VOID STDCALL_FUNC
(*PKRUNDOWN_ROUTINE)(struct _KAPC* Apc);
struct _DISPATCHER_HEADER;
typedef enum _KOBJECTS {
EventNotificationObject = 0,
EventSynchronizationObject = 1,
MutantObject = 2,
ProcessObject = 3,
QueueObject = 4,
SemaphoreObject = 5,
ThreadObject = 6,
GateObject = 7,
TimerNotificationObject = 8,
TimerSynchronizationObject = 9,
Spare2Object = 10,
Spare3Object = 11,
Spare4Object = 12,
Spare5Object = 13,
Spare6Object = 14,
Spare7Object = 15,
Spare8Object = 16,
Spare9Object = 17,
ApcObject = 18,
DpcObject = 19,
DeviceQueueObject = 20,
EventPairObject = 21,
InterruptObject = 22,
ProfileObject = 23,
ThreadedDpcObject = 24,
MaximumKernelObject = 25
} KOBJECTS;
#include <pshpack1.h>
typedef struct _DISPATCHER_HEADER
{
UCHAR Type;
UCHAR Absolute;
UCHAR Size;
UCHAR Inserted;
LONG SignalState;
LIST_ENTRY WaitListHead;
} DISPATCHER_HEADER, *PDISPATCHER_HEADER;
#include <poppack.h>
typedef struct _KQUEUE
{
DISPATCHER_HEADER Header;
LIST_ENTRY EntryListHead;
ULONG CurrentCount;
ULONG MaximumCount;
LIST_ENTRY ThreadListHead;
} KQUEUE, *PKQUEUE;
typedef struct _KGATE
{
DISPATCHER_HEADER Header;
} KGATE, *PKGATE;
struct _KDPC;
typedef struct _KTIMER
{
DISPATCHER_HEADER Header;
ULARGE_INTEGER DueTime;
LIST_ENTRY TimerListEntry;
struct _KDPC* Dpc;
LONG Period;
} KTIMER, *PKTIMER;
typedef ULONG_PTR KSPIN_LOCK, *PKSPIN_LOCK;
typedef struct _KDEVICE_QUEUE
{
CSHORT Type;
CSHORT Size;
LIST_ENTRY DeviceListHead;
KSPIN_LOCK Lock;
BOOLEAN Busy;
} KDEVICE_QUEUE, *PKDEVICE_QUEUE;
/*
* Size of the profile hash table.
*/
#define PROFILE_HASH_TABLE_SIZE (32)
#include <pshpack2.h>
typedef struct _KAPC
{
CSHORT Type;
CSHORT Size;
ULONG Spare0;
struct _KTHREAD* Thread;
LIST_ENTRY ApcListEntry;
PKKERNEL_ROUTINE KernelRoutine;
PKRUNDOWN_ROUTINE RundownRoutine;
PKNORMAL_ROUTINE NormalRoutine;
PVOID NormalContext;
PVOID SystemArgument1;
PVOID SystemArgument2;
CCHAR ApcStateIndex;
KPROCESSOR_MODE ApcMode;
BOOLEAN Inserted;
} KAPC, *PKAPC;
#include <poppack.h>
#ifndef __USE_W32API
#include <pshpack1.h>
typedef struct _KAPC_STATE
{
LIST_ENTRY ApcListHead[2];
struct _KPROCESS* Process;
UCHAR KernelApcInProgress;
UCHAR KernelApcPending;
UCHAR UserApcPending;
UCHAR Reserved;
} KAPC_STATE, *PKAPC_STATE, *__restrict PRKAPC_STATE;
#include <poppack.h>
#endif /* __USE_W32API */
typedef struct _KBUGCHECK_CALLBACK_RECORD
{
LIST_ENTRY Entry;
PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine;
PVOID Buffer;
ULONG Length;
PUCHAR Component;
ULONG Checksum;
UCHAR State;
} KBUGCHECK_CALLBACK_RECORD, *PKBUGCHECK_CALLBACK_RECORD;
typedef struct _KMUTEX
{
DISPATCHER_HEADER Header;
LIST_ENTRY MutantListEntry;
struct _KTHREAD* OwnerThread;
BOOLEAN Abandoned;
UCHAR ApcDisable;
} KMUTEX, *PKMUTEX, KMUTANT, *PKMUTANT;
typedef struct _KGUARDED_MUTEX
{
LONG Count;
struct _KTHREAD* Owner;
ULONG Contention;
KGATE Gate;
union {
struct {
SHORT KernelApcDisable;
SHORT SpecialApcDisable;
};
ULONG CombinedApcDisable;
};
} KGUARDED_MUTEX, *PKGUARDED_MUTEX;
#include <pshpack1.h>
typedef struct _KSEMAPHORE
{
DISPATCHER_HEADER Header;
LONG Limit;
} KSEMAPHORE, *PKSEMAPHORE;
#include <poppack.h>
typedef struct _KEVENT
{
DISPATCHER_HEADER Header;
} KEVENT, *PKEVENT;
typedef struct _KEVENT_PAIR
{
CSHORT Type;
CSHORT Size;
KEVENT LowEvent;
KEVENT HighEvent;
} KEVENT_PAIR, *PKEVENT_PAIR;
struct _KDPC;
typedef struct _KSPIN_LOCK_QUEUE {
struct _KSPIN_LOCK_QUEUE * volatile Next;
PKSPIN_LOCK volatile Lock;
} KSPIN_LOCK_QUEUE, *PKSPIN_LOCK_QUEUE;
typedef struct _KLOCK_QUEUE_HANDLE {
KSPIN_LOCK_QUEUE LockQueue;
KIRQL OldIrql;
} KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE;
typedef struct _KWAIT_BLOCK
/*
* PURPOSE: Object describing the wait a thread is currently performing
*/
{
LIST_ENTRY WaitListEntry;
struct _KTHREAD* Thread;
struct _DISPATCHER_HEADER *Object;
struct _KWAIT_BLOCK* NextWaitBlock;
USHORT WaitKey;
USHORT WaitType;
} KWAIT_BLOCK, *PKWAIT_BLOCK;
/*
* PURPOSE: Defines a delayed procedure call routine
* NOTE:
* Dpc = The associated DPC object
* DeferredContext = Driver defined context for the DPC
* SystemArgument[1-2] = Undocumented.
*
*/
typedef VOID STDCALL_FUNC
(*PKDEFERRED_ROUTINE)(struct _KDPC* Dpc,
PVOID DeferredContext,
PVOID SystemArgument1,
PVOID SystemArgument2);
/*
* PURPOSE: Defines a delayed procedure call object
*/
#include <pshpack1.h>
typedef struct _KDPC
{
SHORT Type;
UCHAR Number;
UCHAR Importance;
LIST_ENTRY DpcListEntry;
PKDEFERRED_ROUTINE DeferredRoutine;
PVOID DeferredContext;
PVOID SystemArgument1;
PVOID SystemArgument2;
PVOID DpcData;
} KDPC, *PKDPC;
#include <poppack.h>
typedef struct _KDPC_DATA {
LIST_ENTRY DpcListHead;
ULONG DpcLock;
ULONG DpcQueueDepth;
ULONG DpcCount;
} KDPC_DATA, *PKDPC_DATA;
typedef struct _KDEVICE_QUEUE_ENTRY
{
LIST_ENTRY DeviceListEntry;
ULONG SortKey;
BOOLEAN Inserted;
} KDEVICE_QUEUE_ENTRY, *PKDEVICE_QUEUE_ENTRY;
typedef struct _WAIT_CONTEXT_BLOCK
{
KDEVICE_QUEUE_ENTRY WaitQueueEntry;
/*
* XXX THIS IS WRONG XXX
*
* Our headers have enough circular dependancies that
* I can't figure out, given 5 minutes of testing, what
* order to include them in to get PDRIVER_CONTROL to be
* defined here. The proper definition of the next item
* is:
*
* PDRIVER_CONTROL DeviceRoutine;
*
* but instead we use PVOID until headers are fixed.
*/
PVOID DeviceRoutine;
PVOID DeviceContext;
ULONG NumberOfMapRegisters;
PVOID DeviceObject;
PVOID CurrentIrp;
PKDPC BufferChainingDpc;
} WAIT_CONTEXT_BLOCK, *PWAIT_CONTEXT_BLOCK;
typedef enum _KBUGCHECK_CALLBACK_REASON {
KbCallbackInvalid,
KbCallbackReserved1,
KbCallbackSecondaryDumpData,
KbCallbackDumpIo,
} KBUGCHECK_CALLBACK_REASON;
typedef
VOID
(*PKBUGCHECK_REASON_CALLBACK_ROUTINE) (
IN KBUGCHECK_CALLBACK_REASON Reason,
IN PVOID Record, // This should be struct _KBUGCHECK_REASON_CALLBACK_RECORD* but minggw doesn't want to allow that...
IN OUT PVOID ReasonSpecificData,
IN ULONG ReasonSpecificDataLength
);
typedef struct _KBUGCHECK_REASON_CALLBACK_RECORD {
LIST_ENTRY Entry;
PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine;
PUCHAR Component;
ULONG_PTR Checksum;
KBUGCHECK_CALLBACK_REASON Reason;
UCHAR State;
} KBUGCHECK_REASON_CALLBACK_RECORD, *PKBUGCHECK_REASON_CALLBACK_RECORD;
struct _KINTERRUPT;
typedef BOOLEAN STDCALL_FUNC
(*PKSERVICE_ROUTINE)(struct _KINTERRUPT* Interrupt,
PVOID ServiceContext);
typedef struct _EPROCESS EPROCESS, *PEPROCESS;
typedef HANDLE HSEMAPHORE;
typedef HANDLE HDRVOBJ;
typedef LONG FLOAT_LONG, *PFLOAT_LONG;
typedef LONG FLOATL;
typedef LONG FIX; /* fixed-point number */
typedef struct _M128 {
ULONGLONG Low;
LONGLONG High;
} M128, *PM128;
typedef struct _KEXCEPTION_FRAME {
ULONG64 P1Home;
ULONG64 P2Home;
ULONG64 P3Home;
ULONG64 P4Home;
ULONG64 P5;
ULONG64 InitialStack;
M128 Xmm6;
M128 Xmm7;
M128 Xmm8;
M128 Xmm9;
M128 Xmm10;
M128 Xmm11;
M128 Xmm12;
M128 Xmm13;
M128 Xmm14;
M128 Xmm15;
ULONG64 TrapFrame;
ULONG64 CallbackStack;
ULONG64 OutputBuffer;
ULONG64 OutputLength;
UCHAR ExceptionRecord[64];
ULONG64 Fill1;
ULONG64 Rbp;
ULONG64 Rbx;
ULONG64 Rdi;
ULONG64 Rsi;
ULONG64 R12;
ULONG64 R13;
ULONG64 R14;
ULONG64 R15;
ULONG64 Return;
} KEXCEPTION_FRAME, *PKEXCEPTION_FRAME;
/* copied from W32API */
typedef struct _KFLOATING_SAVE
{
ULONG ControlWord;
ULONG StatusWord;
ULONG ErrorOffset;
ULONG ErrorSelector;
ULONG DataOffset;
ULONG DataSelector;
ULONG Cr0NpxState;
ULONG Spare1;
} KFLOATING_SAVE, *PKFLOATING_SAVE;
#endif /* __INCLUDE_DDK_KETYPES_H */

View File

@@ -1,30 +0,0 @@
#ifndef __INCLUDE_DDK_LDRFUNCS_H
#define __INCLUDE_DDK_LDRFUNCS_H
/* $Id$ */
NTSTATUS STDCALL
LdrAccessResource(IN PVOID BaseAddress,
IN PIMAGE_RESOURCE_DATA_ENTRY ResourceDataEntry,
OUT PVOID *Resource OPTIONAL,
OUT PULONG Size OPTIONAL);
NTSTATUS STDCALL
LdrFindResource_U(IN PVOID BaseAddress,
IN PLDR_RESOURCE_INFO ResourceInfo,
IN ULONG Level,
OUT PIMAGE_RESOURCE_DATA_ENTRY *ResourceDataEntry);
NTSTATUS STDCALL
LdrFindResourceDirectory_U( IN PVOID BaseAddress,
IN PLDR_RESOURCE_INFO ResourceInfo,
IN ULONG Level,
OUT PIMAGE_RESOURCE_DIRECTORY *ResourceDirectory);
NTSTATUS STDCALL
LdrEnumResources(IN PVOID BaseAddress,
IN PLDR_RESOURCE_INFO ResourceInfo,
IN ULONG Level,
IN OUT PULONG ResourceCount,
OUT PVOID Resources OPTIONAL);
#endif /* __INCLUDE_DDK_LDRFUNCS_H */

View File

@@ -1,759 +0,0 @@
#ifndef _INCLUDE_DDK_MMFUNCS_H
#define _INCLUDE_DDK_MMFUNCS_H
/* $Id$ */
/* MEMORY MANAGMENT ******************************************************/
#ifdef __NTOSKRNL__
extern ULONG EXPORTED MmUserProbeAddress;
extern PVOID EXPORTED MmHighestUserAddress;
#else
extern ULONG IMPORTED MmUserProbeAddress;
extern PVOID IMPORTED MmHighestUserAddress;
#endif
#ifdef __NTOSKRNL__
extern POBJECT_TYPE EXPORTED MmSectionObjectType;
#else
extern POBJECT_TYPE IMPORTED MmSectionObjectType;
#endif
/*
* FUNCTION: Returns the number of pages spanned by an address range
* ARGUMENTS:
* Va = start of range
* Size = Size of range
* RETURNS: The number of pages
*/
#define ADDRESS_AND_SIZE_TO_SPAN_PAGES(Va, Size) \
(ULONG)((PAGE_ROUND_UP((Size) + ((ULONG_PTR)(Va))) - \
PAGE_ROUND_DOWN((ULONG_PTR)(Va))) / PAGE_SIZE)
/*
* FUNCTION: Returns FALSE is the pointer is NULL, TRUE otherwise
*/
#define ARGUMENT_PRESENT(arg) ((arg)!=NULL)
/*
* FUNCTION: Returns the byte offset of the address within its page
*/
#define BYTE_OFFSET(va) (((ULONG_PTR)va)%PAGE_SIZE)
#define PAGE_OFFSET(va) BYTE_OFFSET(va)
/*
* FUNCTION: Takes a count in bytes and returns the number of pages
* required to hold it
*/
#define BYTES_TO_PAGES(Size) \
(((Size) >> PAGE_SHIFT) + (((Size) & (PAGE_SIZE - 1)) != 0))
#define PAGE_ALIGN(va) ( (PVOID) (((ULONG_PTR)(va)) & (~(PAGE_SIZE-1))) )
#define PAGE_BASE(va) PAGE_ALIGN(va)
NTSTATUS
STDCALL
MmAddPhysicalMemory (
IN PPHYSICAL_ADDRESS StartAddress,
IN OUT PLARGE_INTEGER NumberOfBytes
);
NTSTATUS
STDCALL
MmAddVerifierThunks (
IN PVOID ThunkBuffer,
IN ULONG ThunkBufferSize
);
DWORD
STDCALL
MmAdjustWorkingSetSize (
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2
);
NTSTATUS
STDCALL
MmAdvanceMdl (
IN PMDL Mdl,
IN ULONG NumberOfBytes
);
PVOID
STDCALL
MmAllocateContiguousMemory (
IN ULONG NumberOfBytes,
IN PHYSICAL_ADDRESS HighestAcceptableAddress
);
PVOID STDCALL
MmAllocateContiguousMemorySpecifyCache (IN ULONG NumberOfBytes,
IN PHYSICAL_ADDRESS LowestAcceptableAddress,
IN PHYSICAL_ADDRESS HighestAcceptableAddress,
IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL,
IN MEMORY_CACHING_TYPE CacheType
);
PVOID STDCALL
MmAllocateContiguousAlignedMemory(IN ULONG NumberOfBytes,
IN PHYSICAL_ADDRESS LowestAcceptableAddress,
IN PHYSICAL_ADDRESS HighestAcceptableAddress,
IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL,
IN MEMORY_CACHING_TYPE CacheType OPTIONAL,
IN ULONG Alignment);
PVOID
STDCALL
MmAllocateMappingAddress (
IN SIZE_T NumberOfBytes,
IN ULONG PoolTag
);
PVOID
STDCALL
MmAllocateNonCachedMemory (
IN ULONG NumberOfBytes
);
/*
* FUNCTION: Fills in the corresponding physical page array for a given MDL
* for a buffer in nonpaged system space
* ARGUMENTS:
* MemoryDescriptorList = MDL to fill
*/
VOID
STDCALL
MmBuildMdlForNonPagedPool (
PMDL MemoryDescriptorList
);
BOOLEAN
STDCALL
MmCanFileBeTruncated (
IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
IN PLARGE_INTEGER NewFileSize
);
/*
* FUNCTION: Allocates and initializes an MDL
* ARGUMENTS:
* MemoryDescriptorList = Optional caller allocated MDL to initalize
* Base = Base virtual address for buffer
* Length = Length in bytes of the buffer
* RETURNS: A pointer to the initalized MDL
*/
PMDL
STDCALL
MmCreateMdl (
PMDL MemoryDescriptorList,
PVOID Base,
ULONG Length
);
#if 0
NTSTATUS
STDCALL
MmCreateSection (
OUT PSECTION_OBJECT * SectionObject,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN PLARGE_INTEGER MaximumSize,
IN ULONG SectionPageProtection,
IN ULONG AllocationAttributes,
IN HANDLE FileHandle OPTIONAL,
IN PFILE_OBJECT File OPTIONAL
);
#endif
DWORD
STDCALL
MmDbgTranslatePhysicalAddress (
DWORD Unknown0,
DWORD Unknown1
);
BOOLEAN
STDCALL
MmDisableModifiedWriteOfSection (
DWORD Unknown0
);
BOOLEAN
STDCALL
MmFlushImageSection (
IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
IN MMFLUSH_TYPE FlushType
);
BOOLEAN
STDCALL
MmForceSectionClosed (
IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
IN BOOLEAN DelayClose
);
VOID
STDCALL
MmFreeContiguousMemory (
IN OUT PVOID BaseAddress
);
VOID
STDCALL
MmFreeContiguousMemorySpecifyCache(IN PVOID BaseAddress,
IN ULONG NumberOfBytes,
IN MEMORY_CACHING_TYPE CacheType
);
VOID
STDCALL
MmFreeMappingAddress (
IN PVOID BaseAddress,
IN ULONG PoolTag
);
VOID
STDCALL
MmFreeNonCachedMemory (
IN PVOID BaseAddress,
IN ULONG NumberOfBytes
);
/*
* FUNCTION: Returns the length in bytes of a buffer described by an MDL
* ARGUMENTS:
* Mdl = the mdl
* RETURNS: Size of the buffer
*/
#define MmGetMdlByteCount(Mdl) ((Mdl)->ByteCount)
/*
* FUNCTION: Returns the byte offset within a page of the buffer described
* by an MDL
* ARGUMENTS:
* Mdl = the mdl
* RETURNS: The offset in bytes
*/
#define MmGetMdlByteOffset(Mdl) \
((Mdl)->ByteOffset)
/*
* FUNCTION: Returns the initial virtual address for a buffer described
* by an MDL
* ARGUMENTS:
* Mdl = the mdl
* RETURNS: The initial virtual address
*/
#define MmGetMdlVirtualAddress(Mdl) \
((PVOID) ((PCHAR) (Mdl)->StartVa + (Mdl)->ByteOffset))
/*
* FUNCTION: Returns the physical address corresponding to a given valid
* virtual address
* ARGUMENTS:
* BaseAddress = the virtual address
* RETURNS: The physical address
*/
PHYSICAL_ADDRESS
STDCALL
MmGetPhysicalAddress (
IN PVOID BaseAddress
);
PPHYSICAL_MEMORY_RANGE
STDCALL
MmGetPhysicalMemoryRanges (
VOID
);
#define MmGetProcedureAddress(Address) (Address)
/*
* PVOID
* MmGetSystemAddressForMdl (
* PMDL Mdl
* );
*
* FUNCTION:
* Maps the physical pages described by an MDL into system space
*
* ARGUMENTS:
* Mdl = mdl
*
* RETURNS:
* The base system address for the mapped buffer
*/
#define MmGetSystemAddressForMdl(Mdl) \
(((Mdl)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA | MDL_SOURCE_IS_NONPAGED_POOL)) ? \
((Mdl)->MappedSystemVa):(MmMapLockedPages((Mdl),KernelMode)))
/*
* PVOID
* MmGetSystemAddressForMdlSafe(
* IN PMDL Mdl,
* IN MM_PAGE_PRIORITY Priority)
*/
#define MmGetSystemAddressForMdlSafe(_Mdl, _Priority) \
((_Mdl)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA \
| MDL_SOURCE_IS_NONPAGED_POOL)) ? \
(_Mdl)->MappedSystemVa : \
(PVOID) MmMapLockedPagesSpecifyCache((_Mdl), \
KernelMode, MmCached, NULL, FALSE, _Priority)
PVOID
STDCALL
MmGetSystemRoutineAddress (
IN PUNICODE_STRING SystemRoutineName
);
PVOID
STDCALL
MmGetVirtualForPhysical (
IN PHYSICAL_ADDRESS PhysicalAddress
);
NTSTATUS
STDCALL
MmGrowKernelStack (
DWORD Unknown0
);
/*
* VOID
* MmInitializeMdl (
* PMDL MemoryDescriptorList,
* PVOID BaseVa,
* ULONG Length
* );
*
* FUNCTION:
* Initalizes an MDL
*
* ARGUMENTS:
* MemoryDescriptorList = MDL to be initalized
* BaseVa = Base virtual address of the buffer
* Length = Length in bytes of the buffer
*/
#define MmInitializeMdl(MemoryDescriptorList,BaseVa,Length) \
{ \
(MemoryDescriptorList)->Next = (PMDL)NULL; \
(MemoryDescriptorList)->Size = (CSHORT)(sizeof(MDL) + \
(ADDRESS_AND_SIZE_TO_SPAN_PAGES((BaseVa),(Length)) * sizeof(PFN_NUMBER))); \
(MemoryDescriptorList)->MdlFlags = 0; \
(MemoryDescriptorList)->StartVa = PAGE_ALIGN(BaseVa); \
(MemoryDescriptorList)->ByteOffset = BYTE_OFFSET(BaseVa); \
(MemoryDescriptorList)->ByteCount = (Length); \
}
/*
* FUNCTION: Checks whether an address is valid for read/write
* ARGUMENTS:
* VirtualAddress = address to be check
* RETURNS: TRUE if an access would be valid
*/
BOOLEAN
STDCALL
MmIsAddressValid (
IN PVOID VirtualAddress
);
ULONG
STDCALL
MmIsDriverVerifying (
IN struct _DRIVER_OBJECT *DriverObject
);
BOOLEAN
STDCALL
MmIsNonPagedSystemAddressValid (
IN PVOID VirtualAddress
);
BOOLEAN
STDCALL
MmIsRecursiveIoFault (
VOID
);
/*
* FUNCTION: Checks if the current platform is a workstation or a server
* RETURNS: If the system is a server returns true
* NOTE: Drivers can use this as an estimate of the likely resources
* available
*/
BOOLEAN
STDCALL
MmIsThisAnNtAsSystem (
VOID
);
NTSTATUS
STDCALL
MmIsVerifierEnabled (
OUT PULONG VerifierFlags
);
/*
* FUNCTION: Locks a section of the driver's code into memory
* ARGUMENTS:
* AddressWithinSection = Any address in the region
* RETURNS: A handle to the region
*/
#define MmLockPagableCodeSection(Address) \
MmLockPagableDataSection(Address)
/*
* FUNCTION: Locks a section of the driver's data into memory
* ARGUMENTS:
* AddressWithinSection = Any address in the region
* RETURNS: A handle to the region
*/
PVOID
STDCALL
MmLockPagableDataSection (
PVOID AddressWithinSection
);
PVOID
STDCALL
MmLockPagableImageSection (
PVOID AddressWithinSection
);
/*
* FUNCTION: Locks a section of memory
* ARGUMENTS:
* ImageSectionHandle = handle returned from MmLockPagableCodeSection
* or MmLockPagableDataSection
*/
VOID
STDCALL
MmLockPagableSectionByHandle (
PVOID ImageSectionHandle
);
PVOID
STDCALL
MmMapIoSpace (
PHYSICAL_ADDRESS PhysicalAddress,
ULONG NumberOfBytes,
MEMORY_CACHING_TYPE CacheEnable
);
/*
* FUNCTION: Maps the pages described by a given MDL
* ARGUMENTS:
* MemoryDescriptorList = MDL updated by MmProbeAndLockPages
* AccessMode = Access mode in which to map the MDL
* RETURNS: The base virtual address which maps the buffer
*/
PVOID
STDCALL
MmMapLockedPages (
PMDL MemoryDescriptorList,
KPROCESSOR_MODE AccessMode
);
PVOID STDCALL
MmMapLockedPagesSpecifyCache ( IN PMDL Mdl,
IN KPROCESSOR_MODE AccessMode,
IN MEMORY_CACHING_TYPE CacheType,
IN PVOID BaseAddress,
IN ULONG BugCheckOnFailure,
IN MM_PAGE_PRIORITY Priority);
VOID
STDCALL
MmMapMemoryDumpMdl (
PVOID Unknown0
);
PVOID
STDCALL
MmMapLockedPagesWithReservedMapping (
IN PVOID MappingAddress,
IN ULONG PoolTag,
IN PMDL MemoryDescriptorList,
IN MEMORY_CACHING_TYPE CacheType
);
NTSTATUS
STDCALL
MmMapUserAddressesToPage (
IN PVOID BaseAddress,
IN SIZE_T NumberOfBytes,
IN PVOID PageAddress
);
PVOID
STDCALL
MmMapVideoDisplay (
IN PHYSICAL_ADDRESS PhysicalAddress,
IN ULONG NumberOfBytes,
IN MEMORY_CACHING_TYPE CacheType
);
NTSTATUS
STDCALL
MmMapViewInSessionSpace (
IN PVOID Section,
OUT PVOID *MappedBase,
IN OUT PSIZE_T ViewSize
);
NTSTATUS
STDCALL
MmMapViewInSystemSpace (
IN PVOID SectionObject,
OUT PVOID * MappedBase,
IN PULONG ViewSize
);
NTSTATUS
STDCALL
MmMapViewOfSection (
IN PVOID SectionObject,
IN PEPROCESS Process,
IN OUT PVOID * BaseAddress,
IN ULONG ZeroBits,
IN ULONG CommitSize,
IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
IN OUT PULONG ViewSize,
IN SECTION_INHERIT InheritDisposition,
IN ULONG AllocationType,
IN ULONG Protect
);
NTSTATUS
STDCALL
MmMarkPhysicalMemoryAsBad(
IN PPHYSICAL_ADDRESS StartAddress,
IN OUT PLARGE_INTEGER NumberOfBytes
);
NTSTATUS
STDCALL
MmMarkPhysicalMemoryAsGood(
IN PPHYSICAL_ADDRESS StartAddress,
IN OUT PLARGE_INTEGER NumberOfBytes
);
/*
* FUNCTION: Makes the whole driver pageable
* ARGUMENTS:
* AddressWithinSection = Any address within the driver
*/
VOID
STDCALL
MmPageEntireDriver (
PVOID AddressWithinSection
);
NTSTATUS
STDCALL
MmPrefetchPages (
IN ULONG NumberOfLists,
IN PREAD_LIST *ReadLists
);
/*
* VOID
* MmPrepareMdlForReuse (
* PMDL Mdl
* );
*
* FUNCTION:
* Reinitializes a caller-allocated MDL
*
* ARGUMENTS:
* Mdl = Points to the MDL that will be reused
*/
#define MmPrepareMdlForReuse(Mdl) \
if (((Mdl)->MdlFlags & MDL_PARTIAL_HAS_BEEN_MAPPED) != 0) \
{ \
ASSERT(((Mdl)->MdlFlags & MDL_PARTIAL) != 0); \
MmUnmapLockedPages ((Mdl)->MappedSystemVa, (Mdl)); \
} \
else if (((Mdl)->MdlFlags & MDL_PARTIAL) == 0) \
{ \
ASSERT(((Mdl)->MdlFlags & MDL_MAPPED_TO_SYSTEM_VA) == 0); \
}
/*
* FUNCTION: Probes the specified pages, makes them resident and locks
* the physical pages mapped by the virtual address range
* ARGUMENTS:
* MemoryDescriptorList = MDL which supplies the virtual address,
* byte offset and length
* AccessMode = Access mode with which to probe the arguments
* Operation = Types of operation for which the pages should be
* probed
*/
VOID
STDCALL
MmProbeAndLockPages (
PMDL MemoryDescriptorList,
KPROCESSOR_MODE AccessMode,
LOCK_OPERATION Operation
);
VOID
STDCALL
MmProbeAndLockProcessPages (
IN OUT PMDL MemoryDescriptorList,
IN PEPROCESS Process,
IN KPROCESSOR_MODE AccessMode,
IN LOCK_OPERATION Operation
);
VOID
STDCALL
MmProbeAndLockSelectedPages(
IN OUT PMDL MemoryDescriptorList,
IN LARGE_INTEGER PageList[],
IN KPROCESSOR_MODE AccessMode,
IN LOCK_OPERATION Operation
);
NTSTATUS
STDCALL
MmProtectMdlSystemAddress (
IN PMDL MemoryDescriptorList,
IN ULONG NewProtect
);
/*
* FUNCTION: Returns an estimate of the amount of memory in the system
* RETURNS: Either MmSmallSystem, MmMediumSystem or MmLargeSystem
*/
MM_SYSTEM_SIZE
STDCALL
MmQuerySystemSize (
VOID
);
NTSTATUS
STDCALL
MmRemovePhysicalMemory (
IN PPHYSICAL_ADDRESS StartAddress,
IN OUT PLARGE_INTEGER NumberOfBytes
);
/*
* FUNCTION: Resets the pageable status of a driver's sections to their
* compile time settings
* ARGUMENTS:
* AddressWithinSection = Any address within the driver
*/
VOID
STDCALL
MmResetDriverPaging (
PVOID AddressWithinSection
);
PVOID
STDCALL
MmSecureVirtualMemory (
PVOID Address,
SIZE_T Length,
ULONG Mode
);
BOOLEAN
STDCALL
MmSetAddressRangeModified (
IN PVOID Address,
IN ULONG Length
);
NTSTATUS
STDCALL
MmSetBankedSection (
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2,
DWORD Unknown3,
DWORD Unknown4,
DWORD Unknown5
);
/*
* FUNCTION: Returns the number of bytes to allocate for an MDL
* describing a given address range
* ARGUMENTS:
* Base = Base virtual address for the region
* Length = size in bytes of the region
* RETURNS: The number of bytes required for the MDL
*/
ULONG
STDCALL
MmSizeOfMdl (
PVOID Base,
ULONG Length
);
ULONG
STDCALL
MmTrimAllSystemPagableMemory (
IN ULONG PurgeTransitionList
);
/*
* FUNCTION: Unlocks the physical pages described by a given MDL
* ARGUMENTS:
* Mdl = Mdl to unlock
*/
VOID
STDCALL
MmUnlockPages (
PMDL Mdl
);
/*
* FUNCTION: Releases a section of driver code or data previously locked into
* memory
* ARGUMENTS:
* ImageSectionHandle = Handle for the locked section
*/
VOID
STDCALL
MmUnlockPagableImageSection (
PVOID ImageSectionHandle
);
VOID
STDCALL
MmUnmapIoSpace (
PVOID BaseAddress,
ULONG NumberOfBytes
);
VOID
STDCALL
MmUnmapLockedPages (
PVOID BaseAddress,
PMDL MemoryDescriptorList
);
VOID
STDCALL
MmUnmapReservedMapping (
IN PVOID BaseAddress,
IN ULONG PoolTag,
IN PMDL MemoryDescriptorList
);
VOID
STDCALL
MmUnmapVideoDisplay (
IN PVOID BaseAddress,
IN ULONG NumberOfBytes
);
NTSTATUS
STDCALL
MmUnmapViewInSystemSpace (
IN PVOID MappedBase
);
NTSTATUS
STDCALL
MmUnmapViewInSessionSpace (
IN PVOID MappedBase
);
#if 0
NTSTATUS
STDCALL
MmUnmapViewOfSection (
PEPROCESS Process,
PMEMORY_AREA MemoryArea
);
#endif
VOID
STDCALL
MmUnsecureVirtualMemory (
PVOID SecureMem
);
VOID STDCALL
ProbeForRead (IN CONST VOID *Address,
IN ULONG Length,
IN ULONG Alignment);
VOID STDCALL
ProbeForWrite (IN CONST VOID *Address,
IN ULONG Length,
IN ULONG Alignment);
#endif /* _INCLUDE_DDK_MMFUNCS_H */
/* EOF */

View File

@@ -1,153 +0,0 @@
/* $Id$ */
#ifndef _INCLUDE_DDK_MMTYPES_H
#define _INCLUDE_DDK_MMTYPES_H
#include <ddk/i386/pagesize.h>
#include <ntos/mm.h>
/*
* FUNCTION: Determines if the given virtual address is page aligned
*/
#define IS_PAGE_ALIGNED(Va) (((ULONG)Va)&0xfff)
/*
* PURPOSE: Returns the byte offset of a field within a structure
*/
#ifndef FIELD_OFFSET
#define FIELD_OFFSET(Type,Field) ((ULONG_PTR)(&(((Type *)(0))->Field)))
#endif
/*
* PURPOSE: Returns the base address structure if the caller knows the
* address of a field within the structure
* ARGUMENTS:
* Address = address of the field
* Type = Type of the whole structure
* Field = Name of the field whose address is none
*/
#ifndef CONTAINING_RECORD
#define CONTAINING_RECORD(Address,Type,Field) ((Type *)(((ULONG_PTR)Address) - FIELD_OFFSET(Type,Field)))
#endif
#ifdef _M_IX86
typedef ULONG PFN_NUMBER, *PPFN_NUMBER;
#elif _M_IA64
typedef ULONG64 PFN_NUMBER, *PPFN_NUMBER;
#else
#error Unknown architecture
#endif
#define MDL_MAPPED_TO_SYSTEM_VA (0x1)
#define MDL_PAGES_LOCKED (0x2)
#define MDL_SOURCE_IS_NONPAGED_POOL (0x4)
#define MDL_ALLOCATED_FIXED_SIZE (0x8)
#define MDL_PARTIAL (0x10)
#define MDL_PARTIAL_HAS_BEEN_MAPPED (0x20)
#define MDL_IO_PAGE_READ (0x40)
#define MDL_WRITE_OPERATION (0x80)
#define MDL_PARENT_MAPPED_SYSTEM_VA (0x100)
#define MDL_LOCK_HELD (0x200)
#define MDL_SCATTER_GATHER_VA (0x400)
#define MDL_IO_SPACE (0x800)
#define MDL_NETWORK_HEADER (0x1000)
#define MDL_MAPPING_CAN_FAIL (0x2000)
#define MDL_ALLOCATED_MUST_SUCCEED (0x4000)
#define MDL_64_BIT_VA (0x8000)
typedef enum _MM_PAGE_PRIORITY {
LowPagePriority,
NormalPagePriority = 16,
HighPagePriority = 32
} MM_PAGE_PRIORITY;
typedef struct _MDL
/*
* PURPOSE: Describes a user buffer passed to a system API
*/
{
struct _MDL* Next;
CSHORT Size;
CSHORT MdlFlags;
struct _EPROCESS* Process;
PVOID MappedSystemVa;
PVOID StartVa;
ULONG ByteCount;
ULONG ByteOffset;
} MDL, *PMDL;
typedef struct _PHYSICAL_MEMORY_RANGE {
PHYSICAL_ADDRESS BaseAddress;
LARGE_INTEGER NumberOfBytes;
} PHYSICAL_MEMORY_RANGE, *PPHYSICAL_MEMORY_RANGE;
// read file scatter / write file scatter
typedef union _FILE_SEGMENT_ELEMENT {
PVOID Buffer;
ULONG Alignment;
}FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT;
typedef struct _READ_LIST {
struct _FILE_OBJECT* FileObject;
ULONG NumberOfEntries;
ULONG IsImage;
FILE_SEGMENT_ELEMENT List[1];
} READ_LIST, *PREAD_LIST;
#define MmSmallSystem (0)
#define MmMediumSystem (1)
#define MmLargeSystem (2)
/* Used in MmFlushImageSection */
typedef enum _MMFLUSH_TYPE
{
MmFlushForDelete,
MmFlushForWrite
} MMFLUSH_TYPE;
typedef enum _MEMORY_CACHING_TYPE_ORIG {
MmFrameBufferCached = 2
} MEMORY_CACHING_TYPE_ORIG;
typedef enum _MEMORY_CACHING_TYPE
{
MmNonCached = FALSE,
MmCached = TRUE,
MmWriteCombined = MmFrameBufferCached,
MmHardwareCoherentCached,
MmMaximumCacheType
} MEMORY_CACHING_TYPE;
typedef struct _MMWSL *PMMWSL;
typedef struct _MMSUPPORT_FLAGS {
ULONG SessionSpace : 1;
ULONG BeingTrimmed : 1;
ULONG SessionLeader : 1;
ULONG TrimHard : 1;
ULONG WorkingSetHard : 1;
ULONG AddressSpaceBeingDeleted : 1;
ULONG Available : 10;
ULONG AllowWorkingSetAdjustment : 8;
ULONG MemoryPriority : 8;
} MMSUPPORT_FLAGS, *PMMSUPPORT_FLAGS;
typedef struct _MMSUPPORT
{
LARGE_INTEGER LastTrimTime;
MMSUPPORT_FLAGS Flags;
ULONG PageFaultCount;
ULONG PeakWorkingSetSize;
ULONG WorkingSetSize;
ULONG MinimumWorkingSetSize;
ULONG MaximumWorkingSetSize;
PMMWSL VmWorkingSetList;
LIST_ENTRY WorkingSetExpansionLinks;
ULONG Claim;
ULONG NextEstimationSlot;
ULONG NextAgingSlot;
ULONG EstimatedAvailable;
ULONG GrowthSinceLastEstimate;
} MMSUPPORT, *PMMSUPPORT;
#endif

View File

@@ -1,11 +0,0 @@
#define FILE_DEVICE_BOOTVID 53335
#define IOCTL_BOOTVID_INITIALIZE \
CTL_CODE(FILE_DEVICE_BOOTVID, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_BOOTVID_CLEANUP \
CTL_CODE(FILE_DEVICE_BOOTVID, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
typedef struct
{
BOOL STDCALL_FUNC (*ResetDisplay)(VOID);
} NTBOOTVID_FUNCTION_TABLE;

View File

@@ -1,247 +0,0 @@
/*
* ntdd8042.h
*
* i8042 IOCTL interface.
*
* This file is part of the w32api package.
*
* Contributors:
* Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAIMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __NTDD8042_H
#define __NTDD8042_H
#if __GNUC__ >=3
#pragma GCC system_header
#endif
#ifdef __cplusplus
extern "C" {
#endif
#pragma pack(push,4)
#include "ntddk.h"
#include "ntddkbd.h"
#include "ntddmou.h"
#ifndef DDKAPI
#define DDKAPI STDCALL
#endif
#define IOCTL_INTERNAL_I8042_CONTROLLER_WRITE_BUFFER \
CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0FF2, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_INTERNAL_I8042_HOOK_KEYBOARD \
CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0FF0, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_INTERNAL_I8042_KEYBOARD_START_INFORMATION \
CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0FF3, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_INTERNAL_I8042_KEYBOARD_WRITE_BUFFER \
CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0FF1, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_INTERNAL_I8042_HOOK_MOUSE \
CTL_CODE(FILE_DEVICE_MOUSE, 0x0FF0, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION \
CTL_CODE(FILE_DEVICE_MOUSE, 0x0FF3, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER \
CTL_CODE(FILE_DEVICE_MOUSE, 0x0FF1, METHOD_NEITHER, FILE_ANY_ACCESS)
#define I8042_POWER_SYS_BUTTON 0x0001
#define I8042_SLEEP_SYS_BUTTON 0x0002
#define I8042_WAKE_SYS_BUTTON 0x0004
#define I8042_SYS_BUTTONS (I8042_POWER_SYS_BUTTON | \
I8042_SLEEP_SYS_BUTTON | \
I8042_WAKE_SYS_BUTTON)
typedef enum _TRANSMIT_STATE {
Idle = 0,
SendingBytes
} TRANSMIT_STATE;
typedef struct _OUTPUT_PACKET {
PUCHAR Bytes;
ULONG CurrentByte;
ULONG ByteCount;
TRANSMIT_STATE State;
} OUTPUT_PACKET, *POUTPUT_PACKET;
typedef enum _KEYBOARD_SCAN_STATE {
Normal,
GotE0,
GotE1
} KEYBOARD_SCAN_STATE, *PKEYBOARD_SCAN_STATE;
typedef enum _MOUSE_STATE {
MouseIdle,
XMovement,
YMovement,
ZMovement,
MouseExpectingACK,
MouseResetting
} MOUSE_STATE, *PMOUSE_STATE;
typedef enum _MOUSE_RESET_SUBSTATE {
ExpectingReset,
ExpectingResetId,
ExpectingGetDeviceIdACK,
ExpectingGetDeviceIdValue,
ExpectingSetResolutionDefaultACK,
ExpectingSetResolutionDefaultValueACK,
ExpectingSetResolutionACK,
ExpectingSetResolutionValueACK,
ExpectingSetScaling1to1ACK,
ExpectingSetScaling1to1ACK2,
ExpectingSetScaling1to1ACK3,
ExpectingReadMouseStatusACK,
ExpectingReadMouseStatusByte1,
ExpectingReadMouseStatusByte2,
ExpectingReadMouseStatusByte3,
StartPnPIdDetection,
ExpectingLoopSetSamplingRateACK,
ExpectingLoopSetSamplingRateValueACK,
ExpectingPnpIdByte1,
ExpectingPnpIdByte2,
ExpectingPnpIdByte3,
ExpectingPnpIdByte4,
ExpectingPnpIdByte5,
ExpectingPnpIdByte6,
ExpectingPnpIdByte7,
EnableWheel,
Enable5Buttons,
ExpectingGetDeviceId2ACK,
ExpectingGetDeviceId2Value,
ExpectingSetSamplingRateACK,
ExpectingSetSamplingRateValueACK,
ExpectingEnableACK,
ExpectingFinalResolutionACK,
ExpectingFinalResolutionValueACK,
ExpectingGetDeviceIdDetectACK,
ExpectingGetDeviceIdDetectValue,
CustomHookStateMinimum = 100,
CustomHookStateMaximum = 999,
I8042ReservedMinimum = 1000
} MOUSE_RESET_SUBSTATE, *PMOUSE_RESET_SUBSTATE;
typedef struct _INTERNAL_I8042_START_INFORMATION {
ULONG Size;
PKINTERRUPT InterruptObject;
ULONG Reserved[8];
} INTERNAL_I8042_START_INFORMATION, *PINTERNAL_I8042_START_INFORMATION;
typedef VOID DDKAPI
(*PI8042_ISR_WRITE_PORT)(
IN PVOID Context,
IN UCHAR Value);
typedef VOID DDKAPI
(*PI8042_QUEUE_PACKET)(
IN PVOID Context);
typedef NTSTATUS DDKAPI
(*PI8042_SYNCH_READ_PORT) (
IN PVOID Context,
OUT PUCHAR Value,
IN BOOLEAN WaitForACK);
typedef NTSTATUS DDKAPI
(*PI8042_SYNCH_WRITE_PORT) (
IN PVOID Context,
IN UCHAR Value,
IN BOOLEAN WaitForACK);
typedef NTSTATUS DDKAPI
(*PI8042_KEYBOARD_INITIALIZATION_ROUTINE) (
IN PVOID InitializationContext,
IN PVOID SynchFuncContext,
IN PI8042_SYNCH_READ_PORT ReadPort,
IN PI8042_SYNCH_WRITE_PORT WritePort,
OUT PBOOLEAN TurnTranslationOn);
typedef BOOLEAN DDKAPI
(*PI8042_KEYBOARD_ISR) (
PVOID IsrContext,
PKEYBOARD_INPUT_DATA CurrentInput,
POUTPUT_PACKET CurrentOutput,
UCHAR StatusByte,
PUCHAR Byte,
PBOOLEAN ContinueProcessing,
PKEYBOARD_SCAN_STATE ScanState);
typedef struct _INTERNAL_I8042_HOOK_KEYBOARD {
//
// Context variable for all callback routines
//
OUT PVOID Context;
//
// Routine to call after the mouse is reset
//
OUT PI8042_KEYBOARD_INITIALIZATION_ROUTINE InitializationRoutine;
//
// Routine to call when a byte is received via the interrupt
//
OUT PI8042_KEYBOARD_ISR IsrRoutine;
//
// Write function
//
//UNIMPLEMENTED IN PI8042_ISR_WRITE_PORT IsrWritePort;
//
// Queue the current packet (ie the one passed into the isr callback hook)
// to be reported to the class driver
//
//UNIMPLEMENTED IN PI8042_QUEUE_PACKET QueueKeyboardPacket;
//
// Context for IsrWritePort, QueueKeyboardPacket
//
//UNIMPLEMENTED IN PVOID CallContext;
} INTERNAL_I8042_HOOK_KEYBOARD, *PINTERNAL_I8042_HOOK_KEYBOARD;
typedef BOOLEAN DDKAPI
(*PI8042_MOUSE_ISR)(
PVOID IsrContext,
PMOUSE_INPUT_DATA CurrentInput,
POUTPUT_PACKET CurrentOutput,
UCHAR StatusByte,
PUCHAR Byte,
PBOOLEAN ContinueProcessing,
PMOUSE_STATE MouseState,
PMOUSE_RESET_SUBSTATE ResetSubState);
typedef struct _INTERNAL_I8042_HOOK_MOUSE {
OUT PVOID Context;
OUT PI8042_MOUSE_ISR IsrRoutine;
IN PI8042_ISR_WRITE_PORT IsrWritePort;
IN PI8042_QUEUE_PACKET QueueMousePacket;
IN PVOID CallContext;
} INTERNAL_I8042_HOOK_MOUSE, *PINTERNAL_I8042_HOOK_MOUSE;
#pragma pack(pop)
#ifdef __cplusplus
}
#endif
#endif /* __NTDD8042_H */

View File

@@ -1,59 +0,0 @@
/*
* ntddbeep.h
*
* Beep device IOCTL interface
*
* This file is part of the w32api package.
*
* Contributors:
* Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAIMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __NTDDBEEP_H
#define __NTDDBEEP_H
#if __GNUC__ >=3
#pragma GCC system_header
#endif
#ifdef __cplusplus
extern "C" {
#endif
#pragma pack(push,4)
#include "ntddk.h"
#define DD_BEEP_DEVICE_NAME "\\Device\\Beep"
#define DD_BEEP_DEVICE_NAME_U L"\\Device\\Beep"
#define IOCTL_BEEP_SET \
CTL_CODE(FILE_DEVICE_BEEP,0,METHOD_BUFFERED,FILE_ANY_ACCESS)
typedef struct _BEEP_SET_PARAMETERS {
ULONG Frequency;
ULONG Duration;
} BEEP_SET_PARAMETERS, *PBEEP_SET_PARAMETERS;
#define BEEP_FREQUENCY_MINIMUM 0x25
#define BEEP_FREQUENCY_MAXIMUM 0x7FFF
#pragma pack(pop)
#ifdef __cplusplus
}
#endif
#endif /* __NTDDBEEP_H */

View File

@@ -1,66 +0,0 @@
#ifndef _NTDDBLUE_H_INCLUDED_
#define _NTDDBLUE_H_INCLUDED_
#include <ntos/console.h>
#define IOCTL_CONSOLE_GET_SCREEN_BUFFER_INFO CTL_CODE(FILE_DEVICE_SCREEN, 0x801, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CONSOLE_SET_SCREEN_BUFFER_INFO CTL_CODE(FILE_DEVICE_SCREEN, 0x802, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_CONSOLE_GET_CURSOR_INFO CTL_CODE(FILE_DEVICE_SCREEN, 0x803, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CONSOLE_SET_CURSOR_INFO CTL_CODE(FILE_DEVICE_SCREEN, 0x804, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_CONSOLE_GET_MODE CTL_CODE(FILE_DEVICE_SCREEN, 0x805, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CONSOLE_SET_MODE CTL_CODE(FILE_DEVICE_SCREEN, 0x806, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_CONSOLE_FILL_OUTPUT_ATTRIBUTE CTL_CODE(FILE_DEVICE_SCREEN, 0x810, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_CONSOLE_READ_OUTPUT_ATTRIBUTE CTL_CODE(FILE_DEVICE_SCREEN, 0x811, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
#define IOCTL_CONSOLE_WRITE_OUTPUT_ATTRIBUTE CTL_CODE(FILE_DEVICE_SCREEN, 0x812, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
#define IOCTL_CONSOLE_SET_TEXT_ATTRIBUTE CTL_CODE(FILE_DEVICE_SCREEN, 0x813, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_CONSOLE_FILL_OUTPUT_CHARACTER CTL_CODE(FILE_DEVICE_SCREEN, 0x820, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_CONSOLE_READ_OUTPUT_CHARACTER CTL_CODE(FILE_DEVICE_SCREEN, 0x821, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
#define IOCTL_CONSOLE_WRITE_OUTPUT_CHARACTER CTL_CODE(FILE_DEVICE_SCREEN, 0x822, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
#define IOCTL_CONSOLE_DRAW CTL_CODE(FILE_DEVICE_SCREEN, 0x830, METHOD_IN_DIRECT, FILE_WRITE_ACCESS)
/* TYPEDEFS **************************************************************/
typedef struct tagCONSOLE_MODE
{
DWORD dwMode;
} CONSOLE_MODE, *PCONSOLE_MODE;
typedef struct tagOUTPUT_ATTRIBUTE
{
WORD wAttribute;
DWORD nLength;
COORD dwCoord;
DWORD dwTransfered;
} OUTPUT_ATTRIBUTE, *POUTPUT_ATTRIBUTE;
typedef struct tagOUTPUT_CHARACTER
{
CHAR cCharacter;
DWORD nLength;
COORD dwCoord;
DWORD dwTransfered;
} OUTPUT_CHARACTER, *POUTPUT_CHARACTER;
typedef struct tagCONSOLE_DRAW
{
UINT X; /* Origin */
UINT Y;
UINT SizeX; /* Size of the screen buffer (chars) */
UINT SizeY;
UINT CursorX; /* New cursor position (screen-relative) */
UINT CursorY;
/* Followed by screen buffer in char/attrib format */
} CONSOLE_DRAW, *PCONSOLE_DRAW;
#endif /* _NTDDBLUE_H_INCLUDED_ */

View File

@@ -1,97 +0,0 @@
/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/ddk/ntddk.h
* PURPOSE: Interface definitions for drivers
* PROGRAMMER: David Welch (welch@mcmail.com)
* UPDATE HISTORY:
* 15/05/98: Created
*/
#ifdef __USE_W32API
#include_next <ddk/ntddk.h>
#else /* __USE_W32API */
#ifndef __NTDDK_H
#define __NTDDK_H
#ifdef __cplusplus
extern "C" {
#endif
/* INCLUDES ***************************************************************/
#if defined(__GNUC__)
#define FASTCALL __attribute__((fastcall))
#else
#define FASTCALL __fastcall
#endif
#define STATIC static
#ifndef _GNU_H_WINDOWS_H
/* NASTY HACK! Our msvcrt are messed up, causing msvcrt.dll to crash when
* the headers are mixed with MinGW msvcrt headers. Not including stdlib.h
* seems to correct this.
*/
#include <stdlib.h>
#include <string.h>
#endif
#include <ntos/types.h>
#include <ntos/time.h>
#include <ntos/cdrom.h>
#include <ntos/disk.h>
#include <ntos/registry.h>
#include <ntos/port.h>
#include <ntos/synch.h>
#include <napi/types.h>
#include <pe.h>
#include <ddk/status.h>
#include <ddk/ntdef.h>
#include <ddk/defines.h>
#include <ddk/types.h>
#include <ddk/cmtypes.h>
#include <ddk/ketypes.h>
#include <ntos/security.h>
#include <ddk/setypes.h>
#include <ddk/mmtypes.h>
#include <ddk/potypes.h>
#include <ddk/pnptypes.h>
#include <ddk/extypes.h>
#include <ddk/iotypes.h>
#include <ddk/pstypes.h>
#include <ntos/ldrtypes.h>
#include <ntos/zwtypes.h>
#include <ddk/ioctrl.h>
#include <ntos/rtltypes.h>
#include <napi/shared_data.h>
#include <ntos/zw.h>
#include <ntos/rtl.h>
#include <ddk/dbgfuncs.h>
#include <ddk/ldrfuncs.h>
#if defined(__NTOSKRNL__) || defined(__NTDRIVER__) || defined(__NTHAL__)
#include <ddk/exfuncs.h>
#include <ddk/halfuncs.h>
#include <ddk/mmfuncs.h>
#include <ddk/kefuncs.h>
#include <ddk/pofuncs.h>
#include <ddk/pnpfuncs.h>
#include <ddk/iofuncs.h>
#include <ddk/psfuncs.h>
#include <ddk/obfuncs.h>
#include <ddk/sefuncs.h>
#endif /*__NTOSKRNL__ || __NTDRIVER__ || __NTHAL__ */
#ifdef __cplusplus
}
#endif
#endif /* __NTDDK_H */
#endif /* __USE_W32API */

View File

@@ -1,145 +0,0 @@
/*
* ntddkbd.h
*
* Keyboard IOCTL interface
*
* This file is part of the w32api package.
*
* Contributors:
* Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAIMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __NTDDKBD_H
#define __NTDDKBD_H
#if __GNUC__ >=3
#pragma GCC system_header
#endif
#ifdef __cplusplus
extern "C" {
#endif
#pragma pack(push,4)
#include "ntddk.h"
#define DD_KEYBOARD_DEVICE_NAME "\\Device\\KeyboardClass"
#define DD_KEYBOARD_DEVICE_NAME_U L"\\Device\\KeyboardClass"
#define IOCTL_KEYBOARD_QUERY_ATTRIBUTES \
CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_KEYBOARD_QUERY_INDICATORS \
CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_KEYBOARD_QUERY_INDICATOR_TRANSLATION \
CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0020, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_KEYBOARD_QUERY_TYPEMATIC \
CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_KEYBOARD_SET_TYPEMATIC \
CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0001, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_KEYBOARD_SET_INDICATORS \
CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0002, METHOD_BUFFERED, FILE_ANY_ACCESS)
//DEFINE_GUID(GUID_DEVINTERFACE_KEYBOARD, \
// 0x884b96c3, 0x56ef, 0x11d1, 0xbc, 0x8c, 0x00, 0xa0, 0xc9, 0x14, 0x05, 0xdd);
#define KEYBOARD_ERROR_VALUE_BASE 10000
/* KEYBOARD_INPUT_DATA.MakeCode constants */
#define KEYBOARD_OVERRUN_MAKE_CODE 0xFF
/* KEYBOARD_INPUT_DATA.Flags constants */
#define KEY_MAKE 0
#define KEY_BREAK 1
#define KEY_E0 2
#define KEY_E1 4
/*
* Unit number. E.g., for \Device\KeyboardPort0 the unit is '0',
* for \Device\KeyboardPort1 the unit is '1', and so on.
*/
typedef struct _KEYBOARD_INPUT_DATA {
USHORT UnitId;
USHORT MakeCode;
USHORT Flags;
USHORT Reserved;
ULONG ExtraInformation;
} KEYBOARD_INPUT_DATA, *PKEYBOARD_INPUT_DATA;
typedef struct _KEYBOARD_TYPEMATIC_PARAMETERS {
USHORT UnitId;
USHORT Rate;
USHORT Delay;
} KEYBOARD_TYPEMATIC_PARAMETERS, *PKEYBOARD_TYPEMATIC_PARAMETERS;
typedef struct _KEYBOARD_ID {
UCHAR Type;
UCHAR Subtype;
} KEYBOARD_ID, *PKEYBOARD_ID;
#define ENHANCED_KEYBOARD(Id) ((Id).Type == 2 || (Id).Type == 4 || FAREAST_KEYBOARD(Id))
#define FAREAST_KEYBOARD(Id) ((Id).Type == 7 || (Id).Type == 8)
typedef struct _KEYBOARD_INDICATOR_PARAMETERS {
USHORT UnitId;
USHORT LedFlags;
} KEYBOARD_INDICATOR_PARAMETERS, *PKEYBOARD_INDICATOR_PARAMETERS;
typedef struct _INDICATOR_LIST {
USHORT MakeCode;
USHORT IndicatorFlags;
} INDICATOR_LIST, *PINDICATOR_LIST;
typedef struct _KEYBOARD_INDICATOR_TRANSLATION {
USHORT NumberOfIndicatorKeys;
INDICATOR_LIST IndicatorList[1];
} KEYBOARD_INDICATOR_TRANSLATION, *PKEYBOARD_INDICATOR_TRANSLATION;
typedef struct _KEYBOARD_ATTRIBUTES {
KEYBOARD_ID KeyboardIdentifier;
USHORT KeyboardMode;
USHORT NumberOfFunctionKeys;
USHORT NumberOfIndicators;
USHORT NumberOfKeysTotal;
ULONG InputDataQueueLength;
KEYBOARD_TYPEMATIC_PARAMETERS KeyRepeatMinimum;
KEYBOARD_TYPEMATIC_PARAMETERS KeyRepeatMaximum;
} KEYBOARD_ATTRIBUTES, *PKEYBOARD_ATTRIBUTES;
typedef struct _KEYBOARD_UNIT_ID_PARAMETER {
USHORT UnitId;
} KEYBOARD_UNIT_ID_PARAMETER, *PKEYBOARD_UNIT_ID_PARAMETER;
typedef struct _KEYBOARD_IME_STATUS {
USHORT UnitId;
ULONG ImeOpen;
ULONG ImeConvMode;
} KEYBOARD_IME_STATUS, *PKEYBOARD_IME_STATUS;
#pragma pack(pop)
#ifdef __cplusplus
}
#endif
#endif /* __NTDDKBD_H */

View File

@@ -1,153 +0,0 @@
/*
* ntddmou.h
*
* Mouse device IOCTL interface.
*
* This file is part of the w32api package.
*
* Contributors:
* Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAIMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __NTDDMOU_H
#define __NTDDMOU_H
#if __GNUC__ >=3
#pragma GCC system_header
#endif
#ifdef __cplusplus
extern "C" {
#endif
#pragma pack(push,4)
#include "ntddk.h"
#define DD_MOUSE_DEVICE_NAME "\\Device\\PointerClass"
#define DD_MOUSE_DEVICE_NAME_U L"\\Device\\PointerClass"
#define IO_MOUSE_INCREMENT 6
#define MOUSE_BUFFER_SIZE 32
#define IOCTL_INTERNAL_MOUSE_CONNECT CTL_CODE(FILE_DEVICE_MOUSE, 0x0080, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_INTERNAL_MOUSE_DISCONNECT CTL_CODE(FILE_DEVICE_MOUSE, 0x0100, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_INTERNAL_MOUSE_ENABLE CTL_CODE(FILE_DEVICE_MOUSE, 0x0200, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_INTERNAL_MOUSE_DISABLE CTL_CODE(FILE_DEVICE_MOUSE, 0x0400, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_MOUSE_QUERY_ATTRIBUTES \
CTL_CODE(FILE_DEVICE_MOUSE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
//DEFINE_GUID(GUID_DEVINTERFACE_MOUSE, \
// 0x378de44c, 0x56ef, 0x11d1, 0xbc, 0x8c, 0x00, 0xa0, 0xc9, 0x14, 0x05, 0xdd);
#define MOUSE_ERROR_VALUE_BASE 20000
/* MOUSE_INPUT_DATA.ButtonFlags constants */
#define MOUSE_LEFT_BUTTON_DOWN 0x0001
#define MOUSE_LEFT_BUTTON_UP 0x0002
#define MOUSE_RIGHT_BUTTON_DOWN 0x0004
#define MOUSE_RIGHT_BUTTON_UP 0x0008
#define MOUSE_MIDDLE_BUTTON_DOWN 0x0010
#define MOUSE_MIDDLE_BUTTON_UP 0x0020
#define MOUSE_BUTTON_4_DOWN 0x0040
#define MOUSE_BUTTON_4_UP 0x0080
#define MOUSE_BUTTON_5_DOWN 0x0100
#define MOUSE_BUTTON_5_UP 0x0200
#define MOUSE_WHEEL 0x0400
#define MOUSE_BUTTON_1_DOWN MOUSE_LEFT_BUTTON_DOWN
#define MOUSE_BUTTON_1_UP MOUSE_LEFT_BUTTON_UP
#define MOUSE_BUTTON_2_DOWN MOUSE_RIGHT_BUTTON_DOWN
#define MOUSE_BUTTON_2_UP MOUSE_RIGHT_BUTTON_UP
#define MOUSE_BUTTON_3_DOWN MOUSE_MIDDLE_BUTTON_DOWN
#define MOUSE_BUTTON_3_UP MOUSE_MIDDLE_BUTTON_UP
/* MOUSE_INPUT_DATA.Flags constants */
#define MOUSE_MOVE_RELATIVE 0
#define MOUSE_MOVE_ABSOLUTE 1
#define MOUSE_VIRTUAL_DESKTOP 0x02
#define MOUSE_ATTRIBUTES_CHANGED 0x04
typedef struct _MOUSE_INPUT_DATA {
USHORT UnitId;
USHORT Flags;
union {
ULONG Buttons;
struct {
USHORT ButtonFlags;
USHORT ButtonData;
};
};
ULONG RawButtons;
LONG LastX;
LONG LastY;
ULONG ExtraInformation;
} MOUSE_INPUT_DATA, *PMOUSE_INPUT_DATA;
typedef struct _MOUSE_UNIT_ID_PARAMETER {
USHORT UnitId;
} MOUSE_UNIT_ID_PARAMETER, *PMOUSE_UNIT_ID_PARAMETER;
/* MOUSE_ATTRIBUTES.MouseIdentifier constants */
#define MOUSE_INPORT_HARDWARE 0x0001
#define MOUSE_I8042_HARDWARE 0x0002
#define MOUSE_SERIAL_HARDWARE 0x0004
#define BALLPOINT_I8042_HARDWARE 0x0008
#define BALLPOINT_SERIAL_HARDWARE 0x0010
#define WHEELMOUSE_I8042_HARDWARE 0x0020
#define WHEELMOUSE_SERIAL_HARDWARE 0x0040
#define MOUSE_HID_HARDWARE 0x0080
#define WHEELMOUSE_HID_HARDWARE 0x0100
typedef struct _MOUSE_ATTRIBUTES {
USHORT MouseIdentifier;
USHORT NumberOfButtons;
USHORT SampleRate;
ULONG InputDataQueueLength;
} MOUSE_ATTRIBUTES, *PMOUSE_ATTRIBUTES;
typedef struct _CLASS_INFORMATION {
PDEVICE_OBJECT DeviceObject;
PVOID CallBack;
} CLASS_INFORMATION, *PCLASS_INFORMATION;
typedef struct _GDI_INFORMATION {
PVOID CallBack;
} GDI_INFORMATION, *PGDI_INFORMATION;
typedef
VOID
(*PSERVICE_CALLBACK_ROUTINE) (
IN PVOID NormalContext,
IN PVOID SystemArgument1,
IN PVOID SystemArgument2,
IN OUT PVOID SystemArgument3
);
typedef
VOID
(*PGDI_SERVICE_CALLBACK_ROUTINE) (
IN PVOID SystemArgument1,
IN ULONG SystemArgument2
);
#pragma pack(pop)
#ifdef __cplusplus
}
#endif
#endif /* __NTDDMOU_H */

View File

@@ -1,179 +0,0 @@
/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: services/storage/include/ntddscsi.h
* PURPOSE: Basic SCSI definitions
* PROGRAMMER: Eric Kohl (ekohl@rz-online.de)
*/
#ifndef __NTDDSCSI_H
#define __NTDDSCSI_H
#if __GNUC__ >=3
#pragma GCC system_header
#endif
#ifdef __cplusplus
extern "C" {
#endif
#pragma pack(push,4)
#include "ntddk.h"
#define DD_SCSI_DEVICE_NAME "\\Device\\ScsiPort"
#define DD_SCSI_DEVICE_NAME_U L"\\Device\\ScsiPort"
#define IOCTL_SCSI_BASE FILE_DEVICE_CONTROLLER
#define IOCTL_SCSI_GET_INQUIRY_DATA \
CTL_CODE(IOCTL_SCSI_BASE, 0x0403, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SCSI_GET_CAPABILITIES \
CTL_CODE(IOCTL_SCSI_BASE, 0x0404, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SCSI_GET_ADDRESS \
CTL_CODE(IOCTL_SCSI_BASE, 0x0406, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SCSI_MINIPORT \
CTL_CODE(IOCTL_SCSI_BASE, 0x0402, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_SCSI_PASS_THROUGH \
CTL_CODE(IOCTL_SCSI_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_SCSI_PASS_THROUGH_DIRECT \
CTL_CODE(IOCTL_SCSI_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_SCSI_RESCAN_BUS \
CTL_CODE(IOCTL_SCSI_BASE, 0x0407, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SCSI_GET_DUMP_POINTERS \
CTL_CODE(FILE_DEVICE_CONTROLLER, 0x0408, METHOD_BUFFERED, FILE_ANY_ACCESS)
/* Used by IOCTL_SCSI_PASS_THROUGH */
typedef struct _SCSI_PASS_THROUGH {
USHORT Length;
UCHAR ScsiStatus;
UCHAR PathId;
UCHAR TargetId;
UCHAR Lun;
UCHAR CdbLength;
UCHAR SenseInfoLength;
UCHAR DataIn;
ULONG DataTransferLength;
ULONG TimeOutValue;
ULONG DataBufferOffset;
ULONG SenseInfoOffset;
UCHAR Cdb[16];
} SCSI_PASS_THROUGH, *PSCSI_PASS_THROUGH;
/* Used by IOCTL_SCSI_PASS_THROUGH_DIRECT */
typedef struct _SCSI_PASS_THROUGH_DIRECT {
USHORT Length;
UCHAR ScsiStatus;
UCHAR PathId;
UCHAR TargetId;
UCHAR Lun;
UCHAR CdbLength;
UCHAR SenseInfoLength;
UCHAR DataIn;
ULONG DataTransferLength;
ULONG TimeOutValue;
ULONG DataBufferOffset;
ULONG SenseInfoOffset;
UCHAR Cdb[16];
} SCSI_PASS_THROUGH_DIRECT, *PSCSI_PASS_THROUGH_DIRECT;
typedef struct _SRB_IO_CONTROL {
ULONG HeaderLength;
UCHAR Signature[8];
ULONG Timeout;
ULONG ControlCode;
ULONG ReturnCode;
ULONG Length;
} SRB_IO_CONTROL, *PSRB_IO_CONTROL;
/* Used by IOCTL_SCSI_GET_ADDRESS */
typedef struct _SCSI_ADDRESS {
ULONG Length;
UCHAR PortNumber;
UCHAR PathId;
UCHAR TargetId;
UCHAR Lun;
} SCSI_ADDRESS, *PSCSI_ADDRESS;
typedef struct _SCSI_BUS_DATA {
UCHAR NumberOfLogicalUnits;
UCHAR InitiatorBusId;
ULONG InquiryDataOffset;
}SCSI_BUS_DATA, *PSCSI_BUS_DATA;
typedef struct _SCSI_ADAPTER_BUS_INFO {
UCHAR NumberOfBuses;
SCSI_BUS_DATA BusData[1];
} SCSI_ADAPTER_BUS_INFO, *PSCSI_ADAPTER_BUS_INFO;
/* Used by IOCTL_SCSI_GET_CAPABILITIES */
typedef struct _IO_SCSI_CAPABILITIES {
ULONG Length;
ULONG MaximumTransferLength;
ULONG MaximumPhysicalPages;
ULONG SupportedAsynchronousEvents;
ULONG AlignmentMask;
BOOLEAN TaggedQueuing;
BOOLEAN AdapterScansDown;
BOOLEAN AdapterUsesPio;
} IO_SCSI_CAPABILITIES, *PIO_SCSI_CAPABILITIES;
/* Used by IOCTL_SCSI_GET_INQUIRY_DATA */
typedef struct _SCSI_INQUIRY_DATA {
UCHAR PathId;
UCHAR TargetId;
UCHAR Lun;
BOOLEAN DeviceClaimed;
ULONG InquiryDataLength;
ULONG NextInquiryDataOffset;
UCHAR InquiryData[1];
}SCSI_INQUIRY_DATA, *PSCSI_INQUIRY_DATA;
/* Pass through DataIn */
#define SCSI_IOCTL_DATA_OUT 0
#define SCSI_IOCTL_DATA_IN 1
#define SCSI_IOCTL_DATA_UNSPECIFIED 2
typedef struct _DUMP_POINTERS {
PADAPTER_OBJECT AdapterObject;
PVOID MappedRegisterBase;
PVOID DumpData;
PVOID CommonBufferVa;
LARGE_INTEGER CommonBufferPa;
ULONG CommonBufferSize;
BOOLEAN AllocateCommonBuffers;
BOOLEAN UseDiskDump;
UCHAR Spare1[2];
PVOID DeviceObject;
} DUMP_POINTERS, *PDUMP_POINTERS;
#pragma pack(pop)
#ifdef __cplusplus
}
#endif
#endif /* __NTDDSCSI_H */

View File

@@ -1,455 +0,0 @@
/*
* ntddser.h
*
* Serial port driver interface
*
* This file is part of the w32api package.
*
* Contributors:
* Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAIMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __NTDDSER_H
#define __NTDDSER_H
#if __GNUC__ >=3
#pragma GCC system_header
#endif
#ifdef __cplusplus
extern "C" {
#endif
#pragma pack(push,4)
#include "ntddk.h"
/* GUIDs */
#ifdef DEFINE_GUID
DEFINE_GUID(GUID_DEVINTERFACE_COMPORT,
0x86e0d1e0L, 0x8089, 0x11d0, 0x9c, 0xe4, 0x08, 0x00, 0x3e, 0x30, 0x1f, 0x73);
DEFINE_GUID(GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR,
0x4D36E978L, 0xE325, 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18);
#endif // DEFINE_GUID
#define IOCTL_SERIAL_CLEAR_STATS \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 36, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_CLR_DTR \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_CLR_RTS \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_CONFIG_SIZE \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 32, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_BAUD_RATE \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 20, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_CHARS \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 22, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_COMMSTATUS \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 27, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_DTRRTS \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_HANDFLOW \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 24, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_LINE_CONTROL \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_MODEM_CONTROL \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 37, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_MODEMSTATUS \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 26, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_PROPERTIES \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 29, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_STATS \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 35, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_TIMEOUTS \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_WAIT_MASK \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 16, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_IMMEDIATE_CHAR \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_LSRMST_INSERT \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 31, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_PURGE \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 19, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_RESET_DEVICE \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_BAUD_RATE \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_BREAK_ON \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_BREAK_OFF \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_CHARS \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 23, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_DTR \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_FIFO_CONTROL \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 39, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_HANDFLOW \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 25, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_LINE_CONTROL \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_MODEM_CONTROL \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 38, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_QUEUE_SIZE \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_RTS \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_TIMEOUTS \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_WAIT_MASK \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 17, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_XOFF \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_XON \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_WAIT_ON_MASK \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 18, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_XOFF_COUNTER \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 28, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_INTERNAL_BASIC_SETTINGS \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_INTERNAL_CANCEL_WAIT_WAKE \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_INTERNAL_DO_WAIT_WAKE \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_INTERNAL_RESTORE_SETTINGS \
CTL_CODE (FILE_DEVICE_SERIAL_PORT, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERENUM_PORT_DESC \
CTL_CODE (FILE_DEVICE_SERENUM, 130, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERENUM_GET_PORT_NAME \
CTL_CODE (FILE_DEVICE_SERENUM, 131, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_INTERNAL_SERENUM_REMOVE_SELF \
CTL_CODE (FILE_DEVICE_SERENUM, 129, METHOD_NEITHER, FILE_ANY_ACCESS)
typedef struct _SERIAL_BAUD_RATE {
ULONG BaudRate;
} SERIAL_BAUD_RATE, *PSERIAL_BAUD_RATE;
/* SERIAL_BAUD_RATE.BaudRate constants */
#define SERIAL_BAUD_075 0x00000001
#define SERIAL_BAUD_110 0x00000002
#define SERIAL_BAUD_134_5 0x00000004
#define SERIAL_BAUD_150 0x00000008
#define SERIAL_BAUD_300 0x00000010
#define SERIAL_BAUD_600 0x00000020
#define SERIAL_BAUD_1200 0x00000040
#define SERIAL_BAUD_1800 0x00000080
#define SERIAL_BAUD_2400 0x00000100
#define SERIAL_BAUD_4800 0x00000200
#define SERIAL_BAUD_7200 0x00000400
#define SERIAL_BAUD_9600 0x00000800
#define SERIAL_BAUD_14400 0x00001000
#define SERIAL_BAUD_19200 0x00002000
#define SERIAL_BAUD_38400 0x00004000
#define SERIAL_BAUD_56K 0x00008000
#define SERIAL_BAUD_128K 0x00010000
#define SERIAL_BAUD_115200 0x00020000
#define SERIAL_BAUD_57600 0x00040000
#define SERIAL_BAUD_USER 0x10000000
typedef struct _SERIAL_CHARS {
UCHAR EofChar;
UCHAR ErrorChar;
UCHAR BreakChar;
UCHAR EventChar;
UCHAR XonChar;
UCHAR XoffChar;
} SERIAL_CHARS, *PSERIAL_CHARS;
typedef struct _SERIAL_STATUS {
ULONG Errors;
ULONG HoldReasons;
ULONG AmountInInQueue;
ULONG AmountInOutQueue;
BOOLEAN EofReceived;
BOOLEAN WaitForImmediate;
} SERIAL_STATUS, *PSERIAL_STATUS;
typedef struct _SERIAL_HANDFLOW {
ULONG ControlHandShake;
ULONG FlowReplace;
LONG XonLimit;
LONG XoffLimit;
} SERIAL_HANDFLOW, *PSERIAL_HANDFLOW;
#define SERIAL_DTR_MASK 0x00000003
#define SERIAL_DTR_CONTROL 0x00000001
#define SERIAL_DTR_HANDSHAKE 0x00000002
#define SERIAL_CTS_HANDSHAKE 0x00000008
#define SERIAL_DSR_HANDSHAKE 0x00000010
#define SERIAL_DCD_HANDSHAKE 0x00000020
#define SERIAL_OUT_HANDSHAKEMASK 0x00000038
#define SERIAL_DSR_SENSITIVITY 0x00000040
#define SERIAL_ERROR_ABORT 0x80000000
#define SERIAL_CONTROL_INVALID 0x7fffff84
#define SERIAL_AUTO_TRANSMIT 0x00000001
#define SERIAL_AUTO_RECEIVE 0x00000002
#define SERIAL_ERROR_CHAR 0x00000004
#define SERIAL_NULL_STRIPPING 0x00000008
#define SERIAL_BREAK_CHAR 0x00000010
#define SERIAL_RTS_MASK 0x000000c0
#define SERIAL_RTS_CONTROL 0x00000040
#define SERIAL_RTS_HANDSHAKE 0x00000080
#define SERIAL_TRANSMIT_TOGGLE 0x000000c0
#define SERIAL_XOFF_CONTINUE 0x80000000
#define SERIAL_FLOW_INVALID 0x7fffff20
typedef struct _SERIAL_LINE_CONTROL {
UCHAR StopBits;
UCHAR Parity;
UCHAR WordLength;
} SERIAL_LINE_CONTROL, *PSERIAL_LINE_CONTROL;
/* SERIAL_LINE_CONTROL.StopBits constants */
#define STOP_BIT_1 0x00
#define STOP_BITS_1_5 0x01
#define STOP_BITS_2 0x02
/* SERIAL_LINE_CONTROL.Parity constants */
#define NO_PARITY 0x00
#define ODD_PARITY 0x01
#define EVEN_PARITY 0x02
#define MARK_PARITY 0x03
#define SPACE_PARITY 0x04
/* IOCTL_SERIAL_(GET_MODEM_CONTROL, SET_MODEM_CONTROL) flags */
#define SERIAL_IOC_MCR_DTR 0x00000001
#define SERIAL_IOC_MCR_RTS 0x00000002
#define SERIAL_IOC_MCR_OUT1 0x00000004
#define SERIAL_IOC_MCR_OUT2 0x00000008
#define SERIAL_IOC_MCR_LOOP 0x00000010
typedef struct _SERIAL_COMMPROP {
USHORT PacketLength;
USHORT PacketVersion;
ULONG ServiceMask;
ULONG Reserved1;
ULONG MaxTxQueue;
ULONG MaxRxQueue;
ULONG MaxBaud;
ULONG ProvSubType;
ULONG ProvCapabilities;
ULONG SettableParams;
ULONG SettableBaud;
USHORT SettableData;
USHORT SettableStopParity;
ULONG CurrentTxQueue;
ULONG CurrentRxQueue;
ULONG ProvSpec1;
ULONG ProvSpec2;
WCHAR ProvChar[1];
} SERIAL_COMMPROP, *PSERIAL_COMMPROP;
/* SERIAL_COMMPROP.SettableParams flags */
#define SERIAL_SP_PARITY 0x0001
#define SERIAL_SP_BAUD 0x0002
#define SERIAL_SP_DATABITS 0x0004
#define SERIAL_SP_STOPBITS 0x0008
#define SERIAL_SP_HANDSHAKING 0x0010
#define SERIAL_SP_PARITY_CHECK 0x0020
#define SERIAL_SP_CARRIER_DETECT 0x0040
/* SERIAL_COMMPROP.ProvCapabilities flags */
#define SERIAL_PCF_DTRDSR 0x00000001
#define SERIAL_PCF_RTSCTS 0x00000002
#define SERIAL_PCF_CD 0x00000004
#define SERIAL_PCF_PARITY_CHECK 0x00000008
#define SERIAL_PCF_XONXOFF 0x00000010
#define SERIAL_PCF_SETXCHAR 0x00000020
#define SERIAL_PCF_TOTALTIMEOUTS 0x00000040
#define SERIAL_PCF_INTTIMEOUTS 0x00000080
#define SERIAL_PCF_SPECIALCHARS 0x00000100
#define SERIAL_PCF_16BITMODE 0x00000200
/* SERIAL_COMMPROP.SettableData flags */
#define SERIAL_DATABITS_5 0x0001
#define SERIAL_DATABITS_6 0x0002
#define SERIAL_DATABITS_7 0x0004
#define SERIAL_DATABITS_8 0x0008
#define SERIAL_DATABITS_16 0x0010
#define SERIAL_DATABITS_16X 0x0020
/* SERIAL_COMMPROP.SettableStopParity flags */
#define SERIAL_STOPBITS_10 0x0001
#define SERIAL_STOPBITS_15 0x0002
#define SERIAL_STOPBITS_20 0x0004
#define SERIAL_PARITY_NONE 0x0100
#define SERIAL_PARITY_ODD 0x0200
#define SERIAL_PARITY_EVEN 0x0400
#define SERIAL_PARITY_MARK 0x0800
#define SERIAL_PARITY_SPACE 0x1000
typedef struct _SERIALPERF_STATS {
ULONG ReceivedCount;
ULONG TransmittedCount;
ULONG FrameErrorCount;
ULONG SerialOverrunErrorCount;
ULONG BufferOverrunErrorCount;
ULONG ParityErrorCount;
} SERIALPERF_STATS, *PSERIALPERF_STATS;
typedef struct _SERIAL_TIMEOUTS {
ULONG ReadIntervalTimeout;
ULONG ReadTotalTimeoutMultiplier;
ULONG ReadTotalTimeoutConstant;
ULONG WriteTotalTimeoutMultiplier;
ULONG WriteTotalTimeoutConstant;
} SERIAL_TIMEOUTS, *PSERIAL_TIMEOUTS;
/* IOCTL_SERIAL_(GET_WAIT_MASK, SET_WAIT_MASK, WAIT_ON_MASK) flags */
#define SERIAL_EV_RXCHAR 0x0001
#define SERIAL_EV_RXFLAG 0x0002
#define SERIAL_EV_TXEMPTY 0x0004
#define SERIAL_EV_CTS 0x0008
#define SERIAL_EV_DSR 0x0010
#define SERIAL_EV_RLSD 0x0020
#define SERIAL_EV_BREAK 0x0040
#define SERIAL_EV_ERR 0x0080
#define SERIAL_EV_RING 0x0100
#define SERIAL_EV_PERR 0x0200
#define SERIAL_EV_RX80FULL 0x0400
#define SERIAL_EV_EVENT1 0x0800
#define SERIAL_EV_EVENT2 0x1000
/* IOCTL_SERIAL_LSRMST_INSERT constants */
#define SERIAL_LSRMST_LSR_DATA 0x01
#define SERIAL_LSRMST_LSR_NODATA 0x02
#define SERIAL_LSRMST_MST 0x03
#define SERIAL_LSRMST_ESCAPE 0x00
/* IOCTL_SERIAL_PURGE constants */
#define SERIAL_PURGE_TXABORT 0x00000001
#define SERIAL_PURGE_RXABORT 0x00000002
#define SERIAL_PURGE_TXCLEAR 0x00000004
#define SERIAL_PURGE_RXCLEAR 0x00000008
/* IOCTL_SERIAL_SET_FIFO_CONTROL constants */
#define SERIAL_IOC_FCR_FIFO_ENABLE 0x00000001
#define SERIAL_IOC_FCR_RCVR_RESET 0x00000002
#define SERIAL_IOC_FCR_XMIT_RESET 0x00000004
#define SERIAL_IOC_FCR_DMA_MODE 0x00000008
#define SERIAL_IOC_FCR_RES1 0x00000010
#define SERIAL_IOC_FCR_RES2 0x00000020
#define SERIAL_IOC_FCR_RCVR_TRIGGER_LSB 0x00000040
#define SERIAL_IOC_FCR_RCVR_TRIGGER_MSB 0x00000080
typedef struct _SERIAL_QUEUE_SIZE {
ULONG InSize;
ULONG OutSize;
} SERIAL_QUEUE_SIZE, *PSERIAL_QUEUE_SIZE;
typedef struct _SERIAL_XOFF_COUNTER {
ULONG Timeout;
LONG Counter;
UCHAR XoffChar;
} SERIAL_XOFF_COUNTER, *PSERIAL_XOFF_COUNTER;
typedef struct _SERIAL_BASIC_SETTINGS {
SERIAL_TIMEOUTS Timeouts;
SERIAL_HANDFLOW HandFlow;
ULONG RxFifo;
ULONG TxFifo;
} SERIAL_BASIC_SETTINGS, *PSERIAL_BASIC_SETTINGS;
typedef struct _SERENUM_PORT_DESC {
ULONG Size;
PVOID PortHandle;
PHYSICAL_ADDRESS PortAddress;
USHORT Reserved[1];
} SERENUM_PORT_DESC, *PSERENUM_PORT_DESC;
typedef UCHAR STDCALL
(*PSERENUM_READPORT)(
PVOID SerPortAddress);
typedef VOID STDCALL
(*PSERENUM_WRITEPORT)(
PVOID SerPortAddress,
UCHAR Value);
typedef enum _SERENUM_PORTION {
SerenumFirstHalf,
SerenumSecondHalf,
SerenumWhole
} SERENUM_PORTION;
typedef struct _SERENUM_PORT_PARAMETERS {
ULONG Size;
PSERENUM_READPORT ReadAccessor;
PSERENUM_WRITEPORT WriteAccessor;
PVOID SerPortAddress;
PVOID HardwareHandle;
SERENUM_PORTION Portion;
USHORT NumberAxis;
USHORT Reserved[3];
} SERENUM_PORT_PARAMETERS, *PSERENUM_PORT_PARAMETERS;
#define SERIAL_ERROR_BREAK 0x00000001
#define SERIAL_ERROR_FRAMING 0x00000002
#define SERIAL_ERROR_OVERRUN 0x00000004
#define SERIAL_ERROR_QUEUEOVERRUN 0x00000008
#define SERIAL_ERROR_PARITY 0x00000010
#define SERIAL_SP_UNSPECIFIED 0x00000000
#define SERIAL_SP_RS232 0x00000001
#define SERIAL_SP_PARALLEL 0x00000002
#define SERIAL_SP_RS422 0x00000003
#define SERIAL_SP_RS423 0x00000004
#define SERIAL_SP_RS449 0x00000005
#define SERIAL_SP_MODEM 0X00000006
#define SERIAL_SP_FAX 0x00000021
#define SERIAL_SP_SCANNER 0x00000022
#define SERIAL_SP_BRIDGE 0x00000100
#define SERIAL_SP_LAT 0x00000101
#define SERIAL_SP_TELNET 0x00000102
#define SERIAL_SP_X25 0x00000103
#define SERIAL_SP_SERIALCOMM 0x00000001
#define SERIAL_TX_WAITING_FOR_CTS 0x00000001
#define SERIAL_TX_WAITING_FOR_DSR 0x00000002
#define SERIAL_TX_WAITING_FOR_DCD 0x00000004
#define SERIAL_TX_WAITING_FOR_XON 0x00000008
#define SERIAL_TX_WAITING_XOFF_SENT 0x00000010
#define SERIAL_TX_WAITING_ON_BREAK 0x00000020
#define SERIAL_RX_WAITING_FOR_DSR 0x00000040
#define SERIAL_DTR_STATE 0x00000001
#define SERIAL_RTS_STATE 0x00000002
#define SERIAL_CTS_STATE 0x00000010
#define SERIAL_DSR_STATE 0x00000020
#define SERIAL_RI_STATE 0x00000040
#define SERIAL_DCD_STATE 0x00000080
typedef struct _SERIALCONFIG {
ULONG Size;
USHORT Version;
ULONG SubType;
ULONG ProvOffset;
ULONG ProviderSize;
WCHAR ProviderData[1];
} SERIALCONFIG,*PSERIALCONFIG;
#pragma pack(pop)
#ifdef __cplusplus
}
#endif
#endif /* __NTDDSER_H */

View File

@@ -1,30 +0,0 @@
#ifndef __INCLUDE_DDK_NTDEF_H
#define __INCLUDE_DDK_NTDEF_H
struct _KTHREAD;
struct _ETHREAD;
struct _EPROCESS;
#ifndef NTKERNELAPI
#define NTKERNELAPI STDCALL
#endif
#ifndef NTSYSAPI
#define NTSYSAPI STDCALL
#endif
#ifndef NTAPI
#define NTAPI STDCALL
#endif
#define MINCHAR (0x80)
#define MAXCHAR (0x7F)
#define MINSHORT (0x8000)
#define MAXSHORT (0x7FFF)
#define MINLONG (0x80000000)
#define MAXLONG (0x7FFFFFFF)
#define MAXUCHAR (0xFF)
#define MAXUSHORT (0xFFFF)
#define MAXULONG (0xFFFFFFFF)
#endif

View File

@@ -1,33 +0,0 @@
#ifdef __USE_W32API
#include_next <ddk/ntifs.h>
#else /* __USE_W32API */
#ifndef __INCLUDE_DDK_NTIFS_H
#define __INCLUDE_DDK_NTIFS_H
NTSTATUS STDCALL
CcRosInitializeFileCache (PFILE_OBJECT FileObject,
ULONG CacheSegmentSize);
NTSTATUS STDCALL
CcRosReleaseFileCache (PFILE_OBJECT FileObject);
#define FSCTL_ROS_QUERY_LCN_MAPPING \
CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 63, METHOD_BUFFERED, FILE_ANY_ACCESS)
typedef struct _ROS_QUERY_LCN_MAPPING
{
LARGE_INTEGER LcnDiskOffset;
} ROS_QUERY_LCN_MAPPING, *PROS_QUERY_LCN_MAPPING;
#include <ddk/cctypes.h>
#include <ddk/ccfuncs.h>
#include <ddk/fstypes.h>
#include <ddk/fsfuncs.h>
#endif /* __INCLUDE_DDK_NTIFS_H */
#endif /* __USE_W32API */

View File

@@ -1,149 +0,0 @@
#ifndef _INCLUDE_DDK_OBFUNCS_H
#define _INCLUDE_DDK_OBFUNCS_H
/* OBJECT MANAGER ************************************************************/
NTSTATUS STDCALL
ObAssignSecurity(IN PACCESS_STATE AccessState,
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
IN PVOID Object,
IN POBJECT_TYPE Type);
NTSTATUS STDCALL
ObCreateObject (IN KPROCESSOR_MODE ObjectAttributesAccessMode OPTIONAL,
IN POBJECT_TYPE ObjectType,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN KPROCESSOR_MODE AccessMode,
IN OUT PVOID ParseContext OPTIONAL,
IN ULONG ObjectSize,
IN ULONG PagedPoolCharge OPTIONAL,
IN ULONG NonPagedPoolCharge OPTIONAL,
OUT PVOID *Object);
VOID FASTCALL
ObfDereferenceObject(IN PVOID Object);
VOID FASTCALL
ObfReferenceObject(IN PVOID Object);
#define ObDereferenceObject(Object) \
ObfDereferenceObject(Object)
#define ObReferenceObject(Object) \
ObfReferenceObject(Object)
ULONG STDCALL
ObGetObjectPointerCount(IN PVOID Object);
NTSTATUS STDCALL
ObGetObjectSecurity(IN PVOID Object,
OUT PSECURITY_DESCRIPTOR *SecurityDescriptor,
OUT PBOOLEAN MemoryAllocated);
NTSTATUS STDCALL
ObInsertObject(IN PVOID Object,
IN PACCESS_STATE PassedAccessState OPTIONAL,
IN ACCESS_MASK DesiredAccess,
IN ULONG AdditionalReferences,
OUT PVOID* ReferencedObject OPTIONAL,
OUT PHANDLE Handle);
VOID STDCALL
ObMakeTemporaryObject(IN PVOID ObjectBody);
NTSTATUS STDCALL
ObOpenObjectByName(IN POBJECT_ATTRIBUTES ObjectAttributes,
IN POBJECT_TYPE ObjectType,
IN OUT PVOID ParseContext OPTIONAL,
IN KPROCESSOR_MODE AccessMode,
IN ACCESS_MASK DesiredAccess,
IN PACCESS_STATE PassedAccessState,
OUT PHANDLE Handle);
NTSTATUS STDCALL
ObOpenObjectByPointer(IN PVOID Object,
IN ULONG HandleAttributes,
IN PACCESS_STATE PassedAccessState OPTIONAL,
IN ACCESS_MASK DesiredAccess OPTIONAL,
IN POBJECT_TYPE ObjectType OPTIONAL,
IN KPROCESSOR_MODE AccessMode,
OUT PHANDLE Handle);
NTSTATUS STDCALL
ObQueryNameString(IN PVOID Object,
OUT POBJECT_NAME_INFORMATION ObjectNameInfo,
IN ULONG Length,
OUT PULONG ReturnLength);
NTSTATUS STDCALL
ObQueryObjectAuditingByHandle(IN HANDLE Handle,
OUT PBOOLEAN GenerateOnClose);
/*
* FUNCTION: Performs access validation on an object handle and if access
* is granted returns a pointer to the object's body
* ARGUMENTS:
* Handle = Handle to the object
* DesiredAccess = Desired access to the object
* ObjectType (OPTIONAL) = Pointer to the object's type definition
* AccessMode = Access mode to use for the check
* Object (OUT) = Caller supplied storage for a pointer to the object's
* body
* HandleInformation (OUT) = Points to a structure which receives
* information about the handle
* RETURNS: Status
*/
NTSTATUS STDCALL
ObReferenceObjectByHandle(IN HANDLE Handle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_TYPE ObjectType OPTIONAL,
IN KPROCESSOR_MODE AccessMode,
OUT PVOID* Object,
OUT POBJECT_HANDLE_INFORMATION HandleInfo OPTIONAL);
/*
* FUNCTION: Increments the reference count for a given object
* ARGUMENTS:
* Object = Points to the body of the object
* AccessMode = Requested access to the object
* ObjectType = Pointer to the object's type definition
* AccessMode = Access mode to use for the security check
* RETURNS: Status
*/
NTSTATUS STDCALL
ObReferenceObjectByPointer(IN PVOID Object,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_TYPE ObjectType,
IN KPROCESSOR_MODE AccessMode);
NTSTATUS STDCALL
ObReferenceObjectByName(IN PUNICODE_STRING ObjectPath,
IN ULONG Attributes,
IN PACCESS_STATE PassedAccessState OPTIONAL,
IN ACCESS_MASK DesiredAccess OPTIONAL,
IN POBJECT_TYPE ObjectType,
IN KPROCESSOR_MODE AccessMode,
IN OUT PVOID ParseContext OPTIONAL,
OUT PVOID* ObjectPtr);
VOID STDCALL
ObReleaseObjectSecurity(IN PSECURITY_DESCRIPTOR SecurityDescriptor,
IN BOOLEAN MemoryAllocated);
/*
NTSTATUS STDCALL
ObSetSecurityDescriptorInfo(IN PVOID Object,
IN PSECURITY_INFORMATION SecurityInformation,
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
ULONG Param4,
IN POOL_TYPE PoolType,
IN PGENERIC_MAPPING GenericMapping);
*/
NTSTATUS STDCALL
ObFindHandleForObject(IN PEPROCESS Process,
IN PVOID Object,
IN POBJECT_TYPE ObjectType,
IN POBJECT_HANDLE_INFORMATION HandleInformation,
OUT PHANDLE HandleReturn);
#endif /* ndef _INCLUDE_DDK_OBFUNCS_H */

View File

@@ -1,189 +0,0 @@
#ifndef __INCLUDE_DDK_PNPFUNCS_H
#define __INCLUDE_DDK_PNPFUNCS_H
#define IoInitializeRemoveLock(Lock, Tag, Maxmin, HighWater) \
IoInitializeRemoveLockEx(Lock, Tag, Maxmin, HighWater, sizeof(IO_REMOVE_LOCK))
VOID
STDCALL
IoInitializeRemoveLockEx(
IN PIO_REMOVE_LOCK Lock,
IN ULONG AllocateTag,
IN ULONG MaxLockedMinutes,
IN ULONG HighWatermark,
IN ULONG RemlockSize);
#define IoAcquireRemoveLock(RemoveLock, Tag) \
IoAcquireRemoveLockEx(RemoveLock, Tag, __FILE__, __LINE__, sizeof(IO_REMOVE_LOCK))
NTSTATUS
STDCALL
IoAcquireRemoveLockEx(
IN PIO_REMOVE_LOCK RemoveLock,
IN OPTIONAL PVOID Tag,
IN LPCSTR File,
IN ULONG Line,
IN ULONG RemlockSize);
#define IoReleaseRemoveLock(RemoveLock, Tag) \
IoReleaseRemoveLockEx(RemoveLock, Tag, sizeof (IO_REMOVE_LOCK))
VOID
STDCALL
IoReleaseRemoveLockEx(
IN PIO_REMOVE_LOCK RemoveLock,
IN PVOID Tag,
IN ULONG RemlockSize);
#define IoReleaseRemoveLockAndWait(RemoveLock, Tag) \
IoReleaseRemoveLockAndWaitEx(RemoveLock, Tag, sizeof (IO_REMOVE_LOCK))
VOID
STDCALL
IoReleaseRemoveLockAndWaitEx(
IN PIO_REMOVE_LOCK RemoveLock,
IN PVOID Tag,
IN ULONG RemlockSize);
/*
* VOID
* STDCALL
* IoAdjustPagingPathCount(
* IN PLONG Count,
* IN BOOLEAN Increment);
*/
#define IoAdjustPagingPathCount(Count, Paging) \
{ \
if (Paging) \
{ \
InterlockedIncrement(Count); \
} \
else \
{ \
InterlockedDecrement(Count); \
} \
}
NTSTATUS
STDCALL
IoGetDeviceInterfaceAlias(
IN PUNICODE_STRING SymbolicLinkName,
IN CONST GUID *AliasInterfaceClassGuid,
OUT PUNICODE_STRING AliasSymbolicLinkName);
NTSTATUS
STDCALL
IoGetDeviceInterfaces(
IN CONST GUID *InterfaceClassGuid,
IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL,
IN ULONG Flags,
OUT PWSTR *SymbolicLinkList);
NTSTATUS
STDCALL
IoGetDeviceProperty(
IN PDEVICE_OBJECT DeviceObject,
IN DEVICE_REGISTRY_PROPERTY DeviceProperty,
IN ULONG BufferLength,
OUT PVOID PropertyBuffer,
OUT PULONG ResultLength);
VOID
STDCALL
IoInvalidateDeviceRelations(
IN PDEVICE_OBJECT DeviceObject,
IN DEVICE_RELATION_TYPE Type);
VOID
STDCALL
IoInvalidateDeviceState(
IN PDEVICE_OBJECT PhysicalDeviceObject);
NTSTATUS
STDCALL
IoOpenDeviceInterfaceRegistryKey(
IN PUNICODE_STRING SymbolicLinkName,
IN ACCESS_MASK DesiredAccess,
OUT PHANDLE DeviceInterfaceKey);
NTSTATUS
STDCALL
IoOpenDeviceRegistryKey(
IN PDEVICE_OBJECT DeviceObject,
IN ULONG DevInstKeyType,
IN ACCESS_MASK DesiredAccess,
OUT PHANDLE DevInstRegKey);
NTSTATUS
STDCALL
IoRegisterDeviceInterface(
IN PDEVICE_OBJECT PhysicalDeviceObject,
IN CONST GUID *InterfaceClassGuid,
IN PUNICODE_STRING ReferenceString OPTIONAL,
OUT PUNICODE_STRING SymbolicLinkName);
NTSTATUS
STDCALL
IoRegisterPlugPlayNotification(
IN IO_NOTIFICATION_EVENT_CATEGORY EventCategory,
IN ULONG EventCategoryFlags,
IN PVOID EventCategoryData OPTIONAL,
IN PDRIVER_OBJECT DriverObject,
IN PDRIVER_NOTIFICATION_CALLBACK_ROUTINE CallbackRoutine,
IN PVOID Context,
OUT PVOID *NotificationEntry);
NTSTATUS
STDCALL
IoReportDetectedDevice(
IN PDRIVER_OBJECT DriverObject,
IN INTERFACE_TYPE LegacyBusType,
IN ULONG BusNumber,
IN ULONG SlotNumber,
IN PCM_RESOURCE_LIST ResourceList,
IN PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirements OPTIONAL,
IN BOOLEAN ResourceAssigned,
IN OUT PDEVICE_OBJECT *DeviceObject);
NTSTATUS
STDCALL
IoReportResourceForDetection(
IN PDRIVER_OBJECT DriverObject,
IN PCM_RESOURCE_LIST DriverList OPTIONAL,
IN ULONG DriverListSize OPTIONAL,
IN PDEVICE_OBJECT DeviceObject OPTIONAL,
IN PCM_RESOURCE_LIST DeviceList OPTIONAL,
IN ULONG DeviceListSize OPTIONAL,
OUT PBOOLEAN ConflictDetected);
NTSTATUS
STDCALL
IoReportTargetDeviceChange(
IN PDEVICE_OBJECT PhysicalDeviceObject,
IN PVOID NotificationStructure);
NTSTATUS
STDCALL
IoReportTargetDeviceChangeAsynchronous(
IN PDEVICE_OBJECT PhysicalDeviceObject,
IN PVOID NotificationStructure,
IN PDEVICE_CHANGE_COMPLETE_CALLBACK Callback OPTIONAL,
IN PVOID Context OPTIONAL);
VOID
STDCALL
IoRequestDeviceEject(
IN PDEVICE_OBJECT PhysicalDeviceObject);
NTSTATUS
STDCALL
IoSetDeviceInterfaceState(
IN PUNICODE_STRING SymbolicLinkName,
IN BOOLEAN Enable);
NTSTATUS
STDCALL
IoUnregisterPlugPlayNotification(
IN PVOID NotificationEntry);
#endif /* __INCLUDE_DDK_PNPFUNCS_H */

View File

@@ -1,194 +0,0 @@
#ifndef __INCLUDE_DDK_PNPTYPES_H
#define __INCLUDE_DDK_PNPTYPES_H
struct _DEVICE_OBJECT;
struct _FILE_OBJECT;
/* windows.h may be included before */
#ifndef GUID_DEFINED
#define GUID_DEFINED
typedef struct _GUID {
ULONG Data1;
USHORT Data2;
USHORT Data3;
UCHAR Data4[8];
} GUID, *LPGUID;
#endif
typedef struct _PNP_BUS_INFORMATION {
GUID BusTypeGuid;
INTERFACE_TYPE LegacyBusType;
ULONG BusNumber;
} PNP_BUS_INFORMATION, *PPNP_BUS_INFORMATION;
typedef struct _DEVICE_CAPABILITIES {
USHORT Size;
USHORT Version;
ULONG DeviceD1:1;
ULONG DeviceD2:1;
ULONG LockSupported:1;
ULONG EjectSupported:1;
ULONG Removable:1;
ULONG DockDevice:1;
ULONG UniqueID:1;
ULONG SilentInstall:1;
ULONG RawDeviceOK:1;
ULONG SurpriseRemovalOK:1;
ULONG WakeFromD0:1;
ULONG WakeFromD1:1;
ULONG WakeFromD2:1;
ULONG WakeFromD3:1;
ULONG HardwareDisabled:1;
ULONG NonDynamic:1;
ULONG WarmEjectSupported:1;
ULONG Reserved:15;
ULONG Address;
ULONG UINumber;
DEVICE_POWER_STATE DeviceState[PowerSystemMaximum];
SYSTEM_POWER_STATE SystemWake;
DEVICE_POWER_STATE DeviceWake;
ULONG D1Latency;
ULONG D2Latency;
ULONG D3Latency;
} DEVICE_CAPABILITIES, *PDEVICE_CAPABILITIES;
typedef struct _DEVICE_INTERFACE_CHANGE_NOTIFICATION {
USHORT Version;
USHORT Size;
GUID Event;
/*
* Event-specific data
*/
GUID InterfaceClassGuid;
PUNICODE_STRING SymbolicLinkName;
} DEVICE_INTERFACE_CHANGE_NOTIFICATION, *PDEVICE_INTERFACE_CHANGE_NOTIFICATION;
typedef struct _HWPROFILE_CHANGE_NOTIFICATION {
USHORT Version;
USHORT Size;
GUID Event;
/*
* (No event-specific data)
*/
} HWPROFILE_CHANGE_NOTIFICATION, *PHWPROFILE_CHANGE_NOTIFICATION;
typedef struct _PLUGPLAY_NOTIFICATION_HEADER {
USHORT Version;
USHORT Size;
GUID Event;
} PLUGPLAY_NOTIFICATION_HEADER, *PPLUGPLAY_NOTIFICATION_HEADER;
typedef ULONG PNP_DEVICE_STATE, *PPNP_DEVICE_STATE;
#define PNP_DEVICE_DISABLED 0x00000001
#define PNP_DEVICE_DONT_DISPLAY_IN_UI 0x00000002
#define PNP_DEVICE_FAILED 0x00000004
#define PNP_DEVICE_REMOVED 0x00000008
#define PNP_DEVICE_RESOURCE_REQUIREMENTS_CHANGED 0x00000010
#define PNP_DEVICE_NOT_DISABLEABLE 0x00000020
typedef struct _TARGET_DEVICE_CUSTOM_NOTIFICATION {
USHORT Version;
USHORT Size;
GUID Event;
/*
* Event-specific data
*/
struct _FILE_OBJECT *FileObject;
LONG NameBufferOffset;
UCHAR CustomDataBuffer[1];
} TARGET_DEVICE_CUSTOM_NOTIFICATION, *PTARGET_DEVICE_CUSTOM_NOTIFICATION;
typedef struct _TARGET_DEVICE_REMOVAL_NOTIFICATION {
USHORT Version;
USHORT Size;
GUID Event;
/*
* Event-specific data
*/
struct _FILE_OBJECT *FileObject;
} TARGET_DEVICE_REMOVAL_NOTIFICATION, *PTARGET_DEVICE_REMOVAL_NOTIFICATION;
/* PnP Device Property for IoGetDeviceProperty */
typedef enum {
DevicePropertyDeviceDescription,
DevicePropertyHardwareID,
DevicePropertyCompatibleIDs,
DevicePropertyBootConfiguration,
DevicePropertyBootConfigurationTranslated,
DevicePropertyClassName,
DevicePropertyClassGuid,
DevicePropertyDriverKeyName,
DevicePropertyManufacturer,
DevicePropertyFriendlyName,
DevicePropertyLocationInformation,
DevicePropertyPhysicalDeviceObjectName,
DevicePropertyBusTypeGuid,
DevicePropertyLegacyBusType,
DevicePropertyBusNumber,
DevicePropertyEnumeratorName,
DevicePropertyAddress,
DevicePropertyUINumber
} DEVICE_REGISTRY_PROPERTY;
/* DevInstKeyType values for IoOpenDeviceRegistryKey */
#define PLUGPLAY_REGKEY_DEVICE 1
#define PLUGPLAY_REGKEY_DRIVER 2
#define PLUGPLAY_REGKEY_CURRENT_HWPROFILE 4
/* EventCategory for IoRegisterPlugPlayNotification */
typedef enum _IO_NOTIFICATION_EVENT_CATEGORY {
EventCategoryReserved,
EventCategoryHardwareProfileChange,
EventCategoryDeviceInterfaceChange,
EventCategoryTargetDeviceChange
} IO_NOTIFICATION_EVENT_CATEGORY;
/* CallbackRoutine for IoRegisterPlugPlayNotification */
typedef NTSTATUS STDCALL_FUNC
(*PDRIVER_NOTIFICATION_CALLBACK_ROUTINE)(
IN PVOID NotificationStructure,
IN PVOID Context);
/* Callback for IoReportTargetDeviceChangeAsynchronous */
typedef VOID STDCALL_FUNC
(*PDEVICE_CHANGE_COMPLETE_CALLBACK)(
IN PVOID Context);
/* PNP/POWER values for IRP_MJ_PNP/IRP_MJ_POWER */
typedef enum _DEVICE_RELATION_TYPE {
BusRelations,
EjectionRelations,
PowerRelations,
RemovalRelations,
TargetDeviceRelation
} DEVICE_RELATION_TYPE, *PDEVICE_RELATION_TYPE;
typedef struct _DEVICE_RELATIONS {
ULONG Count;
struct _DEVICE_OBJECT *Objects[1];
} DEVICE_RELATIONS, *PDEVICE_RELATIONS;
typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE {
DeviceUsageTypeUndefined,
DeviceUsageTypePaging,
DeviceUsageTypeHibernation,
DeviceUsageTypeDumpFile
} DEVICE_USAGE_NOTIFICATION_TYPE;
typedef struct _IO_REMOVE_LOCK_COMMON_BLOCK {
BOOLEAN Removed;
BOOLEAN Reserved[3];
LONG IoCount;
KEVENT RemoveEvent;
} IO_REMOVE_LOCK_COMMON_BLOCK;
typedef struct _IO_REMOVE_LOCK {
IO_REMOVE_LOCK_COMMON_BLOCK Common;
} IO_REMOVE_LOCK, *PIO_REMOVE_LOCK;
#endif /* __INCLUDE_DDK_PNPTYPES_H */

View File

@@ -1,61 +0,0 @@
#ifndef __INCLUDE_DDK_POFUNCS_H
#define __INCLUDE_DDK_POFUNCS_H
NTSTATUS
STDCALL
PoCallDriver(
IN PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp);
PULONG
STDCALL
PoRegisterDeviceForIdleDetection(
IN PDEVICE_OBJECT DeviceObject,
IN ULONG ConservationIdleTime,
IN ULONG PerformanceIdleTime,
IN DEVICE_POWER_STATE State);
PVOID
STDCALL
PoRegisterSystemState(
IN PVOID StateHandle,
IN EXECUTION_STATE Flags);
NTSTATUS
STDCALL
PoRequestPowerIrp(
IN PDEVICE_OBJECT DeviceObject,
IN UCHAR MinorFunction,
IN POWER_STATE PowerState,
IN PREQUEST_POWER_COMPLETE CompletionFunction,
IN PVOID Context,
OUT PIRP *Irp OPTIONAL);
VOID
STDCALL
PoSetDeviceBusy(
PULONG IdlePointer);
POWER_STATE
STDCALL
PoSetPowerState(
IN PDEVICE_OBJECT DeviceObject,
IN POWER_STATE_TYPE Type,
IN POWER_STATE State);
VOID
STDCALL
PoSetSystemState(
IN EXECUTION_STATE Flags);
VOID
STDCALL
PoStartNextPowerIrp(
IN PIRP Irp);
VOID
STDCALL
PoUnregisterSystemState(
IN PVOID StateHandle);
#endif /* __INCLUDE_DDK_POFUNCS_H */

View File

@@ -1,168 +0,0 @@
#ifndef __INCLUDE_DDK_POTYPES_H
#define __INCLUDE_DDK_POTYPES_H
struct _DEVICE_OBJECT;
struct _IO_STATUS_BLOCK;
/* Flags for PoSetSystemState */
typedef ULONG EXECUTION_STATE;
#define ES_SYSTEM_REQUIRED ((EXECUTION_STATE)0x00000001)
#define ES_DISPLAY_REQUIRED ((EXECUTION_STATE)0x00000002)
#define ES_USER_PRESENT ((EXECUTION_STATE)0x00000004)
#define ES_CONTINUOUS ((EXECUTION_STATE)0x80000000)
/* PowerState for PoRequestPowerIrp */
typedef enum _SYSTEM_POWER_STATE {
PowerSystemUnspecified = 0,
PowerSystemWorking,
PowerSystemSleeping1,
PowerSystemSleeping2,
PowerSystemSleeping3,
PowerSystemHibernate,
PowerSystemShutdown,
PowerSystemMaximum
} SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE;
/* Values for IRP_MN_QUERY_POWER/IRP_MN_SET_POWER */
typedef enum {
PowerActionNone = 0,
PowerActionReserved,
PowerActionSleep,
PowerActionHibernate,
PowerActionShutdown,
PowerActionShutdownReset,
PowerActionShutdownOff,
PowerActionWarmEject
} POWER_ACTION, *PPOWER_ACTION;
/* State for PoRegisterDeviceForIdleDetection */
typedef enum _DEVICE_POWER_STATE {
PowerDeviceUnspecified = 0,
PowerDeviceD0,
PowerDeviceD1,
PowerDeviceD2,
PowerDeviceD3,
PowerDeviceMaximum
} DEVICE_POWER_STATE, *PDEVICE_POWER_STATE;
/* State for PoSetPowerState */
typedef union _POWER_STATE {
SYSTEM_POWER_STATE SystemState;
DEVICE_POWER_STATE DeviceState;
} POWER_STATE, *PPOWER_STATE;
/* Type for PoSetPowerState */
typedef enum _POWER_STATE_TYPE {
SystemPowerState = 0,
DevicePowerState
} POWER_STATE_TYPE, *PPOWER_STATE_TYPE;
/* CompletionFunction for PoRequestPowerIrp */
typedef VOID STDCALL_FUNC
(*PREQUEST_POWER_COMPLETE) (
IN struct _DEVICE_OBJECT *DeviceObject,
IN UCHAR MinorFunction,
IN POWER_STATE PowerState,
IN PVOID Context,
IN struct _IO_STATUS_BLOCK *IoStatus);
typedef struct _POWER_SEQUENCE {
ULONG SequenceD1;
ULONG SequenceD2;
ULONG SequenceD3;
} POWER_SEQUENCE, *PPOWER_SEQUENCE;
typedef VOID STDCALL_FUNC (*PINTERFACE_REFERENCE)(PVOID Context);
typedef VOID STDCALL_FUNC (*PINTERFACE_DEREFERENCE)(PVOID Context);
typedef struct _INTERFACE {
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
} INTERFACE, *PINTERFACE;
typedef enum {
BusQueryDeviceID = 0,
BusQueryHardwareIDs = 1,
BusQueryCompatibleIDs = 2,
BusQueryInstanceID = 3,
BusQueryDeviceSerialNumber = 4
} BUS_QUERY_ID_TYPE, *PBUS_QUERY_ID_TYPE;
typedef enum {
DeviceTextDescription = 0,
DeviceTextLocationInformation = 1
} DEVICE_TEXT_TYPE, *PDEVICE_TEXT_TYPE;
typedef struct _PROCESSOR_IDLE_TIMES {
ULONGLONG StartTime;
ULONGLONG EndTime;
ULONG IdleHandlerReserved[4];
} PROCESSOR_IDLE_TIMES, *PPROCESSOR_IDLE_TIMES;
typedef struct _PROCESSOR_PERF_STATE {
UCHAR PercentFrequency;
UCHAR MinCapacity;
USHORT Power;
UCHAR IncreaseLevel;
UCHAR DecreaseLevel;
USHORT Flags;
ULONG IncreaseTime;
ULONG DecreaseTime;
ULONG IncreaseCount;
ULONG DecreaseCount;
ULONGLONG PerformanceTime;
} PROCESSOR_PERF_STATE, *PPROCESSOR_PERF_STATE;
typedef struct _PROCESSOR_POWER_STATE {
PVOID IdleFunction;
ULONG Idle0KernelTimeLimit;
ULONG Idle0LastTime;
PVOID IdleHandlers;
PVOID IdleState;
ULONG IdleHandlersCount;
ULONGLONG LastCheck;
PROCESSOR_IDLE_TIMES IdleTimes;
ULONG IdleTime1;
ULONG PromotionCheck;
ULONG IdleTime2;
UCHAR CurrentThrottle;
UCHAR ThermalThrottleLimit;
UCHAR CurrentThrottleIndex;
UCHAR ThermalThrottleIndex;
ULONG LastKernelUserTime;
ULONG PerfIdleTime;
ULONG DebugDelta;
ULONG DebugCount;
ULONG LastSysTime;
ULONG TotalIdleStateTime[3];
ULONG TotalIdleTransitions[3];
ULONGLONG PreviousC3StateTime;
UCHAR KneeThrottleIndex;
UCHAR ThrottleLimitIndex;
UCHAR PerfStatesCount;
UCHAR ProcessorMinThrottle;
UCHAR ProcessorMaxThrottle;
UCHAR LastBusyPercentage;
UCHAR LastC3Percentage;
UCHAR LastAdjustedBusyPercentage;
ULONG PromotionCount;
ULONG DemotionCount;
ULONG ErrorCount;
ULONG RetryCount;
ULONG Flags;
LARGE_INTEGER PerfCounterFrequency;
ULONG PerfTickCount;
KTIMER PerfTimer;
KDPC PerfDpc;
PROCESSOR_PERF_STATE *PerfStates;
PVOID PerfSetThrottle;
ULONG LastC3KernelUserTime;
ULONG Spare1[1];
} PROCESSOR_POWER_STATE, *PPROCESSOR_POWER_STATE;
#endif /* __INCLUDE_DDK_POTYPES_H */

View File

@@ -1,419 +0,0 @@
/* $Id$
*/
#ifndef _INCLUDE_DDK_PSFUNCS_H
#define _INCLUDE_DDK_PSFUNCS_H
NTSTATUS STDCALL
PsAssignImpersonationToken (IN struct _ETHREAD* Thread,
IN HANDLE TokenHandle);
/*
* Warning: Even though it returns HANDLE, it's not a real HANDLE but really a
* ULONG ProcessId! (Skywing)
*/
HANDLE STDCALL
PsGetCurrentProcessId (VOID);
HANDLE STDCALL
PsGetCurrentThreadId (VOID);
/*
* FUNCTION: Creates a thread which executes in kernel mode
* ARGUMENTS:
* ThreadHandle (OUT) = Caller supplied storage for the returned thread
* handle
* DesiredAccess = Requested access to the thread
* ObjectAttributes = Object attributes (optional)
* ProcessHandle = Handle of process thread will run in
* NULL to use system process
* ClientId (OUT) = Caller supplied storage for the returned client id
* of the thread (optional)
* StartRoutine = Entry point for the thread
* StartContext = Argument supplied to the thread when it begins
* execution
* RETURNS: Success or failure status
*/
NTSTATUS STDCALL
PsCreateSystemThread (PHANDLE ThreadHandle,
ACCESS_MASK DesiredAccess,
POBJECT_ATTRIBUTES ObjectAttributes,
HANDLE ProcessHandle,
PCLIENT_ID ClientId,
PKSTART_ROUTINE StartRoutine,
void *StartContext);
NTSTATUS STDCALL
PsTerminateSystemThread (NTSTATUS ExitStatus);
NTSTATUS STDCALL
PsCreateSystemProcess (PHANDLE ProcessHandle,
ACCESS_MASK DesiredAccess,
POBJECT_ATTRIBUTES ObjectAttributes);
NTSTATUS STDCALL PsCreateWin32Process(struct _EPROCESS* Process);
NTSTATUS STDCALL PsCreateWin32Thread(struct _ETHREAD* Thread);
VOID
STDCALL PsChargePoolQuota(
IN PEPROCESS Process,
IN POOL_TYPE PoolType,
IN ULONG_PTR Amount
);
NTSTATUS
STDCALL PsChargeProcessNonPagedPoolQuota (
IN PEPROCESS Process,
IN ULONG_PTR Amount
);
NTSTATUS
STDCALL PsChargeProcessPagedPoolQuota (
IN PEPROCESS Process,
IN ULONG_PTR Amount
);
NTSTATUS
STDCALL PsChargeProcessPoolQuota(
IN PEPROCESS Process,
IN POOL_TYPE PoolType,
IN ULONG_PTR Amount
);
VOID
STDCALL PsDereferenceImpersonationToken(
IN PACCESS_TOKEN ImpersonationToken
);
VOID
STDCALL PsDereferencePrimaryToken(
IN PACCESS_TOKEN PrimaryToken
);
BOOLEAN
STDCALL PsDisableImpersonation(
IN struct _ETHREAD* Thread,
IN PSE_IMPERSONATION_STATE ImpersonationState
);
ULONG
STDCALL PsGetCurrentProcessSessionId (
VOID
);
KPROCESSOR_MODE
STDCALL PsGetCurrentThreadPreviousMode (
VOID
);
PVOID
STDCALL PsGetCurrentThreadStackBase (
VOID
);
PVOID
STDCALL PsGetCurrentThreadStackLimit (
VOID
);
PVOID
STDCALL PsGetJobLock(
PEJOB Job
);
PVOID
STDCALL PsGetJobSessionId(
PEJOB Job
);
ULONG
STDCALL PsGetJobUIRestrictionsClass(
PEJOB Job
);
LONGLONG
STDCALL PsGetProcessCreateTimeQuadPart(
PEPROCESS Process
);
PVOID
STDCALL PsGetProcessDebugPort(
PEPROCESS Process
);
BOOLEAN
STDCALL PsGetProcessExitProcessCalled(
PEPROCESS Process
);
NTSTATUS
STDCALL PsGetProcessExitStatus(
PEPROCESS Process
);
HANDLE
STDCALL PsGetProcessId(
PEPROCESS Process
);
LPSTR
STDCALL PsGetProcessImageFileName(
PEPROCESS Process
);
HANDLE
STDCALL PsGetProcessInheritedFromUniqueProcessId(
PEPROCESS Process
);
PEJOB
STDCALL PsGetProcessJob(
PEPROCESS Process
);
PPEB
STDCALL PsGetProcessPeb(
PEPROCESS Process
);
ULONG
STDCALL PsGetProcessPriorityClass(
PEPROCESS Process
);
PVOID
STDCALL PsGetProcessSectionBaseAddress(
PEPROCESS Process
);
PVOID
STDCALL PsGetProcessSecurityPort(
PEPROCESS Process
);
HANDLE
STDCALL PsGetProcessSessionId(
PEPROCESS Process
);
PVOID
STDCALL PsGetProcessWin32Process(
PEPROCESS Process
);
PVOID
STDCALL PsGetProcessWin32WindowStation(
PEPROCESS Process
);
ULONG
STDCALL PsGetThreadFreezeCount(
struct _ETHREAD* Thread
);
BOOLEAN
STDCALL PsGetThreadHardErrorsAreDisabled(
struct _ETHREAD* Thread
);
HANDLE
STDCALL PsGetThreadId(
struct _ETHREAD* Thread
);
PEPROCESS
STDCALL PsGetThreadProcess(
struct _ETHREAD* Thread
);
HANDLE
STDCALL PsGetThreadProcessId(
struct _ETHREAD* Thread
);
HANDLE
STDCALL PsGetThreadSessionId(
struct _ETHREAD* Thread
);
PTEB
STDCALL PsGetThreadTeb(
struct _ETHREAD* Thread
);
PVOID
STDCALL PsGetThreadWin32Thread(
struct _ETHREAD* Thread
);
BOOLEAN
STDCALL PsIsProcessBeingDebugged(
PEPROCESS Process
);
BOOLEAN
STDCALL PsIsSystemThread(
struct _ETHREAD* Thread
);
BOOLEAN
STDCALL PsIsThreadImpersonating(
struct _ETHREAD* Thread
);
NTSTATUS
STDCALL PsRemoveCreateThreadNotifyRoutine (
IN PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine
);
NTSTATUS
STDCALL PsRemoveLoadImageNotifyRoutine(
IN PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine
);
VOID
STDCALL PsRestoreImpersonation(
IN struct _ETHREAD* Thread,
IN PSE_IMPERSONATION_STATE ImpersonationState
);
VOID
STDCALL PsReturnPoolQuota(
IN PEPROCESS Process,
IN POOL_TYPE PoolType,
IN ULONG_PTR Amount
);
VOID
STDCALL PsReturnProcessNonPagedPoolQuota(
IN PEPROCESS Process,
IN ULONG_PTR Amount
);
VOID
STDCALL PsReturnProcessPagedPoolQuota(
IN PEPROCESS Process,
IN ULONG_PTR Amount
);
VOID
STDCALL PsRevertToSelf(
VOID
);
VOID
STDCALL
PsRevertThreadToSelf(
IN struct _ETHREAD* Thread
);
VOID
STDCALL PsSetJobUIRestrictionsClass(
PEJOB Job,
ULONG UIRestrictionsClass
);
ULONG
STDCALL PsSetLegoNotifyRoutine(
PVOID LegoNotifyRoutine
);
VOID
STDCALL PsSetProcessPriorityClass(
PEPROCESS Process,
ULONG PriorityClass
);
VOID
STDCALL PsSetProcessSecurityPort(
PEPROCESS Process,
PVOID SecurityPort
);
VOID
STDCALL PsSetProcessWin32Process(
PEPROCESS Process,
PVOID Win32Process
);
VOID
STDCALL PsSetProcessWin32WindowStation(
PEPROCESS Process,
PVOID WindowStation
);
VOID
STDCALL PsSetThreadHardErrorsAreDisabled(
struct _ETHREAD* Thread,
BOOLEAN HardErrorsAreDisabled
);
VOID
STDCALL PsSetThreadWin32Thread(
struct _ETHREAD* Thread,
PVOID Win32Thread
);
VOID STDCALL
STDCALL PsEstablishWin32Callouts (PW32_PROCESS_CALLBACK W32ProcessCallback,
PW32_THREAD_CALLBACK W32ThreadCallback,
PW32_OBJECT_CALLBACK W32ObjectCallback,
PVOID Param4,
ULONG W32ThreadSize,
ULONG W32ProcessSize);
#define PsGetCurrentProcess() IoGetCurrentProcess()
#define PsGetCurrentThread() ((struct _ETHREAD*) (KeGetCurrentThread()))
PACCESS_TOKEN STDCALL
PsReferenceImpersonationToken (IN struct _ETHREAD *Thread,
OUT PBOOLEAN CopyOnOpen,
OUT PBOOLEAN EffectiveOnly,
OUT PSECURITY_IMPERSONATION_LEVEL ImpersonationLevel);
PACCESS_TOKEN STDCALL
PsReferencePrimaryToken (struct _EPROCESS* Process);
VOID STDCALL
PsImpersonateClient (IN struct _ETHREAD* Thread,
IN PACCESS_TOKEN Token,
IN BOOLEAN CopyOnOpen,
IN BOOLEAN EffectiveOnly,
IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel);
VOID STDCALL
PsRevertToSelf (VOID);
BOOLEAN STDCALL PsGetVersion (PULONG MajorVersion OPTIONAL,
PULONG MinorVersion OPTIONAL,
PULONG BuildNumber OPTIONAL,
PUNICODE_STRING CSDVersion OPTIONAL);
LARGE_INTEGER STDCALL PsGetProcessExitTime(VOID);
BOOLEAN STDCALL PsIsThreadTerminating(struct _ETHREAD* Thread);
NTSTATUS STDCALL PsLookupProcessByProcessId(IN HANDLE ProcessId,
OUT PEPROCESS *Process);
NTSTATUS STDCALL PsLookupProcessThreadByCid(IN PCLIENT_ID Cid,
OUT PEPROCESS *Process OPTIONAL,
OUT struct _ETHREAD **Thread);
/* OUT PETHREAD *Thread); */
NTSTATUS STDCALL PsLookupThreadByThreadId(IN HANDLE ThreadId,
OUT struct _ETHREAD **Thread);
/* OUT PETHREAD *Thread); */
NTSTATUS STDCALL
PsSetCreateProcessNotifyRoutine(IN PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine,
IN BOOLEAN Remove);
NTSTATUS STDCALL
PsSetCreateThreadNotifyRoutine(IN PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine);
#endif
/* EOF */

View File

@@ -1,122 +0,0 @@
#ifndef __INCLUDE_DDK_PSTYPES_H
#define __INCLUDE_DDK_PSTYPES_H
#include <ntos/ps.h>
#include <ntos/tss.h>
#include <napi/teb.h>
#ifndef TLS_MINIMUM_AVAILABLE
#define TLS_MINIMUM_AVAILABLE (64)
#endif
#ifndef TLS_OUT_OF_INDEXES
#define TLS_OUT_OF_INDEXES 0xFFFFFFFF
#endif
#ifndef MAX_PATH
#define MAX_PATH (260)
#endif
struct _EPROCESS;
struct _KPROCESS;
struct _ETHREAD;
struct _KTHREAD;
struct _EJOB;
typedef struct _EJOB *PEJOB;
typedef struct _KTHREAD *PKTHREAD, *PRKTHREAD;
typedef struct _IMAGE_INFO {
union {
ULONG Properties;
struct {
ULONG ImageAddressingMode : 8;
ULONG SystemModeImage : 1;
ULONG ImageMappedToAllPids : 1;
ULONG Reserved : 22;
};
};
PVOID ImageBase;
ULONG ImageSelector;
ULONG ImageSize;
ULONG ImageSectionNumber;
} IMAGE_INFO, *PIMAGE_INFO;
typedef VOID STDCALL_FUNC
(*PKSTART_ROUTINE)(PVOID StartContext);
typedef VOID STDCALL_FUNC
(*PCREATE_PROCESS_NOTIFY_ROUTINE)(HANDLE ParentId,
HANDLE ProcessId,
BOOLEAN Create);
typedef VOID STDCALL_FUNC
(*PCREATE_THREAD_NOTIFY_ROUTINE)(HANDLE ProcessId,
HANDLE ThreadId,
BOOLEAN Create);
typedef VOID STDCALL_FUNC
(*PLOAD_IMAGE_NOTIFY_ROUTINE)(PUNICODE_STRING FullImageName,
HANDLE ProcessId,
PIMAGE_INFO ImageInfo);
typedef NTSTATUS STDCALL_FUNC
(*PW32_PROCESS_CALLBACK)(struct _EPROCESS *Process,
BOOLEAN Create);
typedef NTSTATUS STDCALL_FUNC
(*PW32_THREAD_CALLBACK)(struct _ETHREAD *Thread,
BOOLEAN Create);
/*
* Callbacks used for Win32 objects... this define won't be needed after the Object Manager
* rewrite -- Alex
*/
typedef NTSTATUS STDCALL_FUNC
(*OBJECT_CREATE_ROUTINE)(PVOID ObjectBody,
PVOID Parent,
PWSTR RemainingPath,
struct _OBJECT_ATTRIBUTES* ObjectAttributes);
typedef NTSTATUS STDCALL_FUNC
(*OBJECT_PARSE_ROUTINE)(PVOID Object,
PVOID *NextObject,
PUNICODE_STRING FullPath,
PWSTR *Path,
ULONG Attributes);
typedef VOID STDCALL_FUNC
(*OBJECT_DELETE_ROUTINE)(PVOID DeletedObject);
typedef PVOID STDCALL_FUNC
(*OBJECT_FIND_ROUTINE)(PVOID WinStaObject,
PWSTR Name,
ULONG Attributes);
typedef struct _W32_OBJECT_CALLBACK {
OBJECT_CREATE_ROUTINE WinStaCreate;
OBJECT_PARSE_ROUTINE WinStaParse;
OBJECT_DELETE_ROUTINE WinStaDelete;
OBJECT_FIND_ROUTINE WinStaFind;
OBJECT_CREATE_ROUTINE DesktopCreate;
OBJECT_DELETE_ROUTINE DesktopDelete;
} W32_OBJECT_CALLBACK, *PW32_OBJECT_CALLBACK;
typedef struct _STACK_INFORMATION
{
PVOID BaseAddress;
PVOID UpperAddress;
} STACK_INFORMATION, *PSTACK_INFORMATION;
typedef ULONG THREADINFOCLASS;
typedef ULONG PROCESSINFOCLASS;
struct _KPROCESS;
#define LOW_PRIORITY (0)
#define LOW_REALTIME_PRIORITY (16)
#define HIGH_PRIORITY (31)
#define MAXIMUM_PRIORITY (32)
#define IMAGE_ADDRESSING_MODE_32BIT (3)
#endif /* __INCLUDE_DDK_PSTYPES_H */

File diff suppressed because it is too large Load Diff

View File

@@ -1,327 +0,0 @@
#ifndef _INCLUDE_DDK_SEFUNCS_H
#define _INCLUDE_DDK_SEFUNCS_H
/* $Id$ */
#ifdef __NTOSKRNL__
extern PACL EXPORTED SePublicDefaultDacl;
extern PACL EXPORTED SeSystemDefaultDacl;
#else
extern PACL IMPORTED SePublicDefaultDacl;
extern PACL IMPORTED SeSystemDefaultDacl;
#endif
BOOLEAN STDCALL
SeAccessCheck(IN PSECURITY_DESCRIPTOR SecurityDescriptor,
IN PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext,
IN BOOLEAN SubjectContextLocked,
IN ACCESS_MASK DesiredAccess,
IN ACCESS_MASK PreviouslyGrantedAccess,
OUT PPRIVILEGE_SET* Privileges OPTIONAL,
IN PGENERIC_MAPPING GenericMapping,
IN KPROCESSOR_MODE AccessMode,
OUT PACCESS_MODE GrantedAccess,
OUT PNTSTATUS AccessStatus);
NTSTATUS STDCALL
SeAppendPrivileges(IN PACCESS_STATE AccessState,
IN PPRIVILEGE_SET Privileges);
NTSTATUS STDCALL
SeAssignSecurity(IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL,
IN PSECURITY_DESCRIPTOR ExplicitDescriptor,
OUT PSECURITY_DESCRIPTOR* NewDescriptor,
IN BOOLEAN IsDirectoryObject,
IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
IN PGENERIC_MAPPING GenericMapping,
IN POOL_TYPE PoolType);
NTSTATUS
STDCALL
SeAssignSecurityEx(
IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL,
IN PSECURITY_DESCRIPTOR ExplicitDescriptor OPTIONAL,
OUT PSECURITY_DESCRIPTOR *NewDescriptor,
IN GUID *ObjectType OPTIONAL,
IN BOOLEAN IsDirectoryObject,
IN ULONG AutoInheritFlags,
IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
IN PGENERIC_MAPPING GenericMapping,
IN POOL_TYPE PoolType
);
VOID
STDCALL
SeAuditHardLinkCreation(
IN PUNICODE_STRING FileName,
IN PUNICODE_STRING LinkName,
IN BOOLEAN bSuccess
);
BOOLEAN
STDCALL
SeAuditingFileEvents(
IN BOOLEAN AccessGranted,
IN PSECURITY_DESCRIPTOR SecurityDescriptor
);
BOOLEAN
STDCALL
SeAuditingFileEventsWithContext(
IN BOOLEAN AccessGranted,
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
IN PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext OPTIONAL
);
BOOLEAN
STDCALL
SeAuditingHardLinkEvents(
IN BOOLEAN AccessGranted,
IN PSECURITY_DESCRIPTOR SecurityDescriptor
);
BOOLEAN
STDCALL
SeAuditingHardLinkEventsWithContext(
IN BOOLEAN AccessGranted,
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
IN PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext OPTIONAL
);
BOOLEAN
STDCALL
SeAuditingFileOrGlobalEvents(
IN BOOLEAN AccessGranted,
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
IN PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext
);
NTSTATUS
STDCALL
SeCaptureSecurityDescriptor(
IN PSECURITY_DESCRIPTOR OriginalSecurityDescriptor,
IN KPROCESSOR_MODE CurrentMode,
IN POOL_TYPE PoolType,
IN BOOLEAN CaptureIfKernel,
OUT PSECURITY_DESCRIPTOR *CapturedSecurityDescriptor
);
VOID STDCALL
SeCaptureSubjectContext(OUT PSECURITY_SUBJECT_CONTEXT SubjectContext);
VOID
STDCALL
SeCloseObjectAuditAlarm(
IN PVOID Object,
IN HANDLE Handle,
IN BOOLEAN PerformAction
);
NTSTATUS
STDCALL
SeCreateAccessState(
PACCESS_STATE AccessState,
PVOID AuxData,
ACCESS_MASK Access,
PGENERIC_MAPPING GenericMapping
);
NTSTATUS STDCALL
SeCreateClientSecurity(IN struct _ETHREAD *Thread,
IN PSECURITY_QUALITY_OF_SERVICE Qos,
IN BOOLEAN RemoteClient,
OUT PSECURITY_CLIENT_CONTEXT ClientContext);
NTSTATUS
STDCALL
SeCreateClientSecurityFromSubjectContext(
IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
IN PSECURITY_QUALITY_OF_SERVICE ClientSecurityQos,
IN BOOLEAN ServerIsRemote,
OUT PSECURITY_CLIENT_CONTEXT ClientContext
);
NTSTATUS STDCALL
SeDeassignSecurity(IN OUT PSECURITY_DESCRIPTOR* SecurityDescriptor);
VOID STDCALL
SeDeleteAccessState(IN PACCESS_STATE AccessState);
VOID STDCALL
SeDeleteObjectAuditAlarm(IN PVOID Object,
IN HANDLE Handle);
NTSTATUS
STDCALL
SeFilterToken(
IN PACCESS_TOKEN ExistingToken,
IN ULONG Flags,
IN PTOKEN_GROUPS SidsToDisable OPTIONAL,
IN PTOKEN_PRIVILEGES PrivilegesToDelete OPTIONAL,
IN PTOKEN_GROUPS RestrictedSids OPTIONAL,
OUT PACCESS_TOKEN * FilteredToken
);
VOID STDCALL
SeFreePrivileges(IN PPRIVILEGE_SET Privileges);
VOID STDCALL
SeImpersonateClient(IN PSECURITY_CLIENT_CONTEXT ClientContext,
IN struct _ETHREAD *ServerThread OPTIONAL);
NTSTATUS
STDCALL
SeImpersonateClientEx(
IN PSECURITY_CLIENT_CONTEXT ClientContext,
IN struct _ETHREAD *ServerThread OPTIONAL
);
VOID STDCALL
SeLockSubjectContext(IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
NTSTATUS STDCALL
SeMarkLogonSessionForTerminationNotification(IN PLUID LogonId);
VOID STDCALL
SeOpenObjectAuditAlarm(IN PUNICODE_STRING ObjectTypeName,
IN PVOID Object OPTIONAL,
IN PUNICODE_STRING AbsoluteObjectName OPTIONAL,
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
IN PACCESS_STATE AccessState,
IN BOOLEAN ObjectCreated,
IN BOOLEAN AccessGranted,
IN KPROCESSOR_MODE AccessMode,
OUT PBOOLEAN GenerateOnClose);
VOID STDCALL
SeOpenObjectForDeleteAuditAlarm(IN PUNICODE_STRING ObjectTypeName,
IN PVOID Object OPTIONAL,
IN PUNICODE_STRING AbsoluteObjectName OPTIONAL,
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
IN PACCESS_STATE AccessState,
IN BOOLEAN ObjectCreated,
IN BOOLEAN AccessGranted,
IN KPROCESSOR_MODE AccessMode,
OUT PBOOLEAN GenerateOnClose);
BOOLEAN STDCALL
SePrivilegeCheck(IN OUT PPRIVILEGE_SET RequiredPrivileges,
IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
IN KPROCESSOR_MODE AccessMode);
VOID
STDCALL
SePrivilegeObjectAuditAlarm(
IN HANDLE Handle,
IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
IN ACCESS_MASK DesiredAccess,
IN PPRIVILEGE_SET Privileges,
IN BOOLEAN AccessGranted,
IN KPROCESSOR_MODE CurrentMode
);
NTSTATUS STDCALL
SeQueryAuthenticationIdToken(IN PACCESS_TOKEN Token,
OUT PLUID LogonId);
NTSTATUS
STDCALL
SeQueryInformationToken(
IN PACCESS_TOKEN Token,
IN TOKEN_INFORMATION_CLASS TokenInformationClass,
OUT PVOID *TokenInformation
);
NTSTATUS STDCALL
SeQuerySecurityDescriptorInfo(IN PSECURITY_INFORMATION SecurityInformation,
OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
IN OUT PULONG Length,
IN PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor);
NTSTATUS
STDCALL
SeQuerySessionIdToken(
IN PACCESS_TOKEN,
IN PULONG pSessionId
);
NTSTATUS STDCALL
SeRegisterLogonSessionTerminatedRoutine(IN PSE_LOGON_SESSION_TERMINATED_ROUTINE CallbackRoutine);
NTSTATUS
STDCALL
SeReleaseSecurityDescriptor(
IN PSECURITY_DESCRIPTOR CapturedSecurityDescriptor,
IN KPROCESSOR_MODE CurrentMode,
IN BOOLEAN CaptureIfKernelMode
);
VOID STDCALL
SeReleaseSubjectContext(IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
VOID STDCALL
SeSetAccessStateGenericMapping(IN PACCESS_STATE AccessState,
IN PGENERIC_MAPPING GenericMapping);
NTSTATUS STDCALL
SeSetSecurityDescriptorInfo(IN PVOID Object OPTIONAL,
IN PSECURITY_INFORMATION SecurityInformation,
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
IN OUT PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
IN POOL_TYPE PoolType,
IN PGENERIC_MAPPING GenericMapping);
NTSTATUS
STDCALL
SeSetSecurityDescriptorInfoEx(
IN PVOID Object OPTIONAL,
IN PSECURITY_INFORMATION SecurityInformation,
IN PSECURITY_DESCRIPTOR ModificationDescriptor,
IN OUT PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
IN ULONG AutoInheritFlags,
IN POOL_TYPE PoolType,
IN PGENERIC_MAPPING GenericMapping
);
BOOLEAN STDCALL
SeSinglePrivilegeCheck(IN LUID PrivilegeValue,
IN KPROCESSOR_MODE PreviousMode);
SECURITY_IMPERSONATION_LEVEL STDCALL
SeTokenImpersonationLevel(IN PACCESS_TOKEN Token);
BOOLEAN
STDCALL
SeTokenIsAdmin(
IN PACCESS_TOKEN Token
);
BOOLEAN
STDCALL
SeTokenIsRestricted(
IN PACCESS_TOKEN Token
);
BOOLEAN
STDCALL
SeTokenIsWriteRestricted(
IN PACCESS_TOKEN Token
);
TOKEN_TYPE STDCALL
SeTokenType(IN PACCESS_TOKEN Token);
VOID STDCALL
SeUnlockSubjectContext(IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
NTSTATUS STDCALL
SeUnregisterLogonSessionTerminatedRoutine(IN PSE_LOGON_SESSION_TERMINATED_ROUTINE CallbackRoutine);
BOOLEAN STDCALL
SeValidSecurityDescriptor(IN ULONG Length,
IN PSECURITY_DESCRIPTOR SecurityDescriptor);
#endif /* ndef _INCLUDE_DDK_SEFUNCS_H */

View File

@@ -1,252 +0,0 @@
/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory for details
* PROJECT: ReactOS kernel
* FILE: include/ddk/setypes.h
* PURPOSE: Security manager types
* REVISION HISTORY:
* ??/??/??: Created with empty stubs by David Welch
* 29/08/98: ACCESS_TOKEN definition from Boudewijn Dekker
*/
#ifndef __INCLUDE_DDK_SETYPES_H
#define __INCLUDE_DDK_SETYPES_H
#include <ntos/security.h>
/* TOKEN_GROUPS structure */
#define SE_GROUP_MANDATORY (0x1L)
#define SE_GROUP_ENABLED_BY_DEFAULT (0x2L)
#define SE_GROUP_ENABLED (0x4L)
#define SE_GROUP_OWNER (0x8L)
#define SE_GROUP_LOGON_ID (0xC0000000L)
/* ACL Defines */
#define ACL_REVISION1 (1)
#define ACL_REVISION2 (2)
#define ACL_REVISION3 (3)
#define MIN_ACL_REVISION ACL_REVISION2
#define MAX_ACL_REVISION ACL_REVISION3
#define ACL_REVISION (2)
/* ACE_HEADER structure */
#define ACCESS_MIN_MS_ACE_TYPE (0x0)
#define ACCESS_ALLOWED_ACE_TYPE (0x0)
#define ACCESS_DENIED_ACE_TYPE (0x1)
#define SYSTEM_AUDIT_ACE_TYPE (0x2)
#define SYSTEM_ALARM_ACE_TYPE (0x3)
#define ACCESS_MAX_MS_V2_ACE_TYPE (0x3)
#define ACCESS_ALLOWED_COMPOUND_ACE_TYPE (0x4)
#define ACCESS_MAX_MS_V3_ACE_TYPE (0x4)
#define ACCESS_MAX_MS_ACE_TYPE (0x4)
/* ACE flags in the ACE_HEADER structure */
#define OBJECT_INHERIT_ACE (0x1)
#define CONTAINER_INHERIT_ACE (0x2)
#define NO_PROPAGATE_INHERIT_ACE (0x4)
#define INHERIT_ONLY_ACE (0x8)
#define SUCCESSFUL_ACCESS_ACE_FLAG (0x40)
#define FAILED_ACCESS_ACE_FLAG (0x80)
/* SECURITY_DESCRIPTOR_CONTROL */
#define SECURITY_DESCRIPTOR_REVISION (1)
#define SECURITY_DESCRIPTOR_REVISION1 (1)
#define SECURITY_DESCRIPTOR_MIN_LENGTH (20)
#define SE_OWNER_DEFAULTED (0x0001)
#define SE_GROUP_DEFAULTED (0x0002)
#define SE_DACL_PRESENT (0x0004)
#define SE_DACL_DEFAULTED (0x0008)
#define SE_SACL_PRESENT (0x0010)
#define SE_SACL_DEFAULTED (0x0020)
#define SE_RM_CONTROL_VALID (0x4000)
#define SE_SELF_RELATIVE (0x8000)
/* PRIVILEGE_SET */
#define SE_PRIVILEGE_ENABLED_BY_DEFAULT (0x1L)
#define SE_PRIVILEGE_ENABLED (0x2L)
#define SE_PRIVILEGE_USED_FOR_ACCESS (0x80000000L)
#define PRIVILEGE_SET_ALL_NECESSARY (0x1)
/* SID */
#define SID_REVISION (1)
#define SID_MAX_SUB_AUTHORITIES (15)
typedef struct _SEP_AUDIT_POLICY_CATEGORIES {
UCHAR System:4;
UCHAR Logon:4;
UCHAR ObjectAccess:4;
UCHAR PrivilegeUse:4;
UCHAR DetailedTracking:4;
UCHAR PolicyChange:4;
UCHAR AccountManagement:4;
UCHAR DirectoryServiceAccess:4;
UCHAR AccountLogon:4;
} SEP_AUDIT_POLICY_CATEGORIES, *PSEP_AUDIT_POLICY_CATEGORIES;
typedef struct _SEP_AUDIT_POLICY_OVERLAY {
ULONGLONG PolicyBits:36;
UCHAR SetBit:1;
} SEP_AUDIT_POLICY_OVERLAY, *PSEP_AUDIT_POLICY_OVERLAY;
typedef struct _SEP_AUDIT_POLICY {
union {
SEP_AUDIT_POLICY_CATEGORIES PolicyElements;
SEP_AUDIT_POLICY_OVERLAY PolicyOverlay;
ULONGLONG Overlay;
};
} SEP_AUDIT_POLICY, *PSEP_AUDIT_POLICY;
typedef struct _TOKEN {
TOKEN_SOURCE TokenSource; /* 0x00 */
LUID TokenId; /* 0x10 */
LUID AuthenticationId; /* 0x18 */
LUID ParentTokenId; /* 0x20 */
LARGE_INTEGER ExpirationTime; /* 0x28 */
struct _ERESOURCE *TokenLock; /* 0x30 */
SEP_AUDIT_POLICY AuditPolicy; /* 0x38 */
LUID ModifiedId; /* 0x40 */
ULONG SessionId; /* 0x48 */
ULONG UserAndGroupCount; /* 0x4C */
ULONG RestrictedSidCount; /* 0x50 */
ULONG PrivilegeCount; /* 0x54 */
ULONG VariableLength; /* 0x58 */
ULONG DynamicCharged; /* 0x5C */
ULONG DynamicAvailable; /* 0x60 */
ULONG DefaultOwnerIndex; /* 0x64 */
PSID_AND_ATTRIBUTES UserAndGroups; /* 0x68 */
PSID_AND_ATTRIBUTES RestrictedSids; /* 0x6C */
PSID PrimaryGroup; /* 0x70 */
PLUID_AND_ATTRIBUTES Privileges; /* 0x74 */
PULONG DynamicPart; /* 0x78 */
PACL DefaultDacl; /* 0x7C */
TOKEN_TYPE TokenType; /* 0x80 */
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* 0x84 */
ULONG TokenFlags; /* 0x88 */
BOOLEAN TokenInUse; /* 0x8C */
PVOID ProxyData; /* 0x90 */
PVOID AuditData; /* 0x94 */
LUID OriginatingLogonSession; /* 0x98 */
ULONG VariablePart; /* 0xA0 */
} TOKEN, *PTOKEN;
typedef PVOID PACCESS_TOKEN;
typedef struct _SECURITY_SUBJECT_CONTEXT
{
PACCESS_TOKEN ClientToken; /* 0x0 */
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* 0x4 */
PACCESS_TOKEN PrimaryToken; /* 0x8 */
PVOID ProcessAuditId; /* 0xC */
} SECURITY_SUBJECT_CONTEXT, *PSECURITY_SUBJECT_CONTEXT;
typedef struct _SECURITY_CLIENT_CONTEXT
{
SECURITY_QUALITY_OF_SERVICE SecurityQos;
PACCESS_TOKEN ClientToken;
BOOLEAN DirectlyAccessClientToken;
BOOLEAN DirectAccessEffectiveOnly;
BOOLEAN ServerIsRemote;
TOKEN_CONTROL ClientTokenControl;
} SECURITY_CLIENT_CONTEXT, *PSECURITY_CLIENT_CONTEXT;
typedef struct _SE_EXPORTS
{
/* Privilege values */
LUID SeCreateTokenPrivilege;
LUID SeAssignPrimaryTokenPrivilege;
LUID SeLockMemoryPrivilege;
LUID SeIncreaseQuotaPrivilege;
LUID SeUnsolicitedInputPrivilege;
LUID SeTcbPrivilege;
LUID SeSecurityPrivilege;
LUID SeTakeOwnershipPrivilege;
LUID SeLoadDriverPrivilege;
LUID SeCreatePagefilePrivilege;
LUID SeIncreaseBasePriorityPrivilege;
LUID SeSystemProfilePrivilege;
LUID SeSystemtimePrivilege;
LUID SeProfileSingleProcessPrivilege;
LUID SeCreatePermanentPrivilege;
LUID SeBackupPrivilege;
LUID SeRestorePrivilege;
LUID SeShutdownPrivilege;
LUID SeDebugPrivilege;
LUID SeAuditPrivilege;
LUID SeSystemEnvironmentPrivilege;
LUID SeChangeNotifyPrivilege;
LUID SeRemoteShutdownPrivilege;
/* Universally defined SIDs */
PSID SeNullSid;
PSID SeWorldSid;
PSID SeLocalSid;
PSID SeCreatorOwnerSid;
PSID SeCreatorGroupSid;
/* Nt defined SIDs */
PSID SeNtAuthoritySid;
PSID SeDialupSid;
PSID SeNetworkSid;
PSID SeBatchSid;
PSID SeInteractiveSid;
PSID SeLocalSystemSid;
PSID SeAliasAdminsSid;
PSID SeAliasUsersSid;
PSID SeAliasGuestsSid;
PSID SeAliasPowerUsersSid;
PSID SeAliasAccountOpsSid;
PSID SeAliasSystemOpsSid;
PSID SeAliasPrintOpsSid;
PSID SeAliasBackupOpsSid;
} SE_EXPORTS, *PSE_EXPORTS;
typedef NTSTATUS STDCALL_FUNC
(*PSE_LOGON_SESSION_TERMINATED_ROUTINE)(IN PLUID LogonId);
typedef enum _SECURITY_OPERATION_CODE
{
SetSecurityDescriptor,
QuerySecurityDescriptor,
DeleteSecurityDescriptor,
AssignSecurityDescriptor
} SECURITY_OPERATION_CODE, *PSECURITY_OPERATION_CODE;
typedef struct _ACCESS_STATE
{
LUID OperationID;
BOOLEAN SecurityEvaluated;
BOOLEAN GenerateAudit;
BOOLEAN GenerateClose;
BOOLEAN PrivilegesAllocated;
ULONG Flags;
ACCESS_MASK RemainingDesiredAccess;
ACCESS_MASK PreviouslyGrantedAccess;
ACCESS_MASK OriginallyDesiredAccess;
SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; /* 0x1C */
PSECURITY_DESCRIPTOR SecurityDescriptor; /* 0x2C */
PVOID AuxData; /* 0x30 */
union
{
INITIAL_PRIVILEGE_SET InitialPrivilegeSet;
PRIVILEGE_SET PrivilegeSet;
} Privileges;
BOOLEAN AuditPrivileges;
UNICODE_STRING ObjectName;
UNICODE_STRING ObjectTypeName;
} ACCESS_STATE, *PACCESS_STATE;
typedef struct _SE_IMPERSONATION_STATE {
PVOID Token;
BOOLEAN CopyOnOpen;
BOOLEAN EffectiveOnly;
SECURITY_IMPERSONATION_LEVEL Level;
} SE_IMPERSONATION_STATE, *PSE_IMPERSONATION_STATE;
#endif
/* EOF */

View File

@@ -1,679 +0,0 @@
/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: services/storage/include/srb.c
* PURPOSE: SCSI port driver definitions
* PROGRAMMER: Eric Kohl (ekohl@rz-online.de)
*/
#ifndef __STORAGE_INCLUDE_SRB_H
#define __STORAGE_INCLUDE_SRB_H
#if __GNUC__ >=3
#pragma GCC system_header
#endif
#ifdef __cplusplus
extern "C" {
#endif
#pragma pack(push,4)
#include "ntddk.h"
#if defined(_SCSIPORT_)
#define SCSIPORTAPI
#else
#define SCSIPORTAPI
#endif
#define DDKAPI STDCALL
/* Obsolete. For backward compatibility only. */
typedef PHYSICAL_ADDRESS SCSI_PHYSICAL_ADDRESS, *PSCSI_PHYSICAL_ADDRESS;
#define SP_UNINITIALIZED_VALUE ((ULONG) ~0)
#define SP_UNTAGGED ((ULONG) ~0)
#define SRB_SIMPLE_TAG_REQUEST 0x20
#define SRB_HEAD_OF_QUEUE_TAG_REQUEST 0x21
#define SRB_ORDERED_QUEUE_TAG_REQUEST 0x22
/* SRB Status Masks */
#define SRB_STATUS_QUEUE_FROZEN 0x40
#define SRB_STATUS_AUTOSENSE_VALID 0x80
#define SRB_STATUS(Status) \
(Status & ~(SRB_STATUS_AUTOSENSE_VALID | SRB_STATUS_QUEUE_FROZEN))
#define MAXIMUM_CDB_SIZE 12
/* Define SCSI maximum configuration parameters. */
#define SCSI_MAXIMUM_LOGICAL_UNITS 8
#define SCSI_MAXIMUM_TARGETS_PER_BUS 32
#define SCSI_MAXIMUM_BUSES 8
#define SCSI_MINIMUM_PHYSICAL_BREAKS 16
#define SCSI_MAXIMUM_PHYSICAL_BREAKS 255
#define SCSI_MAXIMUM_TARGETS 8
/* Port driver error codes */
#define SP_BUS_PARITY_ERROR 0x0001
#define SP_UNEXPECTED_DISCONNECT 0x0002
#define SP_INVALID_RESELECTION 0x0003
#define SP_BUS_TIME_OUT 0x0004
#define SP_PROTOCOL_ERROR 0x0005
#define SP_INTERNAL_ADAPTER_ERROR 0x0006
#define SP_REQUEST_TIMEOUT 0x0007
#define SP_IRQ_NOT_RESPONDING 0x0008
#define SP_BAD_FW_WARNING 0x0009
#define SP_BAD_FW_ERROR 0x000a
/* SCSI_REQUEST_BLOCK.Function constants */
#define SRB_FUNCTION_EXECUTE_SCSI 0x00
#define SRB_FUNCTION_CLAIM_DEVICE 0x01
#define SRB_FUNCTION_IO_CONTROL 0x02
#define SRB_FUNCTION_RECEIVE_EVENT 0x03
#define SRB_FUNCTION_RELEASE_QUEUE 0x04
#define SRB_FUNCTION_ATTACH_DEVICE 0x05
#define SRB_FUNCTION_RELEASE_DEVICE 0x06
#define SRB_FUNCTION_SHUTDOWN 0x07
#define SRB_FUNCTION_FLUSH 0x08
#define SRB_FUNCTION_ABORT_COMMAND 0x10
#define SRB_FUNCTION_RELEASE_RECOVERY 0x11
#define SRB_FUNCTION_RESET_BUS 0x12
#define SRB_FUNCTION_RESET_DEVICE 0x13
#define SRB_FUNCTION_TERMINATE_IO 0x14
#define SRB_FUNCTION_FLUSH_QUEUE 0x15
#define SRB_FUNCTION_REMOVE_DEVICE 0x16
/* SCSI_REQUEST_BLOCK.SrbStatus constants */
#define SRB_STATUS_PENDING 0x00
#define SRB_STATUS_SUCCESS 0x01
#define SRB_STATUS_ABORTED 0x02
#define SRB_STATUS_ABORT_FAILED 0x03
#define SRB_STATUS_ERROR 0x04
#define SRB_STATUS_BUSY 0x05
#define SRB_STATUS_INVALID_REQUEST 0x06
#define SRB_STATUS_INVALID_PATH_ID 0x07
#define SRB_STATUS_NO_DEVICE 0x08
#define SRB_STATUS_TIMEOUT 0x09
#define SRB_STATUS_SELECTION_TIMEOUT 0x0A
#define SRB_STATUS_COMMAND_TIMEOUT 0x0B
#define SRB_STATUS_MESSAGE_REJECTED 0x0D
#define SRB_STATUS_BUS_RESET 0x0E
#define SRB_STATUS_PARITY_ERROR 0x0F
#define SRB_STATUS_REQUEST_SENSE_FAILED 0x10
#define SRB_STATUS_NO_HBA 0x11
#define SRB_STATUS_DATA_OVERRUN 0x12
#define SRB_STATUS_UNEXPECTED_BUS_FREE 0x13
#define SRB_STATUS_PHASE_SEQUENCE_FAILURE 0x14
#define SRB_STATUS_BAD_SRB_BLOCK_LENGTH 0x15
#define SRB_STATUS_REQUEST_FLUSHED 0x16
#define SRB_STATUS_INVALID_LUN 0x20
#define SRB_STATUS_INVALID_TARGET_ID 0x21
#define SRB_STATUS_BAD_FUNCTION 0x22
#define SRB_STATUS_ERROR_RECOVERY 0x23
/* SCSI_REQUEST_BLOCK.SrbFlags constants */
#define SRB_FLAGS_QUEUE_ACTION_ENABLE 0x00000002
#define SRB_FLAGS_DISABLE_DISCONNECT 0x00000004
#define SRB_FLAGS_DISABLE_SYNCH_TRANSFER 0x00000008
#define SRB_FLAGS_BYPASS_FROZEN_QUEUE 0x00000010
#define SRB_FLAGS_DISABLE_AUTOSENSE 0x00000020
#define SRB_FLAGS_DATA_IN 0x00000040
#define SRB_FLAGS_DATA_OUT 0x00000080
#define SRB_FLAGS_NO_DATA_TRANSFER 0x00000000
#define SRB_FLAGS_UNSPECIFIED_DIRECTION (SRB_FLAGS_DATA_IN | SRB_FLAGS_DATA_OUT)
#define SRB_FLAGS_NO_QUEUE_FREEZE 0x00000100
#define SRB_FLAGS_ADAPTER_CACHE_ENABLE 0x00000200
#define SRB_FLAGS_IS_ACTIVE 0x00010000
#define SRB_FLAGS_ALLOCATED_FROM_ZONE 0x00020000
#define SRB_FLAGS_SGLIST_FROM_POOL 0x00040000
typedef struct _SCSI_REQUEST_BLOCK {
USHORT Length; /* 0x00 */
UCHAR Function; /* 0x02 */
UCHAR SrbStatus; /* 0x03 */
UCHAR ScsiStatus; /* 0x04 */
UCHAR PathId; /* 0x05 */
UCHAR TargetId; /* 0x06 */
UCHAR Lun; /* 0x07 */
UCHAR QueueTag; /* 0x08 */
UCHAR QueueAction; /* 0x09 */
UCHAR CdbLength; /* 0x0A */
UCHAR SenseInfoBufferLength; /* 0x0B */
ULONG SrbFlags; /* 0x0C */
ULONG DataTransferLength; /* 0x10 */
ULONG TimeOutValue; /* 0x14 */
PVOID DataBuffer; /* 0x18 */
PVOID SenseInfoBuffer; /* 0x1C */
struct _SCSI_REQUEST_BLOCK *NextSrb; /* 0x20 */
PVOID OriginalRequest; /* 0x24 */
PVOID SrbExtension; /* 0x28 */
ULONG QueueSortKey; /* 0x2C */
UCHAR Cdb[16]; /* 0x30 */
} SCSI_REQUEST_BLOCK, *PSCSI_REQUEST_BLOCK;
#define SCSI_REQUEST_BLOCK_SIZE sizeof(SCSI_REQUEST_BLOCK)
typedef struct _ACCESS_RANGE {
SCSI_PHYSICAL_ADDRESS RangeStart;
ULONG RangeLength;
BOOLEAN RangeInMemory;
}ACCESS_RANGE, *PACCESS_RANGE;
typedef struct _PORT_CONFIGURATION_INFORMATION {
ULONG Length;
ULONG SystemIoBusNumber;
INTERFACE_TYPE AdapterInterfaceType;
ULONG BusInterruptLevel;
ULONG BusInterruptVector;
KINTERRUPT_MODE InterruptMode;
ULONG MaximumTransferLength;
ULONG NumberOfPhysicalBreaks;
ULONG DmaChannel;
ULONG DmaPort;
DMA_WIDTH DmaWidth;
DMA_SPEED DmaSpeed;
ULONG AlignmentMask;
ULONG NumberOfAccessRanges;
#ifdef __GNUC__
ACCESS_RANGE *AccessRanges;
#else
ACCESS_RANGE (*AccessRanges)[];
#endif
PVOID Reserved;
UCHAR NumberOfBuses;
CCHAR InitiatorBusId[8];
BOOLEAN ScatterGather;
BOOLEAN Master;
BOOLEAN CachesData;
BOOLEAN AdapterScansDown;
BOOLEAN AtdiskPrimaryClaimed;
BOOLEAN AtdiskSecondaryClaimed;
BOOLEAN Dma32BitAddresses;
BOOLEAN DemandMode;
BOOLEAN MapBuffers;
BOOLEAN NeedPhysicalAddresses;
BOOLEAN TaggedQueuing;
BOOLEAN AutoRequestSense;
BOOLEAN MultipleRequestPerLu;
BOOLEAN ReceiveEvent;
BOOLEAN RealModeInitialized;
BOOLEAN BufferAccessScsiPortControlled;
UCHAR MaximumNumberOfTargets;
UCHAR ReservedUchars[2];
ULONG SlotNumber;
ULONG BusInterruptLevel2;
ULONG BusInterruptVector2;
KINTERRUPT_MODE InterruptMode2;
ULONG DmaChannel2;
ULONG DmaPort2;
DMA_WIDTH DmaWidth2;
DMA_SPEED DmaSpeed2;
ULONG DeviceExtensionSize;
ULONG SpecificLuExtensionSize;
ULONG SrbExtensionSize;
} PORT_CONFIGURATION_INFORMATION, *PPORT_CONFIGURATION_INFORMATION;
#define CONFIG_INFO_VERSION_2 sizeof(PORT_CONFIGURATION_INFORMATION)
typedef enum _SCSI_NOTIFICATION_TYPE {
RequestComplete,
NextRequest,
NextLuRequest,
ResetDetected,
CallDisableInterrupts,
CallEnableInterrupts,
RequestTimerCall
} SCSI_NOTIFICATION_TYPE, *PSCSI_NOTIFICATION_TYPE;
typedef BOOLEAN DDKAPI
(*PHW_ADAPTER_STATE)(
IN PVOID DeviceExtension,
IN PVOID Context,
IN BOOLEAN SaveState);
/* Return values for SCSI_HW_FIND_ADAPTER. */
#define SP_RETURN_NOT_FOUND 0
#define SP_RETURN_FOUND 1
#define SP_RETURN_ERROR 2
#define SP_RETURN_BAD_CONFIG 3
typedef ULONG DDKAPI
(*PHW_FIND_ADAPTER)(
IN PVOID DeviceExtension,
IN PVOID HwContext,
IN PVOID BusInformation,
IN PCHAR ArgumentString,
IN OUT PPORT_CONFIGURATION_INFORMATION ConfigInfo,
OUT PBOOLEAN Again);
typedef BOOLEAN DDKAPI
(*PHW_INITIALIZE)(
IN PVOID DeviceExtension);
typedef BOOLEAN DDKAPI
(*PHW_INTERRUPT)(
IN PVOID DeviceExtension);
typedef BOOLEAN DDKAPI
(*PHW_RESET_BUS)(
IN PVOID DeviceExtension,
IN ULONG PathId);
typedef VOID DDKAPI
(*PHW_DMA_STARTED)(
IN PVOID DeviceExtension);
typedef BOOLEAN DDKAPI
(*PHW_STARTIO)(
IN PVOID DeviceExtension,
IN PSCSI_REQUEST_BLOCK Srb);
typedef VOID DDKAPI
(*PHW_TIMER)(
IN PVOID DeviceExtension);
typedef struct _HW_INITIALIZATION_DATA {
ULONG HwInitializationDataSize;
INTERFACE_TYPE AdapterInterfaceType;
PHW_INITIALIZE HwInitialize;
PHW_STARTIO HwStartIo;
PHW_INTERRUPT HwInterrupt;
PHW_FIND_ADAPTER HwFindAdapter;
PHW_RESET_BUS HwResetBus;
PHW_DMA_STARTED HwDmaStarted;
PHW_ADAPTER_STATE HwAdapterState;
ULONG DeviceExtensionSize;
ULONG SpecificLuExtensionSize;
ULONG SrbExtensionSize;
ULONG NumberOfAccessRanges;
PVOID Reserved;
BOOLEAN MapBuffers;
BOOLEAN NeedPhysicalAddresses;
// BOOLEAN TaggedQueuing;
BOOLEAN TaggedQueueing;
BOOLEAN AutoRequestSense;
BOOLEAN MultipleRequestPerLu;
BOOLEAN ReceiveEvent;
USHORT VendorIdLength;
PVOID VendorId;
USHORT ReservedUshort;
USHORT DeviceIdLength;
PVOID DeviceId;
} HW_INITIALIZATION_DATA, *PHW_INITIALIZATION_DATA;
/* FUNCTIONS ****************************************************************/
VOID
DDKAPI
ScsiPortCompleteRequest(
IN PVOID HwDeviceExtension,
IN UCHAR PathId,
IN UCHAR TargetId,
IN UCHAR Lun,
IN UCHAR SrbStatus);
ULONG
DDKAPI
ScsiPortConvertPhysicalAddressToUlong(
IN SCSI_PHYSICAL_ADDRESS Address);
SCSIPORTAPI
SCSI_PHYSICAL_ADDRESS
DDKAPI
ScsiPortConvertUlongToPhysicalAddress(
IN ULONG UlongAddress);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortFlushDma(
IN PVOID HwDeviceExtension);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortFreeDeviceBase(
IN PVOID HwDeviceExtension,
IN PVOID MappedAddress);
SCSIPORTAPI
ULONG
DDKAPI
ScsiPortGetBusData(
IN PVOID DeviceExtension,
IN ULONG BusDataType,
IN ULONG SystemIoBusNumber,
IN ULONG SlotNumber,
IN PVOID Buffer,
IN ULONG Length);
SCSIPORTAPI
PVOID
DDKAPI
ScsiPortGetDeviceBase(
IN PVOID HwDeviceExtension,
IN INTERFACE_TYPE BusType,
IN ULONG SystemIoBusNumber,
IN SCSI_PHYSICAL_ADDRESS IoAddress,
IN ULONG NumberOfBytes,
IN BOOLEAN InIoSpace);
SCSIPORTAPI
PVOID
DDKAPI
ScsiPortGetLogicalUnit(
IN PVOID HwDeviceExtension,
IN UCHAR PathId,
IN UCHAR TargetId,
IN UCHAR Lun);
SCSIPORTAPI
SCSI_PHYSICAL_ADDRESS
DDKAPI
ScsiPortGetPhysicalAddress(
IN PVOID HwDeviceExtension,
IN PSCSI_REQUEST_BLOCK Srb OPTIONAL,
IN PVOID VirtualAddress,
OUT PULONG Length);
SCSIPORTAPI
PSCSI_REQUEST_BLOCK
DDKAPI
ScsiPortGetSrb(
IN PVOID DeviceExtension,
IN UCHAR PathId,
IN UCHAR TargetId,
IN UCHAR Lun,
IN LONG QueueTag);
SCSIPORTAPI
PVOID
DDKAPI
ScsiPortGetUncachedExtension(
IN PVOID HwDeviceExtension,
IN PPORT_CONFIGURATION_INFORMATION ConfigInfo,
IN ULONG NumberOfBytes);
SCSIPORTAPI
PVOID
DDKAPI
ScsiPortGetVirtualAddress(
IN PVOID HwDeviceExtension,
IN SCSI_PHYSICAL_ADDRESS PhysicalAddress);
SCSIPORTAPI
ULONG
DDKAPI
ScsiPortInitialize(
IN PVOID Argument1,
IN PVOID Argument2,
IN struct _HW_INITIALIZATION_DATA *HwInitializationData,
IN PVOID HwContext);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortIoMapTransfer(
IN PVOID HwDeviceExtension,
IN PSCSI_REQUEST_BLOCK Srb,
IN ULONG LogicalAddress,
IN ULONG Length);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortLogError(
IN PVOID HwDeviceExtension,
IN PSCSI_REQUEST_BLOCK Srb OPTIONAL,
IN UCHAR PathId,
IN UCHAR TargetId,
IN UCHAR Lun,
IN ULONG ErrorCode,
IN ULONG UniqueId);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortMoveMemory(
OUT PVOID Destination,
IN PVOID Source,
IN ULONG Length);
SCSIPORTAPI
VOID
ScsiPortNotification(
IN SCSI_NOTIFICATION_TYPE NotificationType,
IN PVOID HwDeviceExtension,
...);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortReadPortBufferUchar(
IN PUCHAR Port,
IN PUCHAR Value,
IN ULONG Count);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortReadPortBufferUlong(
IN PULONG Port,
IN PULONG Value,
IN ULONG Count);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortReadPortBufferUshort(
IN PUSHORT Port,
IN PUSHORT Value,
IN ULONG Count);
SCSIPORTAPI
UCHAR
DDKAPI
ScsiPortReadPortUchar(
IN PUCHAR Port);
SCSIPORTAPI
ULONG
DDKAPI
ScsiPortReadPortUlong(
IN PULONG Port);
SCSIPORTAPI
USHORT
DDKAPI
ScsiPortReadPortUshort(
IN PUSHORT Port);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortReadRegisterBufferUchar(
IN PUCHAR Register,
IN PUCHAR Buffer,
IN ULONG Count);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortReadRegisterBufferUlong(
IN PULONG Register,
IN PULONG Buffer,
IN ULONG Count);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortReadRegisterBufferUshort(
IN PUSHORT Register,
IN PUSHORT Buffer,
IN ULONG Count);
SCSIPORTAPI
UCHAR
DDKAPI
ScsiPortReadRegisterUchar(
IN PUCHAR Register);
SCSIPORTAPI
ULONG
DDKAPI
ScsiPortReadRegisterUlong(
IN PULONG Register);
SCSIPORTAPI
USHORT
DDKAPI
ScsiPortReadRegisterUshort(
IN PUSHORT Register);
SCSIPORTAPI
ULONG
DDKAPI
ScsiPortSetBusDataByOffset(
IN PVOID DeviceExtension,
IN ULONG BusDataType,
IN ULONG SystemIoBusNumber,
IN ULONG SlotNumber,
IN PVOID Buffer,
IN ULONG Offset,
IN ULONG Length);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortStallExecution(
IN ULONG MicroSeconds);
SCSIPORTAPI
BOOLEAN
DDKAPI
ScsiPortValidateRange(
IN PVOID HwDeviceExtension,
IN INTERFACE_TYPE BusType,
IN ULONG SystemIoBusNumber,
IN SCSI_PHYSICAL_ADDRESS IoAddress,
IN ULONG NumberOfBytes,
IN BOOLEAN InIoSpace);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortWritePortBufferUchar(
IN PUCHAR Port,
IN PUCHAR Buffer,
IN ULONG Count);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortWritePortBufferUlong(
IN PULONG Port,
IN PULONG Buffer,
IN ULONG Count);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortWritePortBufferUshort(
IN PUSHORT Port,
IN PUSHORT Value,
IN ULONG Count);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortWritePortUchar(
IN PUCHAR Port,
IN UCHAR Value);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortWritePortUlong(
IN PULONG Port,
IN ULONG Value);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortWritePortUshort(
IN PUSHORT Port,
IN USHORT Value);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortWriteRegisterBufferUchar(
IN PUCHAR Register,
IN PUCHAR Buffer,
IN ULONG Count);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortWriteRegisterBufferUlong(
IN PULONG Register,
IN PULONG Buffer,
IN ULONG Count);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortWriteRegisterBufferUshort(
IN PUSHORT Register,
IN PUSHORT Buffer,
IN ULONG Count);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortWriteRegisterUchar(
IN PUCHAR Register,
IN ULONG Value);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortWriteRegisterUlong(
IN PULONG Register,
IN ULONG Value);
SCSIPORTAPI
VOID
DDKAPI
ScsiPortWriteRegisterUshort(
IN PUSHORT Register,
IN USHORT Value);
SCSIPORTAPI
VOID
ScsiDebugPrint(
IN ULONG DebugPrintLevel,
IN PCHAR DebugMessage,
IN ...);
#pragma pack(pop)
#ifdef __cplusplus
}
#endif
#endif /* __STORAGE_INCLUDE_SRB_H */

View File

@@ -1,723 +0,0 @@
#ifndef __INCLUDE_DDK_STATUS_H
#define __INCLUDE_DDK_STATUS_H
#ifndef __ASM__
/*
NT_SUCCESS return TRUE for a SUCCESS or INFORMATION error code.
NT_SUCCESS return FALSE for a WARNING or ERROR error code.
Note that !NT_SUCCESS(errCode) is NOT the same as NT_ERROR(errCode)
*/
#define NT_SUCCESS(StatCode) ((NTSTATUS)(StatCode) >= 0)
#define NT_INFORMATION(StatCode) ((ULONG)(StatCode) >> 30 == 1)
#define NT_WARNING(StatCode) ((ULONG)(StatCode) >> 30 == 2)
#define NT_ERROR(StatCode) ((ULONG)(StatCode) >> 30 == 3)
/*
* Possible status codes
* FIXME: These may not be the actual values used by NT
*/
#define STATUS_SUCCESS ((NTSTATUS)0x00000000)
#ifndef STATUS_WAIT_0
#define STATUS_WAIT_0 ((NTSTATUS)0x00000000)
#endif
#define STATUS_WAIT_63 ((NTSTATUS)0x0000003F)
#define STATUS_ABANDONED ((NTSTATUS)0x00000080)
#ifndef STATUS_ABANDONED_WAIT_0
#define STATUS_ABANDONED_WAIT_0 ((NTSTATUS)0x00000080)
#endif
#define STATUS_ABANDONED_WAIT_63 ((NTSTATUS)0x000000BF)
#ifndef STATUS_USER_APC
#define STATUS_USER_APC ((NTSTATUS)0x000000C0)
#endif
#define STATUS_KERNEL_APC ((NTSTATUS)0x00000100)
#define STATUS_ALERTED ((NTSTATUS)0x00000101)
#ifndef STATUS_TIMEOUT
#define STATUS_TIMEOUT ((NTSTATUS)0x00000102)
#endif
#ifndef STATUS_PENDING
#define STATUS_PENDING ((NTSTATUS)0x00000103)
#endif
#define STATUS_REPARSE ((NTSTATUS)0x00000104)
#define STATUS_MORE_ENTRIES ((NTSTATUS)0x00000105)
#define STATUS_NOT_ALL_ASSIGNED ((NTSTATUS)0x00000106)
#define STATUS_SOME_NOT_MAPPED ((NTSTATUS)0x00000107)
#define STATUS_OPLOCK_BREAK_IN_PROCESS ((NTSTATUS)0x00000108)
#define STATUS_VOLUME_MOUNTED ((NTSTATUS)0x00000109)
#define STATUS_RXACT_COMMITTED ((NTSTATUS)0x0000010A)
#define STATUS_NOTIFY_CLEANUP ((NTSTATUS)0x0000010B)
#define STATUS_NOTIFY_ENUM_DIR ((NTSTATUS)0x0000010C)
#define STATUS_NO_QUOTAS_NO_ACCOUNT ((NTSTATUS)0x0000010D)
#define STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED ((NTSTATUS)0x0000010E)
#define STATUS_PROCESS_NOT_IN_JOB ((NTSTATUS)0x00000123)
#define STATUS_PROCESS_IN_JOB ((NTSTATUS)0x00000124)
#define STATUS_OBJECT_EXISTS ((NTSTATUS)0x40000000)
#define STATUS_THREAD_WAS_SUSPENDED ((NTSTATUS)0x40000001)
#define STATUS_WORKING_SET_LIMIT_RANGE ((NTSTATUS)0x40000002)
#define STATUS_IMAGE_NOT_AT_BASE ((NTSTATUS)0x40000003)
#define STATUS_RXACT_STATE_CREATED ((NTSTATUS)0x40000004)
#define STATUS_SEGMENT_NOTIFICATION ((NTSTATUS)0x40000005)
#define STATUS_LOCAL_USER_SESSION_KEY ((NTSTATUS)0x40000006)
#define STATUS_BAD_CURRENT_DIRECTORY ((NTSTATUS)0x40000007)
#define STATUS_SERIAL_MORE_WRITES ((NTSTATUS)0x40000008)
#define STATUS_REGISTRY_RECOVERED ((NTSTATUS)0x40000009)
#define STATUS_FT_READ_RECOVERING_FROM_BACKUP ((NTSTATUS)0x4000000A)
#define STATUS_FT_WRITE_RECOVERY ((NTSTATUS)0x4000000B)
#define STATUS_SERIAL_COUNTER_TIMEOUT ((NTSTATUS)0x4000000C)
#define STATUS_NULL_LM_PASSWORD ((NTSTATUS)0x4000000D)
#define STATUS_IMAGE_MACHINE_TYPE_MISMATCH ((NTSTATUS)0x4000000E)
#define STATUS_RECEIVE_PARTIAL ((NTSTATUS)0x4000000F)
#define STATUS_RECEIVE_EXPEDITED ((NTSTATUS)0x40000010)
#define STATUS_RECEIVE_PARTIAL_EXPEDITED ((NTSTATUS)0x40000011)
#define STATUS_EVENT_DONE ((NTSTATUS)0x40000012)
#define STATUS_EVENT_PENDING ((NTSTATUS)0x40000013)
#define STATUS_CHECKING_FILE_SYSTEM ((NTSTATUS)0x40000014)
#define STATUS_FATAL_APP_EXIT ((NTSTATUS)0x40000015)
#define STATUS_PREDEFINED_HANDLE ((NTSTATUS)0x40000016)
#define STATUS_WAS_UNLOCKED ((NTSTATUS)0x40000017)
#define STATUS_SERVICE_NOTIFICATION ((NTSTATUS)0x40000018)
#define STATUS_WAS_LOCKED ((NTSTATUS)0x40000019)
#define STATUS_LOG_HARD_ERROR ((NTSTATUS)0x4000001A)
#define STATUS_ALREADY_WIN32 ((NTSTATUS)0x4000001B)
#define STATUS_WX86_UNSIMULATE ((NTSTATUS)0x4000001C)
#define STATUS_WX86_CONTINUE ((NTSTATUS)0x4000001D)
#define STATUS_WX86_SINGLE_STEP ((NTSTATUS)0x4000001E)
#define STATUS_WX86_BREAKPOINT ((NTSTATUS)0x4000001F)
#define STATUS_WX86_EXCEPTION_CONTINUE ((NTSTATUS)0x40000020)
#define STATUS_WX86_EXCEPTION_LASTCHANCE ((NTSTATUS)0x40000021)
#define STATUS_WX86_EXCEPTION_CHAIN ((NTSTATUS)0x40000022)
#define STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE ((NTSTATUS)0x40000023)
#define STATUS_NO_YIELD_PERFORMED ((NTSTATUS)0x40000024)
#define STATUS_TIMER_RESUME_IGNORED ((NTSTATUS)0x40000025)
#define STATUS_ARBITRATION_UNHANDLED ((NTSTATUS)0x40000026)
#define STATUS_CARDBUS_NOT_SUPPORTED ((NTSTATUS)0x40000027)
#define STATUS_WX86_CREATEWX86TIB ((NTSTATUS)0x40000028)
#define STATUS_GUARD_PAGE_VIOLATION ((NTSTATUS)0x80000001)
#define STATUS_DATATYPE_MISALIGNMENT ((NTSTATUS)0x80000002)
#define STATUS_BREAKPOINT ((NTSTATUS)0x80000003)
#define STATUS_SINGLE_STEP ((NTSTATUS)0x80000004)
#define STATUS_BUFFER_OVERFLOW ((NTSTATUS)0x80000005)
#define STATUS_NO_MORE_FILES ((NTSTATUS)0x80000006)
#define STATUS_WAKE_SYSTEM_DEBUGGER ((NTSTATUS)0x80000007)
#define STATUS_HANDLES_CLOSED ((NTSTATUS)0x8000000A)
#define STATUS_NO_INHERITANCE ((NTSTATUS)0x8000000B)
#define STATUS_GUID_SUBSTITUTION_MADE ((NTSTATUS)0x8000000C)
#define STATUS_PARTIAL_COPY ((NTSTATUS)0x8000000D)
#define STATUS_DEVICE_PAPER_EMPTY ((NTSTATUS)0x8000000E)
#define STATUS_DEVICE_POWERED_OFF ((NTSTATUS)0x8000000F)
#define STATUS_DEVICE_OFF_LINE ((NTSTATUS)0x80000010)
#define STATUS_DEVICE_BUSY ((NTSTATUS)0x80000011)
#define STATUS_NO_MORE_EAS ((NTSTATUS)0x80000012)
#define STATUS_INVALID_EA_NAME ((NTSTATUS)0x80000013)
#define STATUS_EA_LIST_INCONSISTENT ((NTSTATUS)0x80000014)
#define STATUS_INVALID_EA_FLAG ((NTSTATUS)0x80000015)
#define STATUS_VERIFY_REQUIRED ((NTSTATUS)0x80000016)
#define STATUS_EXTRANEOUS_INFORMATION ((NTSTATUS)0x80000017)
#define STATUS_RXACT_COMMIT_NECESSARY ((NTSTATUS)0x80000018)
#define STATUS_NO_MORE_ENTRIES ((NTSTATUS)0x8000001A)
#define STATUS_FILEMARK_DETECTED ((NTSTATUS)0x8000001B)
#define STATUS_MEDIA_CHANGED ((NTSTATUS)0x8000001C)
#define STATUS_BUS_RESET ((NTSTATUS)0x8000001D)
#define STATUS_END_OF_MEDIA ((NTSTATUS)0x8000001E)
#define STATUS_BEGINNING_OF_MEDIA ((NTSTATUS)0x8000001F)
#define STATUS_MEDIA_CHECK ((NTSTATUS)0x80000020)
#define STATUS_SETMARK_DETECTED ((NTSTATUS)0x80000021)
#define STATUS_NO_DATA_DETECTED ((NTSTATUS)0x80000022)
#define STATUS_REDIRECTOR_HAS_OPEN_HANDLES ((NTSTATUS)0x80000023)
#define STATUS_SERVER_HAS_OPEN_HANDLES ((NTSTATUS)0x80000024)
#define STATUS_ALREADY_DISCONNECTED ((NTSTATUS)0x80000025)
#define STATUS_LONGJUMP ((NTSTATUS)0x80000026)
#define STATUS_UNSUCCESSFUL ((NTSTATUS)0xc0000001)
#define STATUS_NOT_IMPLEMENTED ((NTSTATUS)0xc0000002)
#define STATUS_INVALID_INFO_CLASS ((NTSTATUS)0xc0000003)
#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xc0000004)
#define STATUS_ACCESS_VIOLATION ((NTSTATUS)0xc0000005)
#define STATUS_IN_PAGE_ERROR ((NTSTATUS)0xc0000006)
#define STATUS_PAGEFILE_QUOTA ((NTSTATUS)0xc0000007)
#define STATUS_INVALID_HANDLE ((NTSTATUS)0xc0000008)
#define STATUS_BAD_INITIAL_STACK ((NTSTATUS)0xc0000009)
#define STATUS_BAD_INITIAL_PC ((NTSTATUS)0xc000000a)
#define STATUS_INVALID_CID ((NTSTATUS)0xc000000b)
#define STATUS_TIMER_NOT_CANCELED ((NTSTATUS)0xc000000c)
#define STATUS_INVALID_PARAMETER ((NTSTATUS)0xc000000d)
#define STATUS_NO_SUCH_DEVICE ((NTSTATUS)0xc000000e)
#define STATUS_NO_SUCH_FILE ((NTSTATUS)0xc000000f)
#define STATUS_INVALID_DEVICE_REQUEST ((NTSTATUS)0xc0000010)
#define STATUS_END_OF_FILE ((NTSTATUS)0xc0000011)
#define STATUS_WRONG_VOLUME ((NTSTATUS)0xc0000012)
#define STATUS_NO_MEDIA_IN_DEVICE ((NTSTATUS)0xc0000013)
#define STATUS_UNRECOGNIZED_MEDIA ((NTSTATUS)0xc0000014)
#define STATUS_NONEXISTENT_SECTOR ((NTSTATUS)0xc0000015)
#define STATUS_MORE_PROCESSING_REQUIRED ((NTSTATUS)0xc0000016)
#define STATUS_NO_MEMORY ((NTSTATUS)0xc0000017)
#define STATUS_CONFLICTING_ADDRESSES ((NTSTATUS)0xc0000018)
#define STATUS_NOT_MAPPED_VIEW ((NTSTATUS)0xc0000019)
#define STATUS_UNABLE_TO_FREE_VM ((NTSTATUS)0xc000001a)
#define STATUS_UNABLE_TO_DELETE_SECTION ((NTSTATUS)0xc000001b)
#define STATUS_INVALID_SYSTEM_SERVICE ((NTSTATUS)0xc000001c)
#define STATUS_ILLEGAL_INSTRUCTION ((NTSTATUS)0xc000001d)
#define STATUS_INVALID_LOCK_SEQUENCE ((NTSTATUS)0xc000001e)
#define STATUS_INVALID_VIEW_SIZE ((NTSTATUS)0xc000001f)
#define STATUS_INVALID_FILE_FOR_SECTION ((NTSTATUS)0xc0000020)
#define STATUS_ALREADY_COMMITTED ((NTSTATUS)0xc0000021)
#define STATUS_ACCESS_DENIED ((NTSTATUS)0xc0000022)
#define STATUS_BUFFER_TOO_SMALL ((NTSTATUS)0xc0000023)
#define STATUS_OBJECT_TYPE_MISMATCH ((NTSTATUS)0xc0000024)
#define STATUS_NONCONTINUABLE_EXCEPTION ((NTSTATUS)0xc0000025)
#define STATUS_INVALID_DISPOSITION ((NTSTATUS)0xc0000026)
#define STATUS_UNWIND ((NTSTATUS)0xc0000027)
#define STATUS_BAD_STACK ((NTSTATUS)0xc0000028)
#define STATUS_INVALID_UNWIND_TARGET ((NTSTATUS)0xc0000029)
#define STATUS_NOT_LOCKED ((NTSTATUS)0xc000002a)
#define STATUS_PARITY_ERROR ((NTSTATUS)0xc000002b)
#define STATUS_UNABLE_TO_DECOMMIT_VM ((NTSTATUS)0xc000002c)
#define STATUS_NOT_COMMITTED ((NTSTATUS)0xc000002d)
#define STATUS_INVALID_PORT_ATTRIBUTES ((NTSTATUS)0xc000002e)
#define STATUS_PORT_MESSAGE_TOO_LONG ((NTSTATUS)0xc000002f)
#define STATUS_INVALID_PARAMETER_MIX ((NTSTATUS)0xc0000030)
#define STATUS_INVALID_QUOTA_LOWER ((NTSTATUS)0xc0000031)
#define STATUS_DISK_CORRUPT_ERROR ((NTSTATUS)0xc0000032)
#define STATUS_OBJECT_NAME_INVALID ((NTSTATUS)0xc0000033)
#define STATUS_OBJECT_NAME_NOT_FOUND ((NTSTATUS)0xc0000034)
#define STATUS_OBJECT_NAME_COLLISION ((NTSTATUS)0xc0000035)
#define STATUS_OBJECT_NAME_EXISTS ((NTSTATUS)0x40000000)
#define STATUS_PORT_DISCONNECTED ((NTSTATUS)0xc0000037)
#define STATUS_DEVICE_ALREADY_ATTACHED ((NTSTATUS)0xc0000038)
#define STATUS_OBJECT_PATH_INVALID ((NTSTATUS)0xc0000039)
#define STATUS_OBJECT_PATH_NOT_FOUND ((NTSTATUS)0xc000003a)
#define STATUS_OBJECT_PATH_SYNTAX_BAD ((NTSTATUS)0xc000003b)
#define STATUS_DATA_OVERRUN ((NTSTATUS)0xc000003c)
#define STATUS_DATA_LATE_ERROR ((NTSTATUS)0xc000003d)
#define STATUS_DATA_ERROR ((NTSTATUS)0xc000003e)
#define STATUS_CRC_ERROR ((NTSTATUS)0xc000003f)
#define STATUS_SECTION_TOO_BIG ((NTSTATUS)0xc0000040)
#define STATUS_PORT_CONNECTION_REFUSED ((NTSTATUS)0xc0000041)
#define STATUS_INVALID_PORT_HANDLE ((NTSTATUS)0xc0000042)
#define STATUS_SHARING_VIOLATION ((NTSTATUS)0xc0000043)
#define STATUS_QUOTA_EXCEEDED ((NTSTATUS)0xc0000044)
#define STATUS_INVALID_PAGE_PROTECTION ((NTSTATUS)0xc0000045)
#define STATUS_MUTANT_NOT_OWNED ((NTSTATUS)0xc0000046)
#define STATUS_SEMAPHORE_LIMIT_EXCEEDED ((NTSTATUS)0xc0000047)
#define STATUS_PORT_ALREADY_SET ((NTSTATUS)0xc0000048)
#define STATUS_SECTION_NOT_IMAGE ((NTSTATUS)0xc0000049)
#define STATUS_SUSPEND_COUNT_EXCEEDED ((NTSTATUS)0xc000004a)
#define STATUS_THREAD_IS_TERMINATING ((NTSTATUS)0xc000004b)
#define STATUS_BAD_WORKING_SET_LIMIT ((NTSTATUS)0xc000004c)
#define STATUS_INCOMPATIBLE_FILE_MAP ((NTSTATUS)0xc000004d)
#define STATUS_SECTION_PROTECTION ((NTSTATUS)0xc000004e)
#define STATUS_EAS_NOT_SUPPORTED ((NTSTATUS)0xc000004f)
#define STATUS_EA_TOO_LARGE ((NTSTATUS)0xc0000050)
#define STATUS_NONEXISTENT_EA_ENTRY ((NTSTATUS)0xc0000051)
#define STATUS_NO_EAS_ON_FILE ((NTSTATUS)0xc0000052)
#define STATUS_EA_CORRUPT_ERROR ((NTSTATUS)0xc0000053)
#define STATUS_FILE_LOCK_CONFLICT ((NTSTATUS)0xc0000054)
#define STATUS_LOCK_NOT_GRANTED ((NTSTATUS)0xc0000055)
#define STATUS_DELETE_PENDING ((NTSTATUS)0xc0000056)
#define STATUS_CTL_FILE_NOT_SUPPORTED ((NTSTATUS)0xc0000057)
#define STATUS_UNKNOWN_REVISION ((NTSTATUS)0xc0000058)
#define STATUS_REVISION_MISMATCH ((NTSTATUS)0xc0000059)
#define STATUS_INVALID_OWNER ((NTSTATUS)0xc000005a)
#define STATUS_INVALID_PRIMARY_GROUP ((NTSTATUS)0xc000005b)
#define STATUS_NO_IMPERSONATION_TOKEN ((NTSTATUS)0xc000005c)
#define STATUS_CANT_DISABLE_MANDATORY ((NTSTATUS)0xc000005d)
#define STATUS_NO_LOGON_SERVERS ((NTSTATUS)0xc000005e)
#define STATUS_NO_SUCH_LOGON_SESSION ((NTSTATUS)0xc000005f)
#define STATUS_NO_SUCH_PRIVILEGE ((NTSTATUS)0xc0000060)
#define STATUS_PRIVILEGE_NOT_HELD ((NTSTATUS)0xc0000061)
#define STATUS_INVALID_ACCOUNT_NAME ((NTSTATUS)0xc0000062)
#define STATUS_USER_EXISTS ((NTSTATUS)0xc0000063)
#define STATUS_NO_SUCH_USER ((NTSTATUS)0xc0000064)
#define STATUS_GROUP_EXISTS ((NTSTATUS)0xc0000065)
#define STATUS_NO_SUCH_GROUP ((NTSTATUS)0xc0000066)
#define STATUS_MEMBER_IN_GROUP ((NTSTATUS)0xc0000067)
#define STATUS_MEMBER_NOT_IN_GROUP ((NTSTATUS)0xc0000068)
#define STATUS_LAST_ADMIN ((NTSTATUS)0xc0000069)
#define STATUS_WRONG_PASSWORD ((NTSTATUS)0xc000006a)
#define STATUS_ILL_FORMED_PASSWORD ((NTSTATUS)0xc000006b)
#define STATUS_PASSWORD_RESTRICTION ((NTSTATUS)0xc000006c)
#define STATUS_LOGON_FAILURE ((NTSTATUS)0xc000006d)
#define STATUS_ACCOUNT_RESTRICTION ((NTSTATUS)0xc000006e)
#define STATUS_INVALID_LOGON_HOURS ((NTSTATUS)0xc000006f)
#define STATUS_INVALID_WORKSTATION ((NTSTATUS)0xc0000070)
#define STATUS_PASSWORD_EXPIRED ((NTSTATUS)0xc0000071)
#define STATUS_ACCOUNT_DISABLED ((NTSTATUS)0xc0000072)
#define STATUS_NONE_MAPPED ((NTSTATUS)0xc0000073)
#define STATUS_TOO_MANY_LUIDS_REQUESTED ((NTSTATUS)0xc0000074)
#define STATUS_LUIDS_EXHAUSTED ((NTSTATUS)0xc0000075)
#define STATUS_INVALID_SUB_AUTHORITY ((NTSTATUS)0xc0000076)
#define STATUS_INVALID_ACL ((NTSTATUS)0xc0000077)
#define STATUS_INVALID_SID ((NTSTATUS)0xc0000078)
#define STATUS_INVALID_SECURITY_DESCR ((NTSTATUS)0xc0000079)
#define STATUS_PROCEDURE_NOT_FOUND ((NTSTATUS)0xc000007a)
#define STATUS_INVALID_IMAGE_FORMAT ((NTSTATUS)0xc000007b)
#define STATUS_NO_TOKEN ((NTSTATUS)0xc000007c)
#define STATUS_BAD_INHERITANCE_ACL ((NTSTATUS)0xc000007d)
#define STATUS_RANGE_NOT_LOCKED ((NTSTATUS)0xc000007e)
#define STATUS_DISK_FULL ((NTSTATUS)0xc000007f)
#define STATUS_SERVER_DISABLED ((NTSTATUS)0xc0000080)
#define STATUS_SERVER_NOT_DISABLED ((NTSTATUS)0xc0000081)
#define STATUS_TOO_MANY_GUIDS_REQUESTED ((NTSTATUS)0xc0000082)
#define STATUS_GUIDS_EXHAUSTED ((NTSTATUS)0xc0000083)
#define STATUS_INVALID_ID_AUTHORITY ((NTSTATUS)0xc0000084)
#define STATUS_AGENTS_EXHAUSTED ((NTSTATUS)0xc0000085)
#define STATUS_INVALID_VOLUME_LABEL ((NTSTATUS)0xc0000086)
#define STATUS_SECTION_NOT_EXTENDED ((NTSTATUS)0xc0000087)
#define STATUS_NOT_MAPPED_DATA ((NTSTATUS)0xc0000088)
#define STATUS_RESOURCE_DATA_NOT_FOUND ((NTSTATUS)0xc0000089)
#define STATUS_RESOURCE_TYPE_NOT_FOUND ((NTSTATUS)0xc000008a)
#define STATUS_RESOURCE_NAME_NOT_FOUND ((NTSTATUS)0xc000008b)
#define STATUS_ARRAY_BOUNDS_EXCEEDED ((NTSTATUS)0xc000008c)
#define STATUS_FLOAT_DENORMAL_OPERAND ((NTSTATUS)0xc000008d)
#define STATUS_FLOAT_DIVIDE_BY_ZERO ((NTSTATUS)0xc000008e)
#define STATUS_FLOAT_INEXACT_RESULT ((NTSTATUS)0xc000008f)
#define STATUS_FLOAT_INVALID_OPERATION ((NTSTATUS)0xc0000090)
#define STATUS_FLOAT_OVERFLOW ((NTSTATUS)0xc0000091)
#define STATUS_FLOAT_STACK_CHECK ((NTSTATUS)0xc0000092)
#define STATUS_FLOAT_UNDERFLOW ((NTSTATUS)0xc0000093)
#define STATUS_INTEGER_DIVIDE_BY_ZERO ((NTSTATUS)0xc0000094)
#define STATUS_INTEGER_OVERFLOW ((NTSTATUS)0xc0000095)
#define STATUS_PRIVILEGED_INSTRUCTION ((NTSTATUS)0xc0000096)
#define STATUS_TOO_MANY_PAGING_FILES ((NTSTATUS)0xc0000097)
#define STATUS_FILE_INVALID ((NTSTATUS)0xc0000098)
#define STATUS_ALLOTTED_SPACE_EXCEEDED ((NTSTATUS)0xc0000099)
#define STATUS_INSUFFICIENT_RESOURCES ((NTSTATUS)0xc000009a)
#define STATUS_DFS_EXIT_PATH_FOUND ((NTSTATUS)0xc000009b)
#define STATUS_DEVICE_DATA_ERROR ((NTSTATUS)0xc000009c)
#define STATUS_DEVICE_NOT_CONNECTED ((NTSTATUS)0xc000009d)
#define STATUS_DEVICE_POWER_FAILURE ((NTSTATUS)0xc000009e)
#define STATUS_FREE_VM_NOT_AT_BASE ((NTSTATUS)0xc000009f)
#define STATUS_MEMORY_NOT_ALLOCATED ((NTSTATUS)0xc00000a0)
#define STATUS_WORKING_SET_QUOTA ((NTSTATUS)0xc00000a1)
#define STATUS_MEDIA_WRITE_PROTECTED ((NTSTATUS)0xc00000a2)
#define STATUS_DEVICE_NOT_READY ((NTSTATUS)0xc00000a3)
#define STATUS_INVALID_GROUP_ATTRIBUTES ((NTSTATUS)0xc00000a4)
#define STATUS_BAD_IMPERSONATION_LEVEL ((NTSTATUS)0xc00000a5)
#define STATUS_CANT_OPEN_ANONYMOUS ((NTSTATUS)0xc00000a6)
#define STATUS_BAD_VALIDATION_CLASS ((NTSTATUS)0xc00000a7)
#define STATUS_BAD_TOKEN_TYPE ((NTSTATUS)0xc00000a8)
#define STATUS_BAD_MASTER_BOOT_RECORD ((NTSTATUS)0xc00000a9)
#define STATUS_INSTRUCTION_MISALIGNMENT ((NTSTATUS)0xc00000aa)
#define STATUS_INSTANCE_NOT_AVAILABLE ((NTSTATUS)0xc00000ab)
#define STATUS_PIPE_NOT_AVAILABLE ((NTSTATUS)0xc00000ac)
#define STATUS_INVALID_PIPE_STATE ((NTSTATUS)0xc00000ad)
#define STATUS_PIPE_BUSY ((NTSTATUS)0xc00000ae)
#define STATUS_ILLEGAL_FUNCTION ((NTSTATUS)0xc00000af)
#define STATUS_PIPE_DISCONNECTED ((NTSTATUS)0xc00000b0)
#define STATUS_PIPE_CLOSING ((NTSTATUS)0xc00000b1)
#define STATUS_PIPE_CONNECTED ((NTSTATUS)0xc00000b2)
#define STATUS_PIPE_LISTENING ((NTSTATUS)0xc00000b3)
#define STATUS_INVALID_READ_MODE ((NTSTATUS)0xc00000b4)
#define STATUS_IO_TIMEOUT ((NTSTATUS)0xc00000b5)
#define STATUS_FILE_FORCED_CLOSED ((NTSTATUS)0xc00000b6)
#define STATUS_PROFILING_NOT_STARTED ((NTSTATUS)0xc00000b7)
#define STATUS_PROFILING_NOT_STOPPED ((NTSTATUS)0xc00000b8)
#define STATUS_COULD_NOT_INTERPRET ((NTSTATUS)0xc00000b9)
#define STATUS_FILE_IS_A_DIRECTORY ((NTSTATUS)0xc00000ba)
#define STATUS_NOT_SUPPORTED ((NTSTATUS)0xc00000bb)
#define STATUS_REMOTE_NOT_LISTENING ((NTSTATUS)0xc00000bc)
#define STATUS_DUPLICATE_NAME ((NTSTATUS)0xc00000bd)
#define STATUS_BAD_NETWORK_PATH ((NTSTATUS)0xc00000be)
#define STATUS_NETWORK_BUSY ((NTSTATUS)0xc00000bf)
#define STATUS_DEVICE_DOES_NOT_EXIST ((NTSTATUS)0xc00000c0)
#define STATUS_TOO_MANY_COMMANDS ((NTSTATUS)0xc00000c1)
#define STATUS_ADAPTER_HARDWARE_ERROR ((NTSTATUS)0xc00000c2)
#define STATUS_INVALID_NETWORK_RESPONSE ((NTSTATUS)0xc00000c3)
#define STATUS_UNEXPECTED_NETWORK_ERROR ((NTSTATUS)0xc00000c4)
#define STATUS_BAD_REMOTE_ADAPTER ((NTSTATUS)0xc00000c5)
#define STATUS_PRINT_QUEUE_FULL ((NTSTATUS)0xc00000c6)
#define STATUS_NO_SPOOL_SPACE ((NTSTATUS)0xc00000c7)
#define STATUS_PRINT_CANCELLED ((NTSTATUS)0xc00000c8)
#define STATUS_NETWORK_NAME_DELETED ((NTSTATUS)0xc00000c9)
#define STATUS_NETWORK_ACCESS_DENIED ((NTSTATUS)0xc00000ca)
#define STATUS_BAD_DEVICE_TYPE ((NTSTATUS)0xc00000cb)
#define STATUS_BAD_NETWORK_NAME ((NTSTATUS)0xc00000cc)
#define STATUS_TOO_MANY_NAMES ((NTSTATUS)0xc00000cd)
#define STATUS_TOO_MANY_SESSIONS ((NTSTATUS)0xc00000ce)
#define STATUS_SHARING_PAUSED ((NTSTATUS)0xc00000cf)
#define STATUS_REQUEST_NOT_ACCEPTED ((NTSTATUS)0xc00000d0)
#define STATUS_REDIRECTOR_PAUSED ((NTSTATUS)0xc00000d1)
#define STATUS_NET_WRITE_FAULT ((NTSTATUS)0xc00000d2)
#define STATUS_PROFILING_AT_LIMIT ((NTSTATUS)0xc00000d3)
#define STATUS_NOT_SAME_DEVICE ((NTSTATUS)0xc00000d4)
#define STATUS_FILE_RENAMED ((NTSTATUS)0xc00000d5)
#define STATUS_VIRTUAL_CIRCUIT_CLOSED ((NTSTATUS)0xc00000d6)
#define STATUS_NO_SECURITY_ON_OBJECT ((NTSTATUS)0xc00000d7)
#define STATUS_CANT_WAIT ((NTSTATUS)0xc00000d8)
#define STATUS_PIPE_EMPTY ((NTSTATUS)0xc00000d9)
#define STATUS_CANT_ACCESS_DOMAIN_INFO ((NTSTATUS)0xc00000da)
#define STATUS_CANT_TERMINATE_SELF ((NTSTATUS)0xc00000db)
#define STATUS_INVALID_SERVER_STATE ((NTSTATUS)0xc00000dc)
#define STATUS_INVALID_DOMAIN_STATE ((NTSTATUS)0xc00000dd)
#define STATUS_INVALID_DOMAIN_ROLE ((NTSTATUS)0xc00000de)
#define STATUS_NO_SUCH_DOMAIN ((NTSTATUS)0xc00000df)
#define STATUS_DOMAIN_EXISTS ((NTSTATUS)0xc00000e0)
#define STATUS_DOMAIN_LIMIT_EXCEEDED ((NTSTATUS)0xc00000e1)
#define STATUS_OPLOCK_NOT_GRANTED ((NTSTATUS)0xc00000e2)
#define STATUS_INVALID_OPLOCK_PROTOCOL ((NTSTATUS)0xc00000e3)
#define STATUS_INTERNAL_DB_CORRUPTION ((NTSTATUS)0xc00000e4)
#define STATUS_INTERNAL_ERROR ((NTSTATUS)0xc00000e5)
#define STATUS_GENERIC_NOT_MAPPED ((NTSTATUS)0xc00000e6)
#define STATUS_BAD_DESCRIPTOR_FORMAT ((NTSTATUS)0xc00000e7)
#define STATUS_INVALID_USER_BUFFER ((NTSTATUS)0xc00000e8)
#define STATUS_UNEXPECTED_IO_ERROR ((NTSTATUS)0xc00000e9)
#define STATUS_UNEXPECTED_MM_CREATE_ERR ((NTSTATUS)0xc00000ea)
#define STATUS_UNEXPECTED_MM_MAP_ERROR ((NTSTATUS)0xc00000eb)
#define STATUS_UNEXPECTED_MM_EXTEND_ERR ((NTSTATUS)0xc00000ec)
#define STATUS_NOT_LOGON_PROCESS ((NTSTATUS)0xc00000ed)
#define STATUS_LOGON_SESSION_EXISTS ((NTSTATUS)0xc00000ee)
#define STATUS_INVALID_PARAMETER_1 ((NTSTATUS)0xc00000ef)
#define STATUS_INVALID_PARAMETER_2 ((NTSTATUS)0xc00000f0)
#define STATUS_INVALID_PARAMETER_3 ((NTSTATUS)0xc00000f1)
#define STATUS_INVALID_PARAMETER_4 ((NTSTATUS)0xc00000f2)
#define STATUS_INVALID_PARAMETER_5 ((NTSTATUS)0xc00000f3)
#define STATUS_INVALID_PARAMETER_6 ((NTSTATUS)0xc00000f4)
#define STATUS_INVALID_PARAMETER_7 ((NTSTATUS)0xc00000f5)
#define STATUS_INVALID_PARAMETER_8 ((NTSTATUS)0xc00000f6)
#define STATUS_INVALID_PARAMETER_9 ((NTSTATUS)0xc00000f7)
#define STATUS_INVALID_PARAMETER_10 ((NTSTATUS)0xc00000f8)
#define STATUS_INVALID_PARAMETER_11 ((NTSTATUS)0xc00000f9)
#define STATUS_INVALID_PARAMETER_12 ((NTSTATUS)0xc00000fa)
#define STATUS_REDIRECTOR_NOT_STARTED ((NTSTATUS)0xc00000fb)
#define STATUS_REDIRECTOR_STARTED ((NTSTATUS)0xc00000fc)
#define STATUS_STACK_OVERFLOW ((NTSTATUS)0xc00000fd)
#define STATUS_NO_SUCH_PACKAGE ((NTSTATUS)0xc00000fe)
#define STATUS_BAD_FUNCTION_TABLE ((NTSTATUS)0xc00000ff)
#define STATUS_VARIABLE_NOT_FOUND ((NTSTATUS)0xc0000100)
#define STATUS_DIRECTORY_NOT_EMPTY ((NTSTATUS)0xc0000101)
#define STATUS_FILE_CORRUPT_ERROR ((NTSTATUS)0xc0000102)
#define STATUS_NOT_A_DIRECTORY ((NTSTATUS)0xc0000103)
#define STATUS_BAD_LOGON_SESSION_STATE ((NTSTATUS)0xc0000104)
#define STATUS_LOGON_SESSION_COLLISION ((NTSTATUS)0xc0000105)
#define STATUS_NAME_TOO_LONG ((NTSTATUS)0xc0000106)
#define STATUS_FILES_OPEN ((NTSTATUS)0xc0000107)
#define STATUS_CONNECTION_IN_USE ((NTSTATUS)0xc0000108)
#define STATUS_MESSAGE_NOT_FOUND ((NTSTATUS)0xc0000109)
#define STATUS_PROCESS_IS_TERMINATING ((NTSTATUS)0xc000010a)
#define STATUS_INVALID_LOGON_TYPE ((NTSTATUS)0xc000010b)
#define STATUS_NO_GUID_TRANSLATION ((NTSTATUS)0xc000010c)
#define STATUS_CANNOT_IMPERSONATE ((NTSTATUS)0xc000010d)
#define STATUS_IMAGE_ALREADY_LOADED ((NTSTATUS)0xc000010e)
#define STATUS_ABIOS_NOT_PRESENT ((NTSTATUS)0xc000010f)
#define STATUS_ABIOS_LID_NOT_EXIST ((NTSTATUS)0xc0000110)
#define STATUS_ABIOS_LID_ALREADY_OWNED ((NTSTATUS)0xc0000111)
#define STATUS_ABIOS_NOT_LID_OWNER ((NTSTATUS)0xc0000112)
#define STATUS_ABIOS_INVALID_COMMAND ((NTSTATUS)0xc0000113)
#define STATUS_ABIOS_INVALID_LID ((NTSTATUS)0xc0000114)
#define STATUS_ABIOS_SELECTOR_NOT_AVAILABLE ((NTSTATUS)0xc0000115)
#define STATUS_ABIOS_INVALID_SELECTOR ((NTSTATUS)0xc0000116)
#define STATUS_NO_LDT ((NTSTATUS)0xc0000117)
#define STATUS_INVALID_LDT_SIZE ((NTSTATUS)0xc0000118)
#define STATUS_INVALID_LDT_OFFSET ((NTSTATUS)0xc0000119)
#define STATUS_INVALID_LDT_DESCRIPTOR ((NTSTATUS)0xc000011a)
#define STATUS_INVALID_IMAGE_NE_FORMAT ((NTSTATUS)0xc000011b)
#define STATUS_RXACT_INVALID_STATE ((NTSTATUS)0xc000011c)
#define STATUS_RXACT_COMMIT_FAILURE ((NTSTATUS)0xc000011d)
#define STATUS_MAPPED_FILE_SIZE_ZERO ((NTSTATUS)0xc000011e)
#define STATUS_TOO_MANY_OPENED_FILES ((NTSTATUS)0xc000011f)
#define STATUS_CANCELLED ((NTSTATUS)0xc0000120)
#define STATUS_CANNOT_DELETE ((NTSTATUS)0xc0000121)
#define STATUS_INVALID_COMPUTER_NAME ((NTSTATUS)0xc0000122)
#define STATUS_FILE_DELETED ((NTSTATUS)0xc0000123)
#define STATUS_SPECIAL_ACCOUNT ((NTSTATUS)0xc0000124)
#define STATUS_SPECIAL_GROUP ((NTSTATUS)0xc0000125)
#define STATUS_SPECIAL_USER ((NTSTATUS)0xc0000126)
#define STATUS_MEMBERS_PRIMARY_GROUP ((NTSTATUS)0xc0000127)
#define STATUS_FILE_CLOSED ((NTSTATUS)0xc0000128)
#define STATUS_TOO_MANY_THREADS ((NTSTATUS)0xc0000129)
#define STATUS_THREAD_NOT_IN_PROCESS ((NTSTATUS)0xc000012a)
#define STATUS_TOKEN_ALREADY_IN_USE ((NTSTATUS)0xc000012b)
#define STATUS_PAGEFILE_QUOTA_EXCEEDED ((NTSTATUS)0xc000012c)
#define STATUS_COMMITMENT_LIMIT ((NTSTATUS)0xc000012d)
#define STATUS_INVALID_IMAGE_LE_FORMAT ((NTSTATUS)0xc000012e)
#define STATUS_INVALID_IMAGE_NOT_MZ ((NTSTATUS)0xc000012f)
#define STATUS_INVALID_IMAGE_PROTECT ((NTSTATUS)0xc0000130)
#define STATUS_INVALID_IMAGE_WIN_16 ((NTSTATUS)0xc0000131)
#define STATUS_LOGON_SERVER_CONFLICT ((NTSTATUS)0xc0000132)
#define STATUS_TIME_DIFFERENCE_AT_DC ((NTSTATUS)0xc0000133)
#define STATUS_SYNCHRONIZATION_REQUIRED ((NTSTATUS)0xc0000134)
#define STATUS_DLL_NOT_FOUND ((NTSTATUS)0xc0000135)
#define STATUS_OPEN_FAILED ((NTSTATUS)0xc0000136)
#define STATUS_IO_PRIVILEGE_FAILED ((NTSTATUS)0xc0000137)
#define STATUS_ORDINAL_NOT_FOUND ((NTSTATUS)0xc0000138)
#define STATUS_ENTRYPOINT_NOT_FOUND ((NTSTATUS)0xc0000139)
#define STATUS_CONTROL_C_EXIT ((NTSTATUS)0xc000013a)
#define STATUS_LOCAL_DISCONNECT ((NTSTATUS)0xc000013b)
#define STATUS_REMOTE_DISCONNECT ((NTSTATUS)0xc000013c)
#define STATUS_REMOTE_RESOURCES ((NTSTATUS)0xc000013d)
#define STATUS_LINK_FAILED ((NTSTATUS)0xc000013e)
#define STATUS_LINK_TIMEOUT ((NTSTATUS)0xc000013f)
#define STATUS_INVALID_CONNECTION ((NTSTATUS)0xc0000140)
#define STATUS_INVALID_ADDRESS ((NTSTATUS)0xc0000141)
#define STATUS_DLL_INIT_FAILED ((NTSTATUS)0xc0000142)
#define STATUS_MISSING_SYSTEMFILE ((NTSTATUS)0xc0000143)
#define STATUS_UNHANDLED_EXCEPTION ((NTSTATUS)0xc0000144)
#define STATUS_APP_INIT_FAILURE ((NTSTATUS)0xc0000145)
#define STATUS_PAGEFILE_CREATE_FAILED ((NTSTATUS)0xc0000146)
#define STATUS_NO_PAGEFILE ((NTSTATUS)0xc0000147)
#define STATUS_INVALID_LEVEL ((NTSTATUS)0xc0000148)
#define STATUS_WRONG_PASSWORD_CORE ((NTSTATUS)0xc0000149)
#define STATUS_ILLEGAL_FLOAT_CONTEXT ((NTSTATUS)0xc000014a)
#define STATUS_PIPE_BROKEN ((NTSTATUS)0xc000014b)
#define STATUS_REGISTRY_CORRUPT ((NTSTATUS)0xc000014c)
#define STATUS_REGISTRY_IO_FAILED ((NTSTATUS)0xc000014d)
#define STATUS_NO_EVENT_PAIR ((NTSTATUS)0xc000014e)
#define STATUS_UNRECOGNIZED_VOLUME ((NTSTATUS)0xc000014f)
#define STATUS_SERIAL_NO_DEVICE_INITED ((NTSTATUS)0xc0000150)
#define STATUS_NO_SUCH_ALIAS ((NTSTATUS)0xc0000151)
#define STATUS_MEMBER_NOT_IN_ALIAS ((NTSTATUS)0xc0000152)
#define STATUS_MEMBER_IN_ALIAS ((NTSTATUS)0xc0000153)
#define STATUS_ALIAS_EXISTS ((NTSTATUS)0xc0000154)
#define STATUS_LOGON_NOT_GRANTED ((NTSTATUS)0xc0000155)
#define STATUS_TOO_MANY_SECRETS ((NTSTATUS)0xc0000156)
#define STATUS_SECRET_TOO_LONG ((NTSTATUS)0xc0000157)
#define STATUS_INTERNAL_DB_ERROR ((NTSTATUS)0xc0000158)
#define STATUS_FULLSCREEN_MODE ((NTSTATUS)0xc0000159)
#define STATUS_TOO_MANY_CONTEXT_IDS ((NTSTATUS)0xc000015a)
#define STATUS_LOGON_TYPE_NOT_GRANTED ((NTSTATUS)0xc000015b)
#define STATUS_NOT_REGISTRY_FILE ((NTSTATUS)0xc000015c)
#define STATUS_NT_CROSS_ENCRYPTION_REQUIRED ((NTSTATUS)0xc000015d)
#define STATUS_DOMAIN_CTRLR_CONFIG_ERROR ((NTSTATUS)0xc000015e)
#define STATUS_FT_MISSING_MEMBER ((NTSTATUS)0xc000015f)
#define STATUS_ILL_FORMED_SERVICE_ENTRY ((NTSTATUS)0xc0000160)
#define STATUS_ILLEGAL_CHARACTER ((NTSTATUS)0xc0000161)
#define STATUS_UNMAPPABLE_CHARACTER ((NTSTATUS)0xc0000162)
#define STATUS_UNDEFINED_CHARACTER ((NTSTATUS)0xc0000163)
#define STATUS_FLOPPY_VOLUME ((NTSTATUS)0xc0000164)
#define STATUS_FLOPPY_ID_MARK_NOT_FOUND ((NTSTATUS)0xc0000165)
#define STATUS_FLOPPY_WRONG_CYLINDER ((NTSTATUS)0xc0000166)
#define STATUS_FLOPPY_UNKNOWN_ERROR ((NTSTATUS)0xc0000167)
#define STATUS_FLOPPY_BAD_REGISTERS ((NTSTATUS)0xc0000168)
#define STATUS_DISK_RECALIBRATE_FAILED ((NTSTATUS)0xc0000169)
#define STATUS_DISK_OPERATION_FAILED ((NTSTATUS)0xc000016a)
#define STATUS_DISK_RESET_FAILED ((NTSTATUS)0xc000016b)
#define STATUS_SHARED_IRQ_BUSY ((NTSTATUS)0xc000016c)
#define STATUS_FT_ORPHANING ((NTSTATUS)0xc000016d)
#define STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT ((NTSTATUS)0xc000016e)
#define STATUS_PARTITION_FAILURE ((NTSTATUS)0xc0000172)
#define STATUS_INVALID_BLOCK_LENGTH ((NTSTATUS)0xc0000173)
#define STATUS_DEVICE_NOT_PARTITIONED ((NTSTATUS)0xc0000174)
#define STATUS_UNABLE_TO_LOCK_MEDIA ((NTSTATUS)0xc0000175)
#define STATUS_UNABLE_TO_UNLOAD_MEDIA ((NTSTATUS)0xc0000176)
#define STATUS_EOM_OVERFLOW ((NTSTATUS)0xc0000177)
#define STATUS_NO_MEDIA ((NTSTATUS)0xc0000178)
#define STATUS_NO_SUCH_MEMBER ((NTSTATUS)0xc000017a)
#define STATUS_INVALID_MEMBER ((NTSTATUS)0xc000017b)
#define STATUS_KEY_DELETED ((NTSTATUS)0xc000017c)
#define STATUS_NO_LOG_SPACE ((NTSTATUS)0xc000017d)
#define STATUS_TOO_MANY_SIDS ((NTSTATUS)0xc000017e)
#define STATUS_LM_CROSS_ENCRYPTION_REQUIRED ((NTSTATUS)0xc000017f)
#define STATUS_KEY_HAS_CHILDREN ((NTSTATUS)0xc0000180)
#define STATUS_CHILD_MUST_BE_VOLATILE ((NTSTATUS)0xc0000181)
#define STATUS_DEVICE_CONFIGURATION_ERROR ((NTSTATUS)0xc0000182)
#define STATUS_DRIVER_INTERNAL_ERROR ((NTSTATUS)0xc0000183)
#define STATUS_INVALID_DEVICE_STATE ((NTSTATUS)0xc0000184)
#define STATUS_IO_DEVICE_ERROR ((NTSTATUS)0xc0000185)
#define STATUS_DEVICE_PROTOCOL_ERROR ((NTSTATUS)0xc0000186)
#define STATUS_BACKUP_CONTROLLER ((NTSTATUS)0xc0000187)
#define STATUS_LOG_FILE_FULL ((NTSTATUS)0xc0000188)
#define STATUS_TOO_LATE ((NTSTATUS)0xc0000189)
#define STATUS_NO_TRUST_LSA_SECRET ((NTSTATUS)0xc000018a)
#define STATUS_NO_TRUST_SAM_ACCOUNT ((NTSTATUS)0xc000018b)
#define STATUS_TRUSTED_DOMAIN_FAILURE ((NTSTATUS)0xc000018c)
#define STATUS_TRUSTED_RELATIONSHIP_FAILURE ((NTSTATUS)0xc000018d)
#define STATUS_EVENTLOG_FILE_CORRUPT ((NTSTATUS)0xc000018e)
#define STATUS_EVENTLOG_CANT_START ((NTSTATUS)0xc000018f)
#define STATUS_TRUST_FAILURE ((NTSTATUS)0xc0000190)
#define STATUS_MUTANT_LIMIT_EXCEEDED ((NTSTATUS)0xc0000191)
#define STATUS_NETLOGON_NOT_STARTED ((NTSTATUS)0xc0000192)
#define STATUS_ACCOUNT_EXPIRED ((NTSTATUS)0xc0000193)
#define STATUS_POSSIBLE_DEADLOCK ((NTSTATUS)0xc0000194)
#define STATUS_NETWORK_CREDENTIAL_CONFLICT ((NTSTATUS)0xc0000195)
#define STATUS_REMOTE_SESSION_LIMIT ((NTSTATUS)0xc0000196)
#define STATUS_EVENTLOG_FILE_CHANGED ((NTSTATUS)0xc0000197)
#define STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT ((NTSTATUS)0xc0000198)
#define STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT ((NTSTATUS)0xc0000199)
#define STATUS_NOLOGON_SERVER_TRUST_ACCOUNT ((NTSTATUS)0xc000019a)
#define STATUS_DOMAIN_TRUST_INCONSISTENT ((NTSTATUS)0xc000019b)
#define STATUS_FS_DRIVER_REQUIRED ((NTSTATUS)0xc000019c)
#define STATUS_NO_USER_SESSION_KEY ((NTSTATUS)0xc0000202)
#define STATUS_USER_SESSION_DELETED ((NTSTATUS)0xc0000203)
#define STATUS_RESOURCE_LANG_NOT_FOUND ((NTSTATUS)0xc0000204)
#define STATUS_INSUFF_SERVER_RESOURCES ((NTSTATUS)0xc0000205)
#define STATUS_INVALID_BUFFER_SIZE ((NTSTATUS)0xc0000206)
#define STATUS_INVALID_ADDRESS_COMPONENT ((NTSTATUS)0xc0000207)
#define STATUS_INVALID_ADDRESS_WILDCARD ((NTSTATUS)0xc0000208)
#define STATUS_TOO_MANY_ADDRESSES ((NTSTATUS)0xc0000209)
#define STATUS_ADDRESS_ALREADY_EXISTS ((NTSTATUS)0xc000020a)
#define STATUS_ADDRESS_CLOSED ((NTSTATUS)0xc000020b)
#define STATUS_CONNECTION_DISCONNECTED ((NTSTATUS)0xc000020c)
#define STATUS_CONNECTION_RESET ((NTSTATUS)0xc000020d)
#define STATUS_TOO_MANY_NODES ((NTSTATUS)0xc000020e)
#define STATUS_TRANSACTION_ABORTED ((NTSTATUS)0xc000020f)
#define STATUS_TRANSACTION_TIMED_OUT ((NTSTATUS)0xc0000210)
#define STATUS_TRANSACTION_NO_RELEASE ((NTSTATUS)0xc0000211)
#define STATUS_TRANSACTION_NO_MATCH ((NTSTATUS)0xc0000212)
#define STATUS_TRANSACTION_RESPONDED ((NTSTATUS)0xc0000213)
#define STATUS_TRANSACTION_INVALID_ID ((NTSTATUS)0xc0000214)
#define STATUS_TRANSACTION_INVALID_TYPE ((NTSTATUS)0xc0000215)
#define STATUS_NOT_SERVER_SESSION ((NTSTATUS)0xc0000216)
#define STATUS_NOT_CLIENT_SESSION ((NTSTATUS)0xc0000217)
#define STATUS_CANNOT_LOAD_REGISTRY_FILE ((NTSTATUS)0xc0000218)
#define STATUS_DEBUG_ATTACH_FAILED ((NTSTATUS)0xc0000219)
#define STATUS_SYSTEM_PROCESS_TERMINATED ((NTSTATUS)0xc000021a)
#define STATUS_DATA_NOT_ACCEPTED ((NTSTATUS)0xc000021b)
#define STATUS_NO_BROWSER_SERVERS_FOUND ((NTSTATUS)0xc000021c)
#define STATUS_VDM_HARD_ERROR ((NTSTATUS)0xc000021d)
#define STATUS_DRIVER_CANCEL_TIMEOUT ((NTSTATUS)0xc000021e)
#define STATUS_REPLY_MESSAGE_MISMATCH ((NTSTATUS)0xc000021f)
#define STATUS_MAPPED_ALIGNMENT ((NTSTATUS)0xc0000220)
#define STATUS_IMAGE_CHECKSUM_MISMATCH ((NTSTATUS)0xc0000221)
#define STATUS_LOST_WRITEBEHIND_DATA ((NTSTATUS)0xc0000222)
#define STATUS_CLIENT_SERVER_PARAMETERS_INVALID ((NTSTATUS)0xc0000223)
#define STATUS_PASSWORD_MUST_CHANGE ((NTSTATUS)0xc0000224)
#define STATUS_NOT_FOUND ((NTSTATUS)0xc0000225)
#define STATUS_NOT_TINY_STREAM ((NTSTATUS)0xc0000226)
#define STATUS_RECOVERY_FAILURE ((NTSTATUS)0xc0000227)
#define STATUS_STACK_OVERFLOW_READ ((NTSTATUS)0xc0000228)
#define STATUS_FAIL_CHECK ((NTSTATUS)0xc0000229)
#define STATUS_DUPLICATE_OBJECTID ((NTSTATUS)0xc000022a)
#define STATUS_OBJECTID_EXISTS ((NTSTATUS)0xc000022b)
#define STATUS_CONVERT_TO_LARGE ((NTSTATUS)0xc000022c)
#define STATUS_RETRY ((NTSTATUS)0xc000022d)
#define STATUS_FOUND_OUT_OF_SCOPE ((NTSTATUS)0xc000022e)
#define STATUS_ALLOCATE_BUCKET ((NTSTATUS)0xc000022f)
#define STATUS_PROPSET_NOT_FOUND ((NTSTATUS)0xc0000230)
#define STATUS_MARSHALL_OVERFLOW ((NTSTATUS)0xc0000231)
#define STATUS_INVALID_VARIANT ((NTSTATUS)0xc0000232)
#define STATUS_DOMAIN_CONTROLLER_NOT_FOUND ((NTSTATUS)0xc0000233)
#define STATUS_ACCOUNT_LOCKED_OUT ((NTSTATUS)0xc0000234)
#define STATUS_HANDLE_NOT_CLOSABLE ((NTSTATUS)0xc0000235)
#define STATUS_CONNECTION_REFUSED ((NTSTATUS)0xc0000236)
#define STATUS_GRACEFUL_DISCONNECT ((NTSTATUS)0xc0000237)
#define STATUS_ADDRESS_ALREADY_ASSOCIATED ((NTSTATUS)0xc0000238)
#define STATUS_ADDRESS_NOT_ASSOCIATED ((NTSTATUS)0xc0000239)
#define STATUS_CONNECTION_INVALID ((NTSTATUS)0xc000023a)
#define STATUS_CONNECTION_ACTIVE ((NTSTATUS)0xc000023b)
#define STATUS_NETWORK_UNREACHABLE ((NTSTATUS)0xc000023c)
#define STATUS_HOST_UNREACHABLE ((NTSTATUS)0xc000023d)
#define STATUS_PROTOCOL_UNREACHABLE ((NTSTATUS)0xc000023e)
#define STATUS_PORT_UNREACHABLE ((NTSTATUS)0xc000023f)
#define STATUS_REQUEST_ABORTED ((NTSTATUS)0xc0000240)
#define STATUS_CONNECTION_ABORTED ((NTSTATUS)0xc0000241)
#define STATUS_BAD_COMPRESSION_BUFFER ((NTSTATUS)0xc0000242)
#define STATUS_USER_MAPPED_FILE ((NTSTATUS)0xc0000243)
#define STATUS_AUDIT_FAILED ((NTSTATUS)0xc0000244)
#define STATUS_TIMER_RESOLUTION_NOT_SET ((NTSTATUS)0xc0000245)
#define STATUS_CONNECTION_COUNT_LIMIT ((NTSTATUS)0xc0000246)
#define STATUS_LOGIN_TIME_RESTRICTION ((NTSTATUS)0xc0000247)
#define STATUS_LOGIN_WKSTA_RESTRICTION ((NTSTATUS)0xc0000248)
#define STATUS_IMAGE_MP_UP_MISMATCH ((NTSTATUS)0xc0000249)
#define STATUS_INSUFFICIENT_LOGON_INFO ((NTSTATUS)0xc0000250)
#define STATUS_BAD_DLL_ENTRYPOINT ((NTSTATUS)0xc0000251)
#define STATUS_BAD_SERVICE_ENTRYPOINT ((NTSTATUS)0xc0000252)
#define STATUS_LPC_REPLY_LOST ((NTSTATUS)0xc0000253)
#define STATUS_IP_ADDRESS_CONFLICT1 ((NTSTATUS)0xc0000254)
#define STATUS_IP_ADDRESS_CONFLICT2 ((NTSTATUS)0xc0000255)
#define STATUS_REGISTRY_QUOTA_LIMIT ((NTSTATUS)0xc0000256)
#define STATUS_PATH_NOT_COVERED ((NTSTATUS)0xc0000257)
#define STATUS_NO_CALLBACK_ACTIVE ((NTSTATUS)0xc0000258)
#define STATUS_LICENSE_QUOTA_EXCEEDED ((NTSTATUS)0xc0000259)
#define STATUS_PWD_TOO_SHORT ((NTSTATUS)0xc000025a)
#define STATUS_PWD_TOO_RECENT ((NTSTATUS)0xc000025b)
#define STATUS_PWD_HISTORY_CONFLICT ((NTSTATUS)0xc000025c)
#define STATUS_PLUGPLAY_NO_DEVICE ((NTSTATUS)0xc000025e)
#define STATUS_UNSUPPORTED_COMPRESSION ((NTSTATUS)0xc000025f)
#define STATUS_INVALID_HW_PROFILE ((NTSTATUS)0xc0000260)
#define STATUS_INVALID_PLUGPLAY_DEVICE_PATH ((NTSTATUS)0xc0000261)
#define STATUS_DRIVER_ORDINAL_NOT_FOUND ((NTSTATUS)0xc0000262)
#define STATUS_DRIVER_ENTRYPOINT_NOT_FOUND ((NTSTATUS)0xc0000263)
#define STATUS_RESOURCE_NOT_OWNED ((NTSTATUS)0xc0000264)
#define STATUS_TOO_MANY_LINKS ((NTSTATUS)0xc0000265)
#define STATUS_QUOTA_LIST_INCONSISTENT ((NTSTATUS)0xc0000266)
#define STATUS_FILE_IS_OFFLINE ((NTSTATUS)0xc0000267)
#define STATUS_EVALUATION_EXPIRATION ((NTSTATUS)0xc0000268)
#define STATUS_ILLEGAL_DLL_RELOCATION ((NTSTATUS)0xc0000269)
#define STATUS_LICENSE_VIOLATION ((NTSTATUS)0xc000026a)
#define STATUS_DLL_INIT_FAILED_LOGOFF ((NTSTATUS)0xc000026b)
#define STATUS_DRIVER_UNABLE_TO_LOAD ((NTSTATUS)0xc000026c)
#define STATUS_DFS_UNAVAILABLE ((NTSTATUS)0xc000026d)
#define STATUS_VOLUME_DISMOUNTED ((NTSTATUS)0xc000026e)
#define STATUS_WX86_INTERNAL_ERROR ((NTSTATUS)0xc000026f)
#define STATUS_WX86_FLOAT_STACK_CHECK ((NTSTATUS)0xc0000270)
#define STATUS_VALIDATE_CONTINUE ((NTSTATUS)0xc0000271)
#define STATUS_NO_MATCH ((NTSTATUS)0xc0000272)
#define STATUS_NO_MORE_MATCHES ((NTSTATUS)0xc0000273)
#define STATUS_INVALID_VLM_OPERATION ((NTSTATUS)0xc0000274)
#define STATUS_NOT_A_REPARSE_POINT ((NTSTATUS)0xc0000275)
#define STATUS_IO_REPARSE_TAG_INVALID ((NTSTATUS)0xc0000276)
#define STATUS_IO_REPARSE_TAG_MISMATCH ((NTSTATUS)0xc0000277)
#define STATUS_IO_REPARSE_DATA_INVALID ((NTSTATUS)0xc0000278)
#define STATUS_IO_REPARSE_TAG_NOT_HANDLED ((NTSTATUS)0xc0000279)
#define STATUS_RANGE_LIST_CONFLICT ((NTSTATUS)0xC0000282)
#define STATUS_RANGE_NOT_FOUND ((NTSTATUS)0xC000028C)
#define STATUS_FLOAT_MULTIPLE_FAULTS ((NTSTATUS)0xC00002B4L)
#define STATUS_FLOAT_MULTIPLE_TRAPS ((NTSTATUS)0xC00002B5L)
#define STATUS_SAM_INIT_FAILURE ((NTSTATUS)0xC00002CB)
#define RPC_NT_INVALID_STRING_BINDING ((NTSTATUS)0xC0020001)
#define RPC_NT_WRONG_KIND_OF_BINDING ((NTSTATUS)0xC0020002)
#define RPC_NT_INVALID_BINDING ((NTSTATUS)0xC0020003)
#define RPC_NT_PROTSEQ_NOT_SUPPORTED ((NTSTATUS)0xC0020004)
#define RPC_NT_INVALID_RPC_PROTSEQ ((NTSTATUS)0xC0020005)
#define RPC_NT_INVALID_STRING_UUID ((NTSTATUS)0xC0020006)
#define RPC_NT_INVALID_ENDPOINT_FORMAT ((NTSTATUS)0xC0020007)
#define RPC_NT_INVALID_NET_ADDR ((NTSTATUS)0xC0020008)
#define RPC_NT_NO_ENDPOINT_FOUND ((NTSTATUS)0xC0020009)
#define RPC_NT_INVALID_TIMEOUT ((NTSTATUS)0xC002000A)
#define RPC_NT_OBJECT_NOT_FOUND ((NTSTATUS)0xC002000B)
#define RPC_NT_ALREADY_REGISTERED ((NTSTATUS)0xC002000C)
#define RPC_NT_TYPE_ALREADY_REGISTERED ((NTSTATUS)0xC002000D)
#define RPC_NT_ALREADY_LISTENING ((NTSTATUS)0xC002000E)
#define RPC_NT_NO_PROTSEQS_REGISTERED ((NTSTATUS)0xC002000F)
#define RPC_NT_NOT_LISTENING ((NTSTATUS)0xC0020010)
#define RPC_NT_UNKNOWN_MGR_TYPE ((NTSTATUS)0xC0020011)
#define RPC_NT_UNKNOWN_IF ((NTSTATUS)0xC0020012)
#define RPC_NT_NO_BINDINGS ((NTSTATUS)0xC0020013)
#define RPC_NT_NO_PROTSEQS ((NTSTATUS)0xC0020014)
#define RPC_NT_CANT_CREATE_ENDPOINT ((NTSTATUS)0xC0020015)
#define RPC_NT_OUT_OF_RESOURCES ((NTSTATUS)0xC0020016)
#define RPC_NT_SERVER_UNAVAILABLE ((NTSTATUS)0xC0020017)
#define RPC_NT_SERVER_TOO_BUSY ((NTSTATUS)0xC0020018)
#define RPC_NT_INVALID_NETWORK_OPTIONS ((NTSTATUS)0xC0020019)
#define RPC_NT_NO_CALL_ACTIVE ((NTSTATUS)0xC002001A)
#define RPC_NT_CALL_FAILED ((NTSTATUS)0xC002001B)
#define RPC_NT_CALL_FAILED_DNE ((NTSTATUS)0xC002001C)
#define RPC_NT_PROTOCOL_ERROR ((NTSTATUS)0xC002001D)
#define RPC_NT_SS_IN_NULL_CONTEXT ((NTSTATUS)0xC0030004)
#else /* !__ASM__ */
#define STATUS_INVALID_SYSTEM_SERVICE 0xc000001c
#endif /* !__ASM__ */
#endif /* __INCLUDE_DDK_STATUS_H */

View File

@@ -1,10 +0,0 @@
/* SYSTEM STRUCTURES ******************************************************/
#include <ddk/cfgtypes.h>
#include <ddk/ketypes.h>
#include <ddk/obtypes.h>
#include <ddk/mmtypes.h>
#include <ddk/iotypes.h>
#include <ddk/extypes.h>
#include <ddk/pstypes.h>

View File

@@ -1,22 +0,0 @@
#ifndef __INCLUDE_DDK_TYPES_H
#define __INCLUDE_DDK_TYPES_H
/* these should be moved to a file like ntdef.h */
typedef ULONG KAFFINITY, *PKAFFINITY;
/*
* Various other types (all quite pointless)
*/
typedef UCHAR KPROCESSOR_MODE;
typedef UCHAR KIRQL;
typedef KIRQL* PKIRQL;
typedef ULONG IO_ALLOCATION_ACTION;
typedef ULONG TIMER_TYPE;
typedef ULONG MM_SYSTEM_SIZE;
typedef ULONG LOCK_OPERATION;
typedef LARGE_INTEGER PHYSICAL_ADDRESS;
typedef PHYSICAL_ADDRESS* PPHYSICAL_ADDRESS;
#endif /* __INCLUDE_DDK_TYPES_H */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,88 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/internal/debug.h
* PURPOSE: Useful debugging macros
* PROGRAMMER: David Welch (welch@mcmail.com)
* UPDATE HISTORY:
* 28/05/98: Created
*/
/*
* NOTE: Define NDEBUG before including this header to disable debugging
* macros
*/
#ifndef __INTERNAL_DEBUG
#define __INTERNAL_DEBUG
//#define UNIMPLEMENTED do {DbgPrint("%s at %s:%d is unimplemented, have a nice day\n",__FUNCTION__,__FILE__,__LINE__); for(;;); } while(0);
#define UNIMPLEMENTED DbgPrint("WARNING: %s at %s:%d is UNIMPLEMENTED!\n",__FUNCTION__,__FILE__,__LINE__);
/* FIXME: should probably remove this later */
#if !defined(CHECKED) && !defined(NDEBUG)
#define CHECKED
#endif
#ifndef assert
#ifndef NASSERT
#define assert(x) if (!(x)) {RtlAssert("#x",__FILE__,__LINE__, ""); }
#else
#define assert(x)
#endif
#endif
#ifndef ASSERT
#ifndef NASSERT
#define ASSERT(x) if (!(x)) {RtlAssert("#x",__FILE__,__LINE__, ""); }
#else
#define ASSERT(x)
#endif
#endif
#ifndef ASSERTMSG
#ifndef NASSERT
#define ASSERTMSG(x,m) if (!(x)) {RtlAssert("#x",__FILE__,__LINE__, m); }
#else
#define ASSERTMSG(x)
#endif
#endif
/* TODO: Make the output of file/line and the debug message atomic */
#define DPRINT1 DbgPrint("(%s:%d) ",__FILE__,__LINE__), DbgPrint
#define CHECKPOINT1 do { DbgPrint("%s:%d\n",__FILE__,__LINE__); } while(0);
#ifndef NDEBUG
#define DPRINT(args...) do { DbgPrint("(%s:%d) ",__FILE__,__LINE__); DbgPrint(args); } while(0);
#define CHECKPOINT do { DbgPrint("%s:%d\n",__FILE__,__LINE__); } while(0);
#else
#ifdef __GNUC__
#define DPRINT(args...)
#else
#define DPRINT
#endif /* __GNUC__ */
#define CHECKPOINT
#endif /* NDEBUG */
/*
* FUNCTION: Assert a maximum value for the current irql
* ARGUMENTS:
* x = Maximum irql
*/
#define ASSERT_IRQL(x) assert(KeGetCurrentIrql()<=(x))
#define assert_irql(x) assert(KeGetCurrentIrql()<=(x))
/* Macros expanding to the appropriate inline assembly to raise a breakpoint */
#if defined(_M_IX86)
#define ASM_BREAKPOINT "\nint $3\n"
#elif defined(_M_ALPHA)
#define ASM_BREAKPOINT "\ncall_pal bpt\n"
#elif defined(_M_MIPS)
#define ASM_BREAKPOINT "\nbreak\n"
#else
#error Unsupported architecture.
#endif
#endif /* __INTERNAL_DEBUG */

File diff suppressed because it is too large Load Diff

View File

@@ -1,16 +0,0 @@
typedef struct
{
LPSTR LeftVolumeName;
LPSTR RightVolumeName;
ULONG DefaultVolume;
ULONG Type;
ULONG DeviceType;
char Key[4];
LPSTR PrototypeName;
PVOID DeferredRoutine;
PVOID ExclusionRoutine;
PVOID DispatchRoutine;
PVOID DevCapsRoutine;
PVOID HwSetVolume;
ULONG IoMethod;
}SOUND_DEVICE_INIT;

View File

@@ -1,864 +0,0 @@
/*
* Copyright (C) 1999 Eric Pouech
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_DIGITALV_H
#define __WINE_DIGITALV_H
/*
* Wine Digital Video extensions
*/
#ifdef __cplusplus
extern "C" {
#endif
#define MCI_TEST 0x00000020L
/* Message values */
#define MCI_CAPTURE 0x0870
#define MCI_MONITOR 0x0871
#define MCI_RESERVE 0x0872
#define MCI_SETAUDIO 0x0873
#define MCI_SIGNAL 0x0875
#define MCI_SETVIDEO 0x0876
#define MCI_QUALITY 0x0877
#define MCI_LIST 0x0878
#define MCI_UNDO 0x0879
#define MCI_CONFIGURE 0x087A
#define MCI_RESTORE 0x087B
/* Return and string constant values */
#define MCI_ON 1
#define MCI_OFF 0
#define MCI_DGV_FILE_MODE_SAVING 0x0001
#define MCI_DGV_FILE_MODE_LOADING 0x0002
#define MCI_DGV_FILE_MODE_EDITING 0x0003
#define MCI_DGV_FILE_MODE_IDLE 0x0004
/* These identifiers are used only by device drivers */
#define MCI_ON_S 0x00008000L
#define MCI_OFF_S 0x00008001L
#define MCI_DGV_FILE_S 0x00008002L
#define MCI_DGV_INPUT_S 0x00008003L
#define MCI_DGV_FILE_MODE_SAVING_S 0x00008004L
#define MCI_DGV_FILE_MODE_LOADING_S 0x00008005L
#define MCI_DGV_FILE_MODE_EDITING_S 0x00008006L
#define MCI_DGV_FILE_MODE_IDLE_S 0x00008007L
#define MCI_DGV_SETVIDEO_SRC_NTSC_S 0x00008010L
#define MCI_DGV_SETVIDEO_SRC_RGB_S 0x00008011L
#define MCI_DGV_SETVIDEO_SRC_SVIDEO_S 0x00008012L
#define MCI_DGV_SETVIDEO_SRC_PAL_S 0x00008013L
#define MCI_DGV_SETVIDEO_SRC_SECAM_S 0x00008014L
#define MCI_DGV_SETVIDEO_SRC_GENERIC_S 0x00008015L
#define MCI_DGV_SETAUDIO_SRC_LEFT_S 0x00008020L
#define MCI_DGV_SETAUDIO_SRC_RIGHT_S 0x00008021L
#define MCI_DGV_SETAUDIO_SRC_AVERAGE_S 0x00008022L
#define MCI_DGV_SETAUDIO_SRC_STEREO_S 0x00008023L
/* Window message for signal notification */
#ifndef MM_MCISIGNAL
#define MM_MCISIGNAL 0x3CB
#endif
/* error values */
#define MCIERR_DGV_DEVICE_LIMIT (MCIERR_CUSTOM_DRIVER_BASE+0)
#define MCIERR_DGV_IOERR (MCIERR_CUSTOM_DRIVER_BASE+1)
#define MCIERR_DGV_WORKSPACE_EMPTY (MCIERR_CUSTOM_DRIVER_BASE+2)
#define MCIERR_DGV_DISK_FULL (MCIERR_CUSTOM_DRIVER_BASE+3)
#define MCIERR_DGV_DEVICE_MEMORY_FULL (MCIERR_CUSTOM_DRIVER_BASE+4)
#define MCIERR_DGV_BAD_CLIPBOARD_RANGE (MCIERR_CUSTOM_DRIVER_BASE+5)
/* defines for monitor methods */
#define MCI_DGV_METHOD_PRE 0x0000a000L
#define MCI_DGV_METHOD_POST 0x0000a001L
#define MCI_DGV_METHOD_DIRECT 0x0000a002L
/* defines for known file formats */
#define MCI_DGV_FF_AVSS 0x00004000L
#define MCI_DGV_FF_AVI 0x00004001L
#define MCI_DGV_FF_DIB 0x00004002L
#define MCI_DGV_FF_RDIB 0x00004003L
#define MCI_DGV_FF_JPEG 0x00004004L
#define MCI_DGV_FF_RJPEG 0x00004005L
#define MCI_DGV_FF_JFIF 0x00004006L
#define MCI_DGV_FF_MPEG 0x00004007L
/* values for dwItem field of MCI_CAPABILITY_PARMS structure */
#define MCI_DGV_GETDEVCAPS_CAN_LOCK 0x00004000L
#define MCI_DGV_GETDEVCAPS_CAN_STRETCH 0x00004001L
#define MCI_DGV_GETDEVCAPS_CAN_FREEZE 0x00004002L
#define MCI_DGV_GETDEVCAPS_MAX_WINDOWS 0x00004003L
#define MCI_DGV_GETDEVCAPS_CAN_REVERSE 0x00004004L
#define MCI_DGV_GETDEVCAPS_HAS_STILL 0x00004005L
#define MCI_DGV_GETDEVCAPS_PALETTES 0x00004006L
#define MCI_DGV_GETDEVCAPS_CAN_STR_IN 0x00004008L
#define MCI_DGV_GETDEVCAPS_CAN_TEST 0x00004009L
#define MCI_DGV_GETDEVCAPS_MAXIMUM_RATE 0x0000400aL
#define MCI_DGV_GETDEVCAPS_MINIMUM_RATE 0x0000400bL
/* flags for dwFlags parameter of MCI_CAPTURE command message */
#define MCI_DGV_CAPTURE_AS 0x00010000L
#define MCI_DGV_CAPTURE_AT 0x00020000L
/* flags for dwFlags parameter of MCI_COPY command message */
#define MCI_DGV_COPY_AT 0x00010000L
#define MCI_DGV_COPY_AUDIO_STREAM 0x00020000L
#define MCI_DGV_COPY_VIDEO_STREAM 0x00040000L
/* flags for dwFlags parameter of MCI_CUE command message */
#define MCI_DGV_CUE_INPUT 0x00010000L
#define MCI_DGV_CUE_OUTPUT 0x00020000L
#define MCI_DGV_CUE_NOSHOW 0x00040000L
/* flags for dwFlags parameter of MCI_CUT command message */
#define MCI_DGV_CUT_AT 0x00010000L
#define MCI_DGV_CUT_AUDIO_STREAM 0x00020000L
#define MCI_DGV_CUT_VIDEO_STREAM 0x00040000L
/* flags for dwFlags parameter of MCI_DELETE command message */
#define MCI_DGV_DELETE_AT 0x00010000L
#define MCI_DGV_DELETE_AUDIO_STREAM 0x00020000L
#define MCI_DGV_DELETE_VIDEO_STREAM 0x00040000L
/* flags for dwFlags parameter of MCI_FREEZE command message */
#define MCI_DGV_FREEZE_AT 0x00010000L
#define MCI_DGV_FREEZE_OUTSIDE 0x00020000L
/* flags for dwFlags parameter of MCI_INFO command message */
#define MCI_DGV_INFO_TEXT 0x00010000L
#define MCI_DGV_INFO_ITEM 0X00020000L
/* values for dwItem field of MCI_DGV_INFO_PARMS structure */
#define MCI_INFO_VERSION 0x00000400L
#define MCI_DGV_INFO_USAGE 0x00004000L
#define MCI_DGV_INFO_AUDIO_QUALITY 0x00004001L
#define MCI_DGV_INFO_STILL_QUALITY 0x00004002L
#define MCI_DGV_INFO_VIDEO_QUALITY 0x00004003L
#define MCI_DGV_INFO_AUDIO_ALG 0x00004004L
#define MCI_DGV_INFO_STILL_ALG 0x00004005L
#define MCI_DGV_INFO_VIDEO_ALG 0x00004006L
/* flags for dwFlags parameter of MCI_LIST command message */
#define MCI_DGV_LIST_ITEM 0x00010000L
#define MCI_DGV_LIST_COUNT 0x00020000L
#define MCI_DGV_LIST_NUMBER 0x00040000L
#define MCI_DGV_LIST_ALG 0x00080000L
/* values for dwItem field of MCI_DGV_LIST_PARMS structure */
#define MCI_DGV_LIST_AUDIO_ALG 0x00004000L
#define MCI_DGV_LIST_AUDIO_QUALITY 0x00004001L
#define MCI_DGV_LIST_AUDIO_STREAM 0x00004002L
#define MCI_DGV_LIST_STILL_ALG 0x00004003L
#define MCI_DGV_LIST_STILL_QUALITY 0x00004004L
#define MCI_DGV_LIST_VIDEO_ALG 0x00004005L
#define MCI_DGV_LIST_VIDEO_QUALITY 0x00004006L
#define MCI_DGV_LIST_VIDEO_STREAM 0x00004007L
#define MCI_DGV_LIST_VIDEO_SOURCE 0x00004008L
/* flags for dwFlags parameter of MCI_MONITOR command message */
#define MCI_DGV_MONITOR_METHOD 0x00010000L
#define MCI_DGV_MONITOR_SOURCE 0x00020000L
/* values for dwSource parameter of the MCI_DGV_MONITOR_PARMS struture */
#define MCI_DGV_MONITOR_INPUT 0x00004000L
#define MCI_DGV_MONITOR_FILE 0x00004001L
/* flags for dwFlags parameter of MCI_OPEN command message */
#define MCI_DGV_OPEN_WS 0x00010000L
#define MCI_DGV_OPEN_PARENT 0x00020000L
#define MCI_DGV_OPEN_NOSTATIC 0x00040000L
#define MCI_DGV_OPEN_16BIT 0x00080000L
#define MCI_DGV_OPEN_32BIT 0x00100000L
/* flags for dwFlags parameter of MCI_PASTE command message */
#define MCI_DGV_PASTE_AT 0x00010000L
#define MCI_DGV_PASTE_AUDIO_STREAM 0x00020000L
#define MCI_DGV_PASTE_VIDEO_STREAM 0x00040000L
#define MCI_DGV_PASTE_INSERT 0x00080000L
#define MCI_DGV_PASTE_OVERWRITE 0x00100000L
/* flags for dwFlags parameter of MCI_PLAY command message */
#define MCI_DGV_PLAY_REPEAT 0x00010000L
#define MCI_DGV_PLAY_REVERSE 0x00020000L
/* flags for dwFlags parameter of MCI_PUT command message */
#define MCI_DGV_RECT 0x00010000L
#define MCI_DGV_PUT_SOURCE 0x00020000L
#define MCI_DGV_PUT_DESTINATION 0x00040000L
#define MCI_DGV_PUT_FRAME 0x00080000L
#define MCI_DGV_PUT_VIDEO 0x00100000L
#define MCI_DGV_PUT_WINDOW 0x00200000L
#define MCI_DGV_PUT_CLIENT 0x00400000L
/* flags for dwFlags parameter of MCI_QUALITY command message */
#define MCI_QUALITY_ITEM 0x00010000L
#define MCI_QUALITY_NAME 0x00020000L
#define MCI_QUALITY_ALG 0x00040000L
#define MCI_QUALITY_DIALOG 0x00080000L
#define MCI_QUALITY_HANDLE 0x00100000L
/* values for dwItem field of MCI_QUALITY_PARMS structure */
#define MCI_QUALITY_ITEM_AUDIO 0x00004000L
#define MCI_QUALITY_ITEM_STILL 0x00004001L
#define MCI_QUALITY_ITEM_VIDEO 0x00004002L
/* flags for dwFlags parameter of MCI_REALIZE command message */
#define MCI_DGV_REALIZE_NORM 0x00010000L
#define MCI_DGV_REALIZE_BKGD 0x00020000L
/* flags for dwFlags parameter of MCI_RECORD command message */
#define MCI_DGV_RECORD_HOLD 0x00020000L
#define MCI_DGV_RECORD_AUDIO_STREAM 0x00040000L
#define MCI_DGV_RECORD_VIDEO_STREAM 0x00080000L
/* flags for dwFlags parameters of MCI_RESERVE command message */
#define MCI_DGV_RESERVE_IN 0x00010000L
#define MCI_DGV_RESERVE_SIZE 0x00020000L
/* flags for dwFlags parameter of MCI_RESTORE command message */
#define MCI_DGV_RESTORE_FROM 0x00010000L
#define MCI_DGV_RESTORE_AT 0x00020000L
/* flags for dwFlags parameters of MCI_SAVE command message */
#define MCI_DGV_SAVE_ABORT 0x00020000L
#define MCI_DGV_SAVE_KEEPRESERVE 0x00040000L
/* flags for dwFlags parameters of MCI_SET command message */
#define MCI_DGV_SET_SEEK_EXACTLY 0x00010000L
#define MCI_DGV_SET_SPEED 0x00020000L
#define MCI_DGV_SET_STILL 0x00040000L
#define MCI_DGV_SET_FILEFORMAT 0x00080000L
/* flags for the dwFlags parameter of MCI_SETAUDIO command message */
#define MCI_DGV_SETAUDIO_OVER 0x00010000L
#define MCI_DGV_SETAUDIO_CLOCKTIME 0x00020000L
#define MCI_DGV_SETAUDIO_ALG 0x00040000L
#define MCI_DGV_SETAUDIO_QUALITY 0x00080000L
#define MCI_DGV_SETAUDIO_RECORD 0x00100000L
#define MCI_DGV_SETAUDIO_LEFT 0x00200000L
#define MCI_DGV_SETAUDIO_RIGHT 0x00400000L
#define MCI_DGV_SETAUDIO_ITEM 0x00800000L
#define MCI_DGV_SETAUDIO_VALUE 0x01000000L
#define MCI_DGV_SETAUDIO_INPUT 0x02000000L
#define MCI_DGV_SETAUDIO_OUTPUT 0x04000000L
/* values for the dwItem parameter of MCI_DGV_SETAUDIO_PARMS */
#define MCI_DGV_SETAUDIO_TREBLE 0x00004000L
#define MCI_DGV_SETAUDIO_BASS 0x00004001L
#define MCI_DGV_SETAUDIO_VOLUME 0x00004002L
#define MCI_DGV_SETAUDIO_STREAM 0x00004003L
#define MCI_DGV_SETAUDIO_SOURCE 0x00004004L
#define MCI_DGV_SETAUDIO_SAMPLESPERSEC 0x00004005L
#define MCI_DGV_SETAUDIO_AVGBYTESPERSEC 0x00004006L
#define MCI_DGV_SETAUDIO_BLOCKALIGN 0x00004007L
#define MCI_DGV_SETAUDIO_BITSPERSAMPLE 0x00004008L
/* values for the dwValue parameter of MCI_DGV_SETAUDIO_PARMS
used with MCI_DGV_SETAUDIO_SOURCE */
#define MCI_DGV_SETAUDIO_SOURCE_STEREO 0x00000000L
#define MCI_DGV_SETAUDIO_SOURCE_LEFT 0x00000001L
#define MCI_DGV_SETAUDIO_SOURCE_RIGHT 0x00000002L
#define MCI_DGV_SETAUDIO_SOURCE_AVERAGE 0x00004000L
/* flags for the dwFlags parameter of MCI_SETVIDEO command */
#define MCI_DGV_SETVIDEO_QUALITY 0x00010000L
#define MCI_DGV_SETVIDEO_ALG 0x00020000L
#define MCI_DGV_SETVIDEO_CLOCKTIME 0x00040000L
#define MCI_DGV_SETVIDEO_SRC_NUMBER 0x00080000L
#define MCI_DGV_SETVIDEO_ITEM 0x00100000L
#define MCI_DGV_SETVIDEO_OVER 0x00200000L
#define MCI_DGV_SETVIDEO_RECORD 0x00400000L
#define MCI_DGV_SETVIDEO_STILL 0x00800000L
#define MCI_DGV_SETVIDEO_VALUE 0x01000000L
#define MCI_DGV_SETVIDEO_INPUT 0x02000000L
#define MCI_DGV_SETVIDEO_OUTPUT 0x04000000L
/* values for the dwTo field of MCI_SETVIDEO_PARMS
used with MCI_DGV_SETVIDEO_SOURCE */
#define MCI_DGV_SETVIDEO_SRC_NTSC 0x00004000L
#define MCI_DGV_SETVIDEO_SRC_RGB 0x00004001L
#define MCI_DGV_SETVIDEO_SRC_SVIDEO 0x00004002L
#define MCI_DGV_SETVIDEO_SRC_PAL 0x00004003L
#define MCI_DGV_SETVIDEO_SRC_SECAM 0x00004004L
#define MCI_DGV_SETVIDEO_SRC_GENERIC 0x00004005L
/* values for the dwItem field of MCI_SETVIDEO_PARMS */
#define MCI_DGV_SETVIDEO_BRIGHTNESS 0x00004000L
#define MCI_DGV_SETVIDEO_COLOR 0x00004001L
#define MCI_DGV_SETVIDEO_CONTRAST 0x00004002L
#define MCI_DGV_SETVIDEO_TINT 0x00004003L
#define MCI_DGV_SETVIDEO_SHARPNESS 0x00004004L
#define MCI_DGV_SETVIDEO_GAMMA 0x00004005L
#define MCI_DGV_SETVIDEO_STREAM 0x00004006L
#define MCI_DGV_SETVIDEO_PALHANDLE 0x00004007L
#define MCI_DGV_SETVIDEO_FRAME_RATE 0x00004008L
#define MCI_DGV_SETVIDEO_SOURCE 0x00004009L
#define MCI_DGV_SETVIDEO_KEY_INDEX 0x0000400aL
#define MCI_DGV_SETVIDEO_KEY_COLOR 0x0000400bL
#define MCI_DGV_SETVIDEO_BITSPERPEL 0x0000400cL
/* flags for the dwFlags parameter of MCI_SIGNAL */
#define MCI_DGV_SIGNAL_AT 0x00010000L
#define MCI_DGV_SIGNAL_EVERY 0x00020000L
#define MCI_DGV_SIGNAL_USERVAL 0x00040000L
#define MCI_DGV_SIGNAL_CANCEL 0x00080000L
#define MCI_DGV_SIGNAL_POSITION 0x00100000L
/* flags for the dwFlags parameter of MCI_STATUS command */
#define MCI_DGV_STATUS_NOMINAL 0x00020000L
#define MCI_DGV_STATUS_REFERENCE 0x00040000L
#define MCI_DGV_STATUS_LEFT 0x00080000L
#define MCI_DGV_STATUS_RIGHT 0x00100000L
#define MCI_DGV_STATUS_DISKSPACE 0x00200000L
#define MCI_DGV_STATUS_INPUT 0x00400000L
#define MCI_DGV_STATUS_OUTPUT 0x00800000L
#define MCI_DGV_STATUS_RECORD 0x01000000L
/* values for dwItem field of MCI_STATUS_PARMS structure */
#define MCI_DGV_STATUS_AUDIO_INPUT 0x00004000L
#define MCI_DGV_STATUS_HWND 0x00004001L
#define MCI_DGV_STATUS_SPEED 0x00004003L
#define MCI_DGV_STATUS_HPAL 0x00004004L
#define MCI_DGV_STATUS_BRIGHTNESS 0x00004005L
#define MCI_DGV_STATUS_COLOR 0x00004006L
#define MCI_DGV_STATUS_CONTRAST 0x00004007L
#define MCI_DGV_STATUS_FILEFORMAT 0x00004008L
#define MCI_DGV_STATUS_AUDIO_SOURCE 0x00004009L
#define MCI_DGV_STATUS_GAMMA 0x0000400aL
#define MCI_DGV_STATUS_MONITOR 0x0000400bL
#define MCI_DGV_STATUS_MONITOR_METHOD 0x0000400cL
#define MCI_DGV_STATUS_FRAME_RATE 0x0000400eL
#define MCI_DGV_STATUS_BASS 0x0000400fL
#define MCI_DGV_STATUS_SIZE 0x00004010L
#define MCI_DGV_STATUS_SEEK_EXACTLY 0x00004011L
#define MCI_DGV_STATUS_SHARPNESS 0x00004012L
#define MCI_DGV_STATUS_SMPTE 0x00004013L
#define MCI_DGV_STATUS_AUDIO 0x00004014L
#define MCI_DGV_STATUS_TINT 0x00004015L
#define MCI_DGV_STATUS_TREBLE 0x00004016L
#define MCI_DGV_STATUS_UNSAVED 0x00004017L
#define MCI_DGV_STATUS_VIDEO 0x00004018L
#define MCI_DGV_STATUS_VOLUME 0x00004019L
#define MCI_DGV_STATUS_AUDIO_RECORD 0x0000401aL
#define MCI_DGV_STATUS_VIDEO_SOURCE 0x0000401bL
#define MCI_DGV_STATUS_VIDEO_RECORD 0x0000401cL
#define MCI_DGV_STATUS_STILL_FILEFORMAT 0x0000401dL
#define MCI_DGV_STATUS_VIDEO_SRC_NUM 0x0000401eL
#define MCI_DGV_STATUS_FILE_MODE 0x0000401fL
#define MCI_DGV_STATUS_FILE_COMPLETION 0x00004020L
#define MCI_DGV_STATUS_WINDOW_VISIBLE 0x00004021L
#define MCI_DGV_STATUS_WINDOW_MINIMIZED 0x00004022L
#define MCI_DGV_STATUS_WINDOW_MAXIMIZED 0x00004023L
#define MCI_DGV_STATUS_KEY_INDEX 0x00004024L
#define MCI_DGV_STATUS_KEY_COLOR 0x00004025L
#define MCI_DGV_STATUS_PAUSE_MODE 0x00004026L
#define MCI_DGV_STATUS_SAMPLESPERSEC 0x00004027L
#define MCI_DGV_STATUS_AVGBYTESPERSEC 0x00004028L
#define MCI_DGV_STATUS_BLOCKALIGN 0x00004029L
#define MCI_DGV_STATUS_BITSPERSAMPLE 0x0000402aL
#define MCI_DGV_STATUS_BITSPERPEL 0x0000402bL
#define MCI_DGV_STATUS_FORWARD 0x0000402cL
#define MCI_DGV_STATUS_AUDIO_STREAM 0x0000402dL
#define MCI_DGV_STATUS_VIDEO_STREAM 0x0000402eL
/* flags for dwFlags parameter of MCI_STEP command message */
#define MCI_DGV_STEP_REVERSE 0x00010000L
#define MCI_DGV_STEP_FRAMES 0x00020000L
/* flags for dwFlags parameter of MCI_STOP command message */
#define MCI_DGV_STOP_HOLD 0x00010000L
/* flags for dwFlags parameter of MCI_UPDATE command message */
#define MCI_DGV_UPDATE_HDC 0x00020000L
#define MCI_DGV_UPDATE_PAINT 0x00040000L
/* flags for dwFlags parameter of MCI_WHERE command message */
#define MCI_DGV_WHERE_SOURCE 0x00020000L
#define MCI_DGV_WHERE_DESTINATION 0x00040000L
#define MCI_DGV_WHERE_FRAME 0x00080000L
#define MCI_DGV_WHERE_VIDEO 0x00100000L
#define MCI_DGV_WHERE_WINDOW 0x00200000L
#define MCI_DGV_WHERE_MAX 0x00400000L
/* flags for dwFlags parameter of MCI_WINDOW command message */
#define MCI_DGV_WINDOW_HWND 0x00010000L
#define MCI_DGV_WINDOW_STATE 0x00040000L
#define MCI_DGV_WINDOW_TEXT 0x00080000L
/* flags for hWnd parameter of MCI_DGV_WINDOW_PARMS parameter block */
#define MCI_DGV_WINDOW_DEFAULT 0x00000000L
/* parameter block for MCI_WHERE, MCI_PUT, MCI_FREEZE, MCI_UNFREEZE cmds */
typedef struct {
DWORD dwCallback;
RECT rc;
} MCI_DGV_RECT_PARMS, *LPMCI_DGV_RECT_PARMS;
/* parameter block for MCI_CAPTURE command message */
typedef struct {
DWORD dwCallback;
LPSTR lpstrFileName;
RECT rc;
} MCI_DGV_CAPTURE_PARMSA, *LPMCI_DGV_CAPTURE_PARMSA;
typedef struct {
DWORD dwCallback;
LPWSTR lpstrFileName;
RECT rc;
} MCI_DGV_CAPTURE_PARMSW, *LPMCI_DGV_CAPTURE_PARMSW;
//DECL_WINELIB_TYPE_AW(MCI_DGV_CAPTURE_PARMS)
//DECL_WINELIB_TYPE_AW(LPMCI_DGV_CAPTURE_PARMS)
/* parameter block for MCI_CLOSE command message */
typedef MCI_GENERIC_PARMS MCI_CLOSE_PARMS, *LPMCI_CLOSE_PARMS;
/* parameter block for MCI_COPY command message */
typedef struct {
DWORD dwCallback;
DWORD dwFrom;
DWORD dwTo;
RECT rc;
DWORD dwAudioStream;
DWORD dwVideoStream;
} MCI_DGV_COPY_PARMS, *LPMCI_DGV_COPY_PARMS;
/* parameter block for MCI_CUE command message */
typedef struct {
DWORD dwCallback;
DWORD dwTo;
} MCI_DGV_CUE_PARMS, *LPMCI_DGV_CUE_PARMS;
/* parameter block for MCI_CUT command message */
typedef struct {
DWORD dwCallback;
DWORD dwFrom;
DWORD dwTo;
RECT rc;
DWORD dwAudioStream;
DWORD dwVideoStream;
} MCI_DGV_CUT_PARMS, * LPMCI_DGV_CUT_PARMS;
/* parameter block for MCI_DELETE command message */
typedef struct {
DWORD dwCallback;
DWORD dwFrom;
DWORD dwTo;
RECT rc;
DWORD dwAudioStream;
DWORD dwVideoStream;
} MCI_DGV_DELETE_PARMS, * LPMCI_DGV_DELETE_PARMS;
/* parameter block for MCI_FREEZE command message */
typedef MCI_DGV_RECT_PARMS MCI_DGV_FREEZE_PARMS, * LPMCI_DGV_FREEZE_PARMS;
/* parameter block for MCI_INFO command message */
typedef struct {
DWORD dwCallback;
LPSTR lpstrReturn;
DWORD dwRetSize;
DWORD dwItem;
} MCI_DGV_INFO_PARMSA, * LPMCI_DGV_INFO_PARMSA;
typedef struct {
DWORD dwCallback;
LPWSTR lpstrReturn;
DWORD dwRetSize;
DWORD dwItem;
} MCI_DGV_INFO_PARMSW, *LPMCI_DGV_INFO_PARMSW;
//DECL_WINELIB_TYPE_AW(MCI_DGV_INFO_PARMS)
//DECL_WINELIB_TYPE_AW(LPMCI_DGV_INFO_PARMS)
/* parameter block for MCI_LIST command message */
typedef struct {
DWORD dwCallback;
LPSTR lpstrReturn;
DWORD dwLength;
DWORD dwNumber;
DWORD dwItem;
LPSTR lpstrAlgorithm;
} MCI_DGV_LIST_PARMSA, *LPMCI_DGV_LIST_PARMSA;
typedef struct {
DWORD dwCallback;
LPWSTR lpstrReturn;
DWORD dwLength;
DWORD dwNumber;
DWORD dwItem;
LPWSTR lpstrAlgorithm;
} MCI_DGV_LIST_PARMSW, *LPMCI_DGV_LIST_PARMSW;
//DECL_WINELIB_TYPE_AW(MCI_DGV_LIST_PARMS)
//DECL_WINELIB_TYPE_AW(LPMCI_DGV_LIST_PARMS)
/* parameter block for MCI_LOAD command message */
typedef MCI_LOAD_PARMSA MCI_DGV_LOAD_PARMSA, * LPMCI_DGV_LOAD_PARMSA;
typedef MCI_LOAD_PARMSW MCI_DGV_LOAD_PARMSW, * LPMCI_DGV_LOAD_PARMSW;
//DECL_WINELIB_TYPE_AW(MCI_DGV_LOAD_PARMS)
//DECL_WINELIB_TYPE_AW(LPMCI_DGV_LOAD_PARMS)
/* parameter block for MCI_MONITOR command message */
typedef struct {
DWORD dwCallback;
DWORD dwSource;
DWORD dwMethod;
} MCI_DGV_MONITOR_PARMS, * LPMCI_DGV_MONITOR_PARMS;
/* parameter block for MCI_OPEN command message */
typedef struct {
DWORD dwCallback;
UINT wDeviceID;
LPSTR lpstrDeviceType;
LPSTR lpstrElementName;
LPSTR lpstrAlias;
DWORD dwStyle;
HWND hWndParent;
} MCI_DGV_OPEN_PARMSA, *LPMCI_DGV_OPEN_PARMSA;
typedef struct {
DWORD dwCallback;
UINT wDeviceID;
LPWSTR lpstrDeviceType;
LPWSTR lpstrElementName;
LPWSTR lpstrAlias;
DWORD dwStyle;
HWND hWndParent;
} MCI_DGV_OPEN_PARMSW, *LPMCI_DGV_OPEN_PARMSW;
//DECL_WINELIB_TYPE_AW(MCI_DGV_OPEN_PARMS)
//DECL_WINELIB_TYPE_AW(LPMCI_DGV_OPEN_PARMS)
/* parameter block for MCI_PAUSE command message */
typedef MCI_GENERIC_PARMS MCI_DGV_PAUSE_PARMS, * LPMCI_DGV_PAUSE_PARMS;
/* parameter block for MCI_PASTE command message */
typedef struct {
DWORD dwCallback;
DWORD dwTo;
RECT rc;
DWORD dwAudioStream;
DWORD dwVideoStream;
} MCI_DGV_PASTE_PARMS, * LPMCI_DGV_PASTE_PARMS;
/* parameter block for MCI_PLAY command message */
typedef MCI_PLAY_PARMS MCI_DGV_PLAY_PARMS, * LPMCI_DGV_PLAY_PARMS;
/* parameter block for MCI_PUT command message */
typedef MCI_DGV_RECT_PARMS MCI_DGV_PUT_PARMS, * LPMCI_DGV_PUT_PARMS;
/* parameter block for MCI_QUALITY command message */
typedef struct {
DWORD dwCallback;
DWORD dwItem;
LPSTR lpstrName;
DWORD lpstrAlgorithm;
DWORD dwHandle;
} MCI_DGV_QUALITY_PARMSA, *LPMCI_DGV_QUALITY_PARMSA;
typedef struct {
DWORD dwCallback;
DWORD dwItem;
LPWSTR lpstrName;
DWORD lpstrAlgorithm;
DWORD dwHandle;
} MCI_DGV_QUALITY_PARMSW, *LPMCI_DGV_QUALITY_PARMSW;
//DECL_WINELIB_TYPE_AW(MCI_DGV_QUALITY_PARMS)
//DECL_WINELIB_TYPE_AW(LPMCI_DGV_QUALITY_PARMS)
/* parameter block for MCI_REALIZE command message */
typedef MCI_GENERIC_PARMS MCI_REALIZE_PARMS, * LPMCI_REALIZE_PARMS;
/* parameter block for MCI_RECORD command message */
typedef struct {
DWORD dwCallback;
DWORD dwFrom;
DWORD dwTo;
RECT rc;
DWORD dwAudioStream;
DWORD dwVideoStream;
} MCI_DGV_RECORD_PARMS, * LPMCI_DGV_RECORD_PARMS;
/* parameter block for MCI_RESERVE command message */
typedef struct {
DWORD dwCallback;
LPSTR lpstrPath;
DWORD dwSize;
} MCI_DGV_RESERVE_PARMSA, *LPMCI_DGV_RESERVE_PARMSA;
typedef struct {
DWORD dwCallback;
LPWSTR lpstrPath;
DWORD dwSize;
} MCI_DGV_RESERVE_PARMSW, *LPMCI_DGV_RESERVE_PARMSW;
//DECL_WINELIB_TYPE_AW(MCI_DGV_RESERVE_PARMS)
//DECL_WINELIB_TYPE_AW(LPMCI_DGV_RESERVE_PARMS)
/* parameter block for MCI_RESTORE command message */
typedef struct {
DWORD dwCallback;
LPSTR lpstrFileName;
RECT rc;
} MCI_DGV_RESTORE_PARMSA, *LPMCI_DGV_RESTORE_PARMSA;
typedef struct {
DWORD dwCallback;
LPWSTR lpstrFileName;
RECT rc;
} MCI_DGV_RESTORE_PARMSW, *LPMCI_DGV_RESTORE_PARMSW;
//DECL_WINELIB_TYPE_AW(MCI_DGV_RESTORE_PARMS)
//DECL_WINELIB_TYPE_AW(LPMCI_DGV_RESTORE_PARMS)
/* parameter block for MCI_RESUME command message */
typedef MCI_GENERIC_PARMS MCI_DGV_RESUME_PARMS, * LPMCI_DGV_RESUME_PARMS;
/* parameter block for MCI_SAVE command message */
typedef struct {
DWORD dwCallback;
LPSTR lpstrFileName;
RECT rc;
} MCI_DGV_SAVE_PARMSA, *LPMCI_DGV_SAVE_PARMSA;
typedef struct {
DWORD dwCallback;
LPWSTR lpstrFileName;
RECT rc;
} MCI_DGV_SAVE_PARMSW, *LPMCI_DGV_SAVE_PARMSW;
//DECL_WINELIB_TYPE_AW(MCI_DGV_SAVE_PARMS)
//DECL_WINELIB_TYPE_AW(LPMCI_DGV_SAVE_PARMS)
/* parameter block for MCI_SET command message */
typedef struct {
DWORD dwCallback;
DWORD dwTimeFormat;
DWORD dwAudio;
DWORD dwFileFormat;
DWORD dwSpeed;
} MCI_DGV_SET_PARMS, *LPMCI_DGV_SET_PARMS;
/* parameter block for MCI_SETAUDIO command message */
typedef struct {
DWORD dwCallback;
DWORD dwItem;
DWORD dwValue;
DWORD dwOver;
LPSTR lpstrAlgorithm;
LPSTR lpstrQuality;
} MCI_DGV_SETAUDIO_PARMSA, *LPMCI_DGV_SETAUDIO_PARMSA;
typedef struct {
DWORD dwCallback;
DWORD dwItem;
DWORD dwValue;
DWORD dwOver;
LPWSTR lpstrAlgorithm;
LPWSTR lpstrQuality;
} MCI_DGV_SETAUDIO_PARMSW, *LPMCI_DGV_SETAUDIO_PARMSW;
//DECL_WINELIB_TYPE_AW(MCI_DGV_SETAUDIO_PARMS)
//DECL_WINELIB_TYPE_AW(LPMCI_DGV_SETAUDIO_PARMS)
/* parameter block for MCI_SIGNAL command message */
typedef struct {
DWORD dwCallback;
DWORD dwPosition;
DWORD dwPeriod;
DWORD dwUserParm;
} MCI_DGV_SIGNAL_PARMS, * LPMCI_DGV_SIGNAL_PARMS;
/* parameter block for MCI_SETVIDEO command message */
typedef struct {
DWORD dwCallback;
DWORD dwItem;
DWORD dwValue;
DWORD dwOver;
LPSTR lpstrAlgorithm;
LPSTR lpstrQuality;
DWORD dwSourceNumber;
} MCI_DGV_SETVIDEO_PARMSA, *LPMCI_DGV_SETVIDEO_PARMSA;
typedef struct {
DWORD dwCallback;
DWORD dwItem;
DWORD dwValue;
DWORD dwOver;
LPWSTR lpstrAlgorithm;
LPWSTR lpstrQuality;
DWORD dwSourceNumber;
} MCI_DGV_SETVIDEO_PARMSW, *LPMCI_DGV_SETVIDEO_PARMSW;
//DECL_WINELIB_TYPE_AW(MCI_DGV_SETVIDEO_PARMS)
//DECL_WINELIB_TYPE_AW(LPMCI_DGV_SETVIDEO_PARMS)
/* parameter block for MCI_STATUS command message */
typedef struct {
DWORD dwCallback;
DWORD dwReturn;
DWORD dwItem;
DWORD dwTrack;
LPSTR lpstrDrive;
DWORD dwReference;
} MCI_DGV_STATUS_PARMSA, *LPMCI_DGV_STATUS_PARMSA;
typedef struct {
DWORD dwCallback;
DWORD dwReturn;
DWORD dwItem;
DWORD dwTrack;
LPWSTR lpstrDrive;
DWORD dwReference;
} MCI_DGV_STATUS_PARMSW, *LPMCI_DGV_STATUS_PARMSW;
//DECL_WINELIB_TYPE_AW(MCI_DGV_STATUS_PARMS)
//DECL_WINELIB_TYPE_AW(LPMCI_DGV_STATUS_PARMS)
/* parameter block for MCI_STEP command message */
typedef struct {
DWORD dwCallback;
DWORD dwFrames;
} MCI_DGV_STEP_PARMS, *LPMCI_DGV_STEP_PARMS;
/* parameter block for MCI_STOP command message */
typedef MCI_GENERIC_PARMS MCI_DGV_STOP_PARMS, * LPMCI_DGV_STOP_PARMS;
/* parameter block for MCI_UNFREEZE command message */
typedef MCI_DGV_RECT_PARMS MCI_DGV_UNFREEZE_PARMS, * LPMCI_DGV_UNFREEZE_PARMS;
/* parameter block for MCI_UPDATE command message */
typedef struct {
DWORD dwCallback;
RECT rc;
HDC hDC;
} MCI_DGV_UPDATE_PARMS, * LPMCI_DGV_UPDATE_PARMS;
/* parameter block for MCI_WHERE command message */
typedef MCI_DGV_RECT_PARMS MCI_DGV_WHERE_PARMS, * LPMCI_DGV_WHERE_PARMS;
/* parameter block for MCI_WINDOW command message */
typedef struct {
DWORD dwCallback;
HWND hWnd;
UINT nCmdShow;
LPSTR lpstrText;
} MCI_DGV_WINDOW_PARMSA, *LPMCI_DGV_WINDOW_PARMSA;
typedef struct {
DWORD dwCallback;
HWND hWnd;
UINT nCmdShow;
LPWSTR lpstrText;
} MCI_DGV_WINDOW_PARMSW, *LPMCI_DGV_WINDOW_PARMSW;
#ifdef __cplusplus
}
#endif
#endif /* __WINE_DIGITALV_H */

File diff suppressed because it is too large Load Diff

View File

@@ -1,167 +0,0 @@
/*
* Copyright (C) 2003 Robert Reif
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_DSCONF_H
#define __WINE_DSCONF_H
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
/*****************************************************************************
* Predeclare the interfaces
*/
DEFINE_GUID(CLSID_DirectSoundPrivate, 0x11ab3ec0,0x25ec,0x11d1,0xa4,0xd8,0x00,0xc0,0x4f,0xc2,0x8a,0xca);
DEFINE_GUID(DSPROPSETID_DirectSoundDevice, 0x84624f82,0x25ec,0x11d1,0xa4,0xd8,0x00,0xc0,0x4f,0xc2,0x8a,0xca);
typedef enum
{
DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A = 1,
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1 = 2,
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1 = 3,
DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W = 4,
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A = 5,
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W = 6,
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A = 7,
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W = 8,
} DSPROPERTY_DIRECTSOUNDDEVICE;
#ifdef UNICODE
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W
#else
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A
#endif
typedef enum
{
DIRECTSOUNDDEVICE_TYPE_EMULATED,
DIRECTSOUNDDEVICE_TYPE_VXD,
DIRECTSOUNDDEVICE_TYPE_WDM
} DIRECTSOUNDDEVICE_TYPE;
typedef enum
{
DIRECTSOUNDDEVICE_DATAFLOW_RENDER,
DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
} DIRECTSOUNDDEVICE_DATAFLOW;
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
{
LPSTR DeviceName;
DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
GUID DeviceId;
} DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA;
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
{
LPWSTR DeviceName;
DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
GUID DeviceId;
} DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA;
#ifdef UNICODE
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
#else
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
#endif
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
{
GUID DeviceId;
CHAR DescriptionA[0x100];
WCHAR DescriptionW[0x100];
CHAR ModuleA[MAX_PATH];
WCHAR ModuleW[MAX_PATH];
DIRECTSOUNDDEVICE_TYPE Type;
DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
ULONG WaveDeviceId;
ULONG Devnode;
} DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA;
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
{
DIRECTSOUNDDEVICE_TYPE Type;
DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
GUID DeviceId;
LPSTR Description;
LPSTR Module;
LPSTR Interface;
ULONG WaveDeviceId;
} DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA;
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
{
DIRECTSOUNDDEVICE_TYPE Type;
DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
GUID DeviceId;
LPWSTR Description;
LPWSTR Module;
LPWSTR Interface;
ULONG WaveDeviceId;
} DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA;
#ifdef UNICODE
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
#else
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
#endif
typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, LPVOID);
typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, LPVOID);
typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, LPVOID);
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
{
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1 Callback;
LPVOID Context;
} DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA;
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
{
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA Callback;
LPVOID Context;
} DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA;
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
{
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW Callback;
LPVOID Context;
} DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA;
#ifdef UNICODE
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
#else
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
#endif /* __WINE_DSCONF_H */

Some files were not shown because too many files have changed in this diff Show More