"B-tree structure is invalid"错误如何解决????????????

hughhy 2003-04-07 10:38:08
我通过热点打开某个数据库的帧结构时提示是"B-tree structure is invalid",可是我在工作台上打开就是好的没有错误提示,望高手指点,打开帧结构的代码如下:
Sub Click(Source As Button)
Dim ws As New notesuiworkspace
dbname=Evaluate("@dbname")
Call ws.composedocument(dbname(0),"merit_gwgl.nsf","open")
Call ws.openframeset("swglmain")
End Sub
...全文
308 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hughhy 2003-04-07
  • 打赏
  • 举报
回复
大侠,救命啊!!!!!!!!!!!!!!!!
flyeyer 2003-04-07
  • 打赏
  • 举报
回复
你是在小型机下面吗?我也遇到过这样的的问题,重新启动一下服务器吧。然后再连接试试。
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= ~ Import REConstructor v1.7c FINAL by MackT/uCF2000 in 2001-2008 ~ = = ~ - *for Windows 9x, ME, NT, 2K, XP, Vista32/64* - ~ =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= If you would like to help continue developing and bug fixing ImpREC and you have ideas, suggestions or bug fixes please visit Tuts 4 You forum in the following topic to share your ideas: http://www.tuts4you.com/forum/index.php?showtopic=6410 Thank you! v1.7c FINAL (PUBLIC VERSION) ---------------------------- - Misc - Fixed bug introduced in 1.7b when DLL's have discardable sections (jstorme) v1.7b FINAL (PUBLIC VERSION) ---------------------------- - Misc - Fixed invalid API bug in user32.dll on Windows 98 (jstorme) - Modified code to improve support for discardable/unreadable sections (jstorme) - Fixed ImageBase problem with DLL's when "Use PE Header from Disk" is checked (jstorme) - Added an "ImpREC Classic" looking version v1.7a FINAL (PUBLIC VERSION) ---------------------------- - Misc - Fixed Win2K crash, AllocConsole was replaced with ActivateActCtx (jstorme) v1.7 FINAL (PUBLIC VERSION) --------------------------- - Misc - Fixed RestoreLastError API set to SetLastError for WinXP/Vista compatibility (MaRKuS_TH-DJM) - user32.dll is always read from the system, prevents a crash from corrupted PE of user32.dll (MaRKuS_TH-DJM) - Latest version of psapi.dll (6.0.6000.16386) included - Fixed Vista64 crash bug (jstorme) - GUI modified and improved (based upon Fly's modification) - Updated/corrected plugins and deleted dups v1.6 FINAL (PUBLIC VERSION) --------------------------- - Misc - Finally fixed the bug in the check for adding section (Thanks to Christoph) v1.6 beta *PRIVATE* ------------------- - Tracers - Tracer Level3 - Added EIP Log - Misc - Finally, support relative calls rebuild (not with the loader yet) - Added a disassembler window for redirected code - Added colour to all known imports (Thanks to Jeff Schering) - Added a hex viewer (built with the disassembler) - Fixed blink in RichEdit control - Checkbox "OpCodes" is enable/disable depending on "Hex View" (Thanks to Muffin) - Removed the useless '/' when there's no name (ordinal only) - Disassembler is allowed on valid slot too now - Fixed HexView to show all printable chars - Added disasm comment for where - Added Right Click function on disasm code to ease the life (TRY IT!) - Added 'Get Imports Filter' in 'Advanced Commands' (Greetings to Titi) - Tooltips added in Options - Fixed bug in "Fix dump" renaming (with the char '_' before the ext) - Added Original First Thunks rebuilder (in Options) - Fixed bug on disabled editboxes (you could edit them.... erm) - Added checks in PEFile.cpp for invalid executables (Thanks to Snacker!) - Fixed some possible problems on sscanf and ordinals ("%X" with WORD type) v1.5.1 beta2 *PRIVATE* ---------------------- - Tracers - Error codes updated for the Tracers Level2 and 3 - Misc - Fixed bug from the 1.5.1 beta1 in the Import Editor (a string bug) - Fixed bug on validation check for the 'Congratulations' text (Thanks to LordByte) - Fixed bug in the (Thanks to LordByte) - New imports scheme added (NOT COMPLETE SO DO NOT USE IT) - Support relative calls rebuild => visible with a (R) tag in imports - Fixed a bug with "Create New IAT". It can now manage a thunk which has several apis of different module (Thanks to EOD) - Added 'Load PE Header'. It could be useful to force ImportREC to use your own PE Header (Thanks to EOD) v1.5.1 beta1 *PRIVATE* ---------------------- - Tracers - Tracer Level3 - New approach (Thanks to EliCZ) - Support SEH chain - No more FS instructions emulation - Dumb Mode (YES, it could be useful for redirected scheme which copies the start code of an API and jump later. It has the behaviour of the Tracer Level1 but it really executes the code) - Misc - Added 'Get API Calls' dialogbox to set addresses filter and heuristics - Added 'Mode Cloak' (for anti-imprec tricks) v1.5 *PRIVATE* -------------- - Loader - Clean up code (the injected loader) - Added an IRC log to explain how to use it (Greetings to LaBBa) - Tracers - Error codes updated for the Tracers Level2 and 3 - Plugin Tracer - Redesigned interface for good reasons (See ) - All examples have been updated for the new interface - Support 'Exact Call' feature - GUI switched into a Submenu (ala WorkerBee#2 by ZigD) - Misc - 'AutoTrace' will not use the Tracer Level2 anymore (play CAREFULLY with the TL2 because it's a global hook) - Windows 95 Support (Thanks to EliCZ, Unknown One and ZigD for testing) - Tested under NT4 (Thanks to Unknown One) - The Import Editor (double click on a function) will look for the nearest valid function in the thunk and will get its module name. => Much faster when editing each function by hand. - Improved 'Exact Call' (It will not retrace all exact calls from a slot if they have already been resolved) - New Module Loader (It should be faster) - Support function names which have more than 256 characters. ImportREC left when clicking on (Thanks to ToyBomB and shandi for reports) - added (Right click on the Log listbox) - Fixed Import Editor to look for the name first before looking for the ordinal - Added 'Skip Main Slot' in Options. It will allow you to trace *ONLY* on all Exact Calls. The main slot will be skipped by the tracer. - will stop any tracers (except 'Plugin' if you did not manage it) even when you have selected several slots to trace - ApiHooks Updated (Greetings to EliCZ) - Added an Exact Calls window (right click on the tree) - Added Remove buttons - Sort datas by column when clicking on it (Yop G-RoM! ;p) - will set the IAT RVA and Size in the PE Directories to 0 (Thanks to Crusader) - *ALL* docs have been updated v1.4.2+ ------- - Misc - Fixed wrong image base/size usage when disabling "Use PE Header From Disk" AGAIN! v1.4.2 ------ - Loader - Finally fixed the bug when rebuilding imports of ripped layers (sometimes, it produced an invalid PE file) - Tracers - Tracer Level3 - A little bit faster - Fixed wrong opcodes (Damn copy&paste! Erm)... (Thanks to necrotoad for his target so i could find that bug) => Should work for latest SD2 => The target should not quit anymore under XP - Misc - Added a filter to "Get API Calls" to get valid addresses only - Fixed wrong image base usage when disabling "Use PE Header From Disk" for reloc'ed target for example (Thanks to Thigo) v1.4.1a ------- - Tracers - Tracer Level1 - Fixed a little bug added from the previous version (It could trace into k32.dll... D'oh myself!) v1.4.1 ------ - Loader - Can handle Kernel32 Ordinal - Tracers - Tracer Level1 - It will not be fooled anymore by latest ASProtect Emulated API - Misc - Erratum: "Fix Damaged PDB" is for Win9x/ME only! - "Create New IAT" feature - "Select Code Section(s)" to precise where is the code in the target - Fixed bug when loading imports file which contains Exact Call with ordinal - Debug stub scheme added (for getting API from an executable which was compiled in debug mode) - Full Dump (can dump EXE & DLL and it should work for antidumping tricks) v1.4 ---- - Tracers - Tracer Level1 - Fixed a small bug on the stack emulator (D'oh! Tamus! :p) - Tracer Level3 - Recoded from scratch (Thanks a lot to G-RoM for his precious help and patience) - Plugin - Asprotect v1.2x Emulated API Plugin (Thanks to ZigD) - Misc - Use PE Header informations from dump or disk (in Options) - Debug privilege is now managed and damaged PDB can be repaired (Thanks to EliCZ) - Renormalized exports (for Win9x/ME only) - Fixed a GPF when using the wheel mouse (or arrows keys) just after selecting a process - "Stick" current imports with new added ones correctly (when you do GetImports with several contigous regions) - "Get API Calls" feature - "Exact Call" for Safecast/Safedisc 2 redirections - Load & Save "Exact Call" Imports - Updated to APIHooks 5.6 v1.3 ---- - Import Editor - An editbox for entering the name of the API (MSDN-like when using Index) - Loader - Layers Auto Finder (with recursion) - Layers editor (add/modify/remove) - Improved relocations - Multiple modules can cohabit in a same thunk - Direct calls/jumps to any imports in all layers, are rebuilt (for portability) - Tracers - Tracer Level1 - A little stack emulator was implemented (very basic though) - Plugin Tracer - TRACERS LEVEL 2 AND 3 ARE STILL NOT COMPLETE AND THERE JUST FOR EXPERIMENTATION. THEY ARE LAME so use them if YOU ARE BORED AND NOT AFRAID TO CRASH your computer, YOU ARE WARNED. - Misc - Improved IAT scanner + Bug fixed on the invalid IAT size (negative) found by it - DLL's names are now based on their filename and not on their header structure - New ApiHooks and as usual it still is impressive how it gains speed each time! (Thanks to EliCZ again) - Check on overlapped IAT by new imports (when not adding a new section) v1.2 *Final* ------------ - Fixed a little bug when there is only one invalid pointer and loader is activated, the dialogbox for entering interval of ripped data/code didn't appear. - Fixed a bug in showing new import size when it is empty (0x100 instead of 0) - Added error managing in the loader if it can't find a dll or an api. (So its size has grown up a little bit) - Fixed a bug on wrong section table location when loading PE files (YODAAAAA!!!!!! ;-)) (and for all my PE related code too...) - ApiHooks updated again!! Thanks to EliCZ, it's really faster than before... Wow! ;-) - Autotrace (do not expect a miracle from its part). Moreover prepare to crash if you manage to use it because it uses the tracer level2... you are warned!! :-) - Improved Ripper analyzer v1.2 RC1 PRE Release -------------------- - Added a loader against faked APIs in thunks. - Fixed a little bug when loading a tree for the last parameter if it has only one character - Get the invalid pointers in the running process when reloading a tree which contains some - Added a flag for loader in tree text files (still is compatible with v1.2b3 version though) - ApiHooks updated - You can rebuild DLL now by clicking on "Pick DLL" button - I decided to retire my Tracer L3 for the moment because it's too buggy v1.2b3 ------ - Useless but funny, changed icon... thanks to Avl!s :-) - Function is correctly selected when double clicking on it for Editing. - Oops! Where was the and file on previous versions???! :-) - Don't use anymore GetCurrentDirectory for looking for - A little note when launching the first time - TimeOut option for Tracer Level2 and 3 - Fix EP to OEP option when fixing a dump - Options are saved in an INI file - Maintaining "Shift" key for Tracer Level1 shows the Module name in the MessageBox title instead of "huhu" :-) and moreover it shows VA correctly now. - Correct ImageSize in PE Header when adding a new section (Windows 98SE and 2k do it automatically but it is better to do it ourselves though) - Added the old good Dennison's uCF logo (i mean the logo, not you Denni! ;-P) in 'About' dialog box - Replace all "between" by "by the way" in all txt files... :-x - Stastistics are shown regularly (thx to Pal) - 'Show Suspect' button (thx to Pal) - Fixed a GPF when closing the running target and continuing to rebuild it (thx to Pal) - Load & Save Tree in text format. (You can still load old binary ".rec" files) (Pal, you can edit them manually now! :-)) - Fixed a bug in my module loader when the module image base is different to its pe header one (ie when it has been moved by windows). (BIG THX TO PAL! ;-)) - Module loading log is more precise now - First prebeta version of tracer l3 (still is VERY BUGGY! You are WARNED!) v1.2b2 ------ - Argh!!!! Export ordinals were fixed now! Sorry, i have forgotten to add the Base for all ordinals!! Marf! That's why my "Import all by ordinal" option didn't work under NT/2000... It's now reactivated under those systems (even if your exe will not be portable to another system) - Fixed a GPF (oops! :-P) when invalidate some particular APIs - Load and Save Tree Models - Enable and Disable controls (buttons and editboxes) when necessary - Tracer level2 is slower (not under Win2000! ;-)) but less buggy than previous version - "Cut thunk" action in right click popup menu. Thanks to my best beta tester Thigo (normal, he's alone ;-P) for reporting me tELock tricks. (Greetz to tE! by the way) ;-) (Read Tips.txt for further details) - Current directory will be the path of your selected process for browsing files - Statistics after clicking on "Get Import" were fixed - Readme.txt was updated. :-) v1.2b1 ------ - Fixed a lame bug on my original IAT finder (a pb on computing its size... thx Chris ;-)) - Multiple Tree Selection - Right Click on Tree (invalidate functions, delete thunk...) - Tracer Level1 (Disasm) was improved (with magic 'Shift" key... look at Tips.txt) - *New* Tracer Level2 (Hook) uses ApiHooks. And big thanks to Yoda for advising me it ;-) - Import module name is auto updated depending on all its functions v1.1 ---- - I have forgotten to considerate the max recursion of the tracer in the options! Now it's fixed. Shame on me, yeah! ;-) - Give up the method to the start address (image base) bounds of the target too (not reliable). Unreal Tournament has shown me that ;-)... BY THE WAY, WHAT A GAME! :-D - Improved tracer again - Improved Original-IAT Auto Finder - GUI : Tree view for import - Default parameter is 'Add new section' DLL v1.0 -------- - DLL was released for GUW32 (by Christoph/UG2000) with its open source code ;-) v1.0 ---- - Give up the method with the limit address of the target (not reliable). Need to reput it in an option - "Auto-IAT Search" button added - "Ultra Arrange" button added - Modify entry point to given OEP into the dump file when fixing it v0.7 ---- - Reorganized code to export it in a dll v0.6a ----- - Show first (or second) invalid element in the 'Imported Function Found' list if it detects a problem in a thunk array - You can change the module of any import functions with the Import Editor - Disable "Import all by ordinal" under NT/2000... It does definitively not work :-( v0.6 ---- - No more leaked memory... I swear! :-) - Support NT/2K by fixing all forwarding export functions (thanks to +The Owl+ AGAIN! ;-)) (Tested on an ASProtected game with total success under win2000 (i mean portable on another system)) - Icedump v6.0.2.2 was released!!! ImportREC will be able to rebuild a 100% portable executable (or very close) with it. (ONLY UNDER WIN9x BY THE WAY) Icedump tries to solve 4 main windows dll which have export functions which point to the same address... => Check it out NOW!!! -> http://icedump.tsx.org v0.5 ---- - Added 2 buttons "Previous ????" and "Next ????" for looking at unresolved pointers quickly - Improved tracer engine... test it and you will see ;-) - Some errors messages are more comprehensible (for Lutin Noir especially ;-D) - GUI has changed a little bit - 'About' diabogbox finally added v0.4 ---- - A memory bug fixed when freeing export infos - "Add new section" in the dump file for the new import datas v0.3a ----- - Bug fixed on hint value which was always set to 0... erm :-) - Import ASCII name address is now aligned on WORD and not DWORD (more smaller size again) - Little filter on all Editboxes - Getting the size of the memory used by the process for memory bounds testing and the tracer v0.3 ---- - First public release - Tested on win2000 and it can not rebuild correctly because of module which contains some API from kernel32.dll of win95/98! :-( (like RltDeleteCriticalSection, ...). If anyone has a solution, please mail me!!!!! - Added a real tracer engine (from Borg disasm of Cronos) but still need to improve its use - Added a function editor (for fixing Asprotect 'GetProcAddress'-like redirected function by yourself for example) ** Double-click on the function in the "Import Functions Found" list and choose the good API. - Bug fixed : you can fix a dump which does not have RVA=RAW addresses and sizes - Import all by ordinal for smaller import datas v0.2 ---- - Not yet tested on NT/2000 - Fixed a lot of bugs - Added a poor tracer for redirected functions Feb/01/2001 ----------- v0.1 - First release
Twitter Digg Facebook Del.icio.us Reddit Stumbleupon Newsvine Technorati Mr. Wong Yahoo! Google Windows Live Send as Email Add to your CodeProject bookmarks Discuss this article 85 Print Article Database » Database » Other databasesLicence CPOL First Posted 19 Jan 2012 Views 24,219 Downloads 992 Bookmarked 74 times RaptorDB - The Key Value Store V2 By Mehdi Gholam | 8 Mar 2012 | Unedited contribution C#.NETDBABeginnerIntermediateAdvanceddatabase Even faster Key/Value store nosql embedded database engine utilizing the new MGIndex data structure with MurMur2 Hashing and WAH Bitmap indexes for duplicates. See Also More like this More by this author Article Browse Code Stats Revisions (8) Alternatives 4.95 (56 votes) 1 2 3 4 5 4.95/5 - 56 votes μ 4.95, σa 1.05 [?] Is your email address OK? You are signed up for our newsletters but your email address is either unconfirmed, or has not been reconfirmed in a long time. Please click here to have a confirmation email sent so we can confirm your email address and start sending you newsletters again. Alternatively, you can update your subscriptions. Add your own alternative version Introduction What is RaptorDB? Features Why another data structure? The problem with a b+tree Requirements of a good index structure The MGIndex Page Splits Interesting side effects of MGIndex The road not taken / the road taken and doubled back! Performance Tests Comparing B+tree and MGIndex Really big data sets! Index parameter tuning Performance Tests - v2.3 Using the Code Differences to v1 Using RaptorDBString and RaptorDBGuid Global parameters RaptorDB interface Non-clean shutdowns Removing Keys Unit tests File Formats File Format : *.mgdat File Format : *.mgbmp File Format : *.mgidx File Format : *.mgbmr , *.mgrec History Download RaptorDB_v2.0.zip - 38.7 KB Download RaptorDB_v2.1.zip - 39 KB Download RaptorDB_v2.2.zip - 39 KB Download RaptorDB_v2.3.zip - 39.6 KB D
笔记本的风扇控制 ---------------------------------------- 09 November 2006. Summary of changes for version 20061109: 1) ACPI CA Core Subsystem: Optimized the Load ASL operator in the case where the source operand is an operation region. Simply map the operation region memory, instead of performing a bytewise read. (Region must be of type SystemMemory, see below.) Fixed the Load ASL operator for the case where the source operand is a region field. A buffer object is also allowed as the source operand. BZ 480 Fixed a problem where the Load ASL operator allowed the source operand to be an operation region of any type. It is now restricted to regions of type SystemMemory, as per the ACPI specification. BZ 481 Additional cleanup and optimizations for the new Table Manager code. AcpiEnable will now fail if all of the required ACPI tables are not loaded (FADT, FACS, DSDT). BZ 477 Added #pragma pack(8/4) to acobject.h to ensure that the structures in this header are always compiled as aligned. The ACPI_OPERAND_OBJECT has been manually optimized to be aligned and will not work if it is byte-packed. Example Code and Data Size: These are the sizes for the OS- independent acpica.lib produced by the Microsoft Visual C++ 6.0 32- bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size. Previous Release: Non-Debug Version: 78.1K Code, 17.1K Data, 95.2K Total Debug Version: 155.4K Code, 63.1K Data, 218.5K Total Current Release: Non-Debug Version: 77.9K Code, 17.0K Data, 94.9K Total Debug Version: 155.2K Code, 63.1K Data, 218.3K Total 2) iASL Compiler/Disassembler and Tools: Fixed a problem where the presence of the _OSI predefined control method within complex expressions could cause an internal compiler error. AcpiExec: Implemented full region support for multiple address spaces. SpaceId is now part of the REGION object. BZ 429 ---------------------------------------- 11 Oc
Bus Hound 5.0

Copyright (C) Perisoft 2000-2003. All rights reserved worldwide.

Bus Hound is a powerful software bus analyzer for capturing I/O and protocol from devices. Features include:

 Supports every version of IDE, SCSI, USB, 1394
 Supports all devices such as hard drives, DVD, mice, scanners, web cams, and everything else
 Supports Windows 95, 98, Me, NT 4.0, 2000, 2003, XP and XP Embedded
 Capture megabytes of I/O limited only by available memory
 Automatically stop the capture upon a trigger condition
 Measure individual read, write, and isochronous device performance
 Captures device driver packets such as IRP’s
 Filter what type of phases are captured
 Run on an unlimited number of machines at the same time
 Capture any number of devices in parallel, regardless of bus type
 Fits on a diskette for easy transportability and quick downloads
 Drag and drop captured data to other products in html format
 Save captured data to a text file or zip file
 Simple device selection from a graphical tree of devices
 Capture the system startup process
 Arrange captured data to user preferences such as the byte width per line
 View low level protocol including SCSI sense data and USB setup packets
 View microsecond resolution timing of each phase
 Watch I/O on screen in real time as it happens
 Pure software solution--no extra hardware or system changes needed



The Capture Window

Commands sent to devices consist of one or more phases. Examples of phases are command bytes, data bytes, and status bytes. Bus hound logs each phase complete with timing information and a description of the content.

Capture columns

Below are descriptions of information in each column of the Capture Window:

Device

Device ID. Each device is assigned a number which can be matched up with devices in the Devices Window. The first detected device on the system is Device ID 0, the second is Device ID 1, and so on. This field is useful in the event multiple devices are being captured in parallel.

For USB devices, the endpoint is also displayed (eg: 4.1 = device 4, endpoint 1).

Phase

Phase type. Please refer to the table for details of each phase type.

Phase Description
ADDR 8 byte 1394 transfer address
ATI 7 byte ATA task file returned from an IDE device
ATO 7 byte ATA task file sent to an IDE device
ATP Windows ATA_PASS_THROUGH data structure
CDB SCSI command descriptor block
(Known as a packet command for ATAPI devices)
CTL 8 byte setup packet of a USB control transfer
DI Data In (Device to PC transfer)
DO Data Out (PC to device transfer)
IOR Windows VXD I/O Request data structure
IRB Windows 1394 I/O Request Block data structure
IRP Windows I/O Request Packet data structure
ISOC Isochronous transfer data bytes
LEN Data transfer length of a DI,DO, or ISOC phase in
decimal units. This field is off by default and can be
turned on from the settings Window
LOCK 1394 lock transaction
NSTS Windows 4 byte kernel mode NTSTATUS field
RSET Bus or device reset
RSTS Windows VXD IOR status
SNS SCSI request sense data
SPT Windows SCSI Pass Through data structure
SRB Windows SCSI Request Block (SRB) data structure
SSTS Windows 1 byte SCSI Request Block (SRB) status
STAK Windows IO_STACK_LOCATION data structure
URB Windows USB Request Block (URB) data structure
USTS Windows 4 byte USBD_STATUS code


Data

Data bytes associated with the phase. Examples are command bytes, data transfer bytes, and status bytes.

Description

A text description of this phase provided for your convenience.

Delta

Elapsed time from the previous phase to the current phase. The following table describes the units of the time format.

Name Units
us Microseconds
ms Milliseconds
sc Seconds
mn Minutes
hr Hours
dy Days


Cmd.Phase.Ofs(rep)

This unique tag identifies the exact position within the captured data. All values are in decimal.

Cmd is the command number. Commands start at 1 and increment for each new command sent to a device.

Phase is the phase number within this command. A command is usually composed of multiple phases such as data transfer and status. This value starts at 1 and increments for each new phase within the command.

Ofs is the byte offset of the data within this phase. This value starts at 0 and increments for each byte of data in the data transfer.

Rep is the number of identical commands issued back to back. The repeat count feature can be turned off by deselecting the “Merge Repeated Commands” check box in the settings Window.

Date

Date the phase occurred in year/month/day format.

Time

Time the phase occurred in hour:minute:second.millisecond format. The hour ranges from 0 to 23 (military time).


Capturing the system startup process

If the Bus Hound application is exited while the Run button is pressed, the device driver portion of Bus Hound continues capturing data. In the event the system is restarted, it will start capturing data early in the system startup process.

If Bus Hound is exited while stopped, no capture will occur until returning to the product and pressing Run.

Customizing the capture display

The column order can be modified by dragging the column headers to the desired position. The byte width per line can be 1, 2, 4, 8, 16, or 32 bytes and is based on the width of the window. These settings are respected for Saving and drag & drop.

Searching

Searching can be performed from the capture window in either the up or down direction by typing the search string in the lower left edit box followed by pressing the up or down arrow to search up or down respectively. If the search string is not found, the trace position is not changed. Searching is not case sensitive.

Drag and Drop

To use drag and drop, first select the desired range of lines by clicking on the starting line, then hold down shift and click the ending line. The data can now be dragged using the mouse to another product.

Pressing control-c copies the selected lines to the clipboard.

Command Overlap

Overlapped commands are identified when a command starts before previous commands to the same device have completed. It is possible for Commands to be overlapped at the I/O subsystem level (which Bus Hound displays), but not at the hardware level.

Multiple DI/DO phases

Windows 9x only: if multiple DI/DO phases are listed for the same command, it indicates the transfer was split across multiple memory address ranges

PS2 Mouse data format

Below is the format of the data returned in the data in phase for PS/2 mice. This is known as the MOUSE_INPUT_DATA structure in the Windows DDK:

Offset Length Content
0 2 Not used
2 2 Position type:
0000h = relative position
0001h = absolute position
4 2 Button flags:
0001h = left button down
0002h = left button up
0004h = right button down
0008h = right button up
0010h = middle button down
0020h = middle button up
0040h = button 4 down
0080h = button 4 up
0100h = button 5 down
0200h = button 5 up
0400h = mouse wheel
6 2 Mouse wheel data
8 4 Not used
12 4 X position
16 4 Y position
20 4 Device specific information

PS2 Keyboard data format

Below is the format of the data returned in the data in phase for PS/2 keyboards. This is known as the KEYBOARD_INPUT_DATA structure in the Windows DDK:

Offset Length Content
0 2 Not used
2 2 Scan code of key
4 2 Flags:
0000h = key pressed
0001h = key released
0002h = extended scan code E0
0004h = extended scan code E1
6 2 Not used
8 4 Device specific information



The Save Window

The Save button saves all captured data to the specified file. The format of the file can be either a text file containing standard ASCII characters or a Zip file. The data will be saved in the same column order and byte width as seen on the screen.

A comment can be provided that will be placed into the header of the captured data. The current date and time can be included in the comment by inserting %c anywhere inside the comment. If saving to a zip file, the comment is also used for the zip file comment.



The Settings Window

This Window allows you to customize the capture process. Checkbox options in this window are applied instantly. Numeric entries are applied by pressing the apply button, switching to another window, or exiting Bus Hound.

Buffer Size

Specifies the number of kilobytes of RAM to use for capturing data. The size is limited only by system RAM. If not enough RAM is available to satisfy the requested size, the size is reduced to available RAM. If you need to get as much space as possible, besides adding more RAM to a system you can also try setting the buffer size before starting other applications. Note: allocating a very large buffer size under Windows 95/98/Me can take a minute.

Max Phase

Specifies the maximum number of bytes that will be captured on each phase. Example: if Max Phase is set to 32 bytes and a 64K read operation occurs, only the first 32 bytes of the read will be captured. This option is useful for keeping the size of the captured data to a minimum.

Stop When...

These are triggers that allow the capture to automatically stop when the specified condition is met. Any combination of triggers may be selected. When a trigger condition is met, the capture stops and the trigger text is highlighted in red.

Any Other Error stops the capture when an error occurs that does not fall into any of the other categories.

Buffer Full stops the capture when Bus Hound's buffer is full. If Buffer Full is deselected, capturing continues after the buffer is full, keeping the most recently captured data.

Bus Reset stops the capture when a bus reset occurs.

Data Overrun stops the capture when a data overrun or data underrun occurs.

Hardware Error stops the capture when a hardware error occurs.

Invalid Command stops the capture when an invalid command is issued.

Media Error stops the capture when a device reports a media error such as a bad sector.

No Media stops the capture when a device reports no media is present.

Not Ready stops the capture upon a not ready, timeout, or busy condition.

Text Pattern / Hex Pattern stops the capture when the specified data pattern is detected in the captured data. For text patterns, the match is case sensitive. The pattern is checked against the data transferred in any phase including commands, data, and status.

Vendor Error stops the capture when a vendor unique error occurs.

Windows Error stops the capture when an operating system type error occurs.

Phases to Capture

Contains a list of all the phase types Bus Hound can capture. Placing a check mark next to a phase allows it to be captured. Removing a check mark next to a phase results in the phase not being captured. This option is useful for filtering out phases that are not of interest or including special operating system phases that are off by default.

To the right of the check box, a white circle may appear. This indicates the phase has been detected and exists in the captured data. If the circle blinks bright green, it is a real time activity light indicating the phase has occurred and has been captured.

Merge Repeated Commands

When selected, if a command occurs that is identical to the previous command, the new command will not be logged separately. Instead, the repeat count of the previous command is incremented. This option is useful for compacting the captured data when a device is being continually polled with the same command.

Enable Sounds

If this option is enabled, Bus Hound will make an audible "ping" if the capture, settings, or devices window is up and a trigger condition is met.

Columns to Display

Place a checkmark in the boxes to include the desired columns in the Capture Window. The selected columns will also be included in drag & drop and save operations. See the section “The Capture Window” for more details about each column.



The Devices Window

The list of devices represents every device on the system which Bus Hound supports. The list automatically refreshes to reflect new or removed devices. To select/deselect a device to capture, click in the check box next to the device. The selection will be applied instantly.

Each device is assigned a number which is in parenthesis before the name of the device. This number is displayed in the capture window under the "Device" column. The number reflects the order in which the device was added to the system.

If a device is displayed in a light font, it indicates the device is not currently present on the system.

Capture new devices

Selecting this checkbox will automatically capture data for new devices that are detected. This feature is useful for capturing the first commands sent to hot plugged devices.

Device Properties

This window pane displays details about the device such as the performance. The performance is calculated by summing the total bytes transferred divided by the total elapsed time of the commands. The performance statistics are cleared when the run button is pressed in the Capture window.

Send Commands

You can send your own custom commands to a device using Bus Commander. To start Bus Commander, highlight a device with the mouse and click the “Send Commands” button or simply double click the device. Bus Commander is a very powerful complementary tool that lets you submit USB, 1394, ATA and SCSI commands to devices. You can also perform operations like bus resets and hardware port i/o.



Files Installed

BUSHOUND.EXE - Bus Hound application
BUSCMDR.EXE - Bus Commander application
BHUNINST.EXE - uninstaller
BHLOG.EXE - capture to disk tool (site license version only)
BHOUND3.VXD - device driver for Windows 95, 98, Me
BHOUND4.SYS - device driver for Windows NT 4.0
BHOUND5.SYS - device driver for Windows 98, Me, 2000, 2003, XP
HELP.RTF - product help file (this file)



Site License

The site license version of Bus Hound includes the bhlog.exe command line tool in the folder where Bus Hound is installed. bhlog spools captured data to a disk file in real time. This tool raises the maximum capture size from available RAM to available disk space. bhlog also has the ability to retain captured data in the event a system freezes or reboots by directing captured data to a file on a network drive.



FAQ

1. What type of I/O is captured?

Bus Hound takes a snap shot of packets sent across the bus. This includes commands, data, status, and timing of each command. Bus Hound does not monitor individual hardware signals.

2. Will Bus Hound change the behavior of my devices?

No. Bus Hound simply “listens” for packets. Bus Hound does not alter commands, does not send its own commands, does not replace any system drivers, and does not access the hardware. The system and devices will operate identically whether Bus Hound is installed or not.

3. Will Bus Hound degrade system performance?

Customers capturing data from extremely fast devices in parallel have been impressed by Bus Hound’s ability not to effect performance. Bus Hound is even more innocuous when in the stopped state.

4. Which devices are supported?

All IDE, SCSI, USB and 1394 devices are supported including disk drives, mice, scanners, web cams, and everything else. Devices that emulate one of these buses are also supported such as certain parallel port devices.

5. Why are there duplicate devices?

For some devices, Windows first forms high level packets that are then translated into low level packets which are in turn sent to the hardware. Bus Hound shows several devices so you can choose which level of I/O you wish to capture.

6. What does capturing I/O for a controller do?

Some controllers receive commands and some do not. You can experiment capturing data for a controller to see if the packets are of interest.

7. What if Bus Hound does not show a device?

No devices are displayed when the system is started in safe mode. This is a safety feature to keep safe mode as clean as possible.

Devices which are marked with a problem in device manager are not displayed.

SCSI adapters are not displayed under Windows 95/98/Me unless they have one or more devices attached.

8. Why are some devices grayed out?

A grayed out device indicates it is currently not attached to the system.

9. Windows 95/98/Me crashes when pressing run. What do I do?

Due to limitations in the Windows 9x architecture, if too many device drivers ask to receive notification of I/O completion, the system will crash. Microsoft device drivers and other installed software such as Bus Hound need such notifications. To resolve this, remove software likely to have additional device drivers installed for the device. For CD/DVD drives, an easy solution is to rename the legacy scsi1hlp.vxd to scsi1hlp.bak which is in the windows/system/iosubsys folder.

10. Why am I not able to capture all 1394 events?

Some 1394 devices Bus Hound displays are logical devices such as AV/VHS devices. Select devices further up the tree to capture bus activity for such devices.

While Bus Hound logs every isochronous transaction, there is no practical way for Bus Hound to see every asynchronous transaction. If you need to see more 1394 activity, note Bus Hound can capture a great deal more in operating systems prior to XP, particularly for SBP-2 devices.

11. Why am I not seeing task file (ATA) commands for IDE hard drives?

Bus Hound captures ATA commands only when an application or driver explicitly sends an ATA command (eg: SMART, IDENTIFY). For normal file system requests, Bus Hound captures SCSI CDB's instead of ATA commands due to the monolithic nature of the Windows IDE device driver. Note the CDB's captured have a one to one relationship with ATA commands and can be easily translated to their native ATA equivalent. Also note the data captured with the CDB is identical to the ATA data transfer.

12. Where can I get more detailed information on the captured data?

For your convenience, please visit www.perisoft.net/engineer for handy reference data and specifications. Also please note the following resources:

Specification Location
USB www.usb.org
SCSI www.t10.org
IDE, ATA, ATAPI www.t13.org
1394, Firewire www.1394ta.org or www.ieee.org
Windows DDK www.microsoft.com/ddk

14. Where do I get support?

Visit www.perisoft.net. Any questions, comments, or problem reports on the free or full version are welcome.

535

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧