You are on page 1of 35

System Software Development

Functional Specification
For
HP 3D DriveGuard

Hewlett-Packard Company Confidential

Version 6.0.0.8
Ujjawal Bagga
02/13/2015

This document contains information proprietary to Hewlett-Packard Company (HP).


Use or disclosure without written permission of an officer of HP is expressly forbidden.
Hewlett-Packard Company Confidential

Disclaimer
The information contained within this document, including URL, other web site references, and other
specification documents are subject to change without notice and are provided for informational purposes
only. No licenses with respect to any intellectual property are being granted, expressly or impliedly, by the
disclosure of the information contained in this document. Furthermore, neither Hewlett Packard nor any of
its subsidiaries makes any warranties of any nature regarding the use of the information contained within
this document, and thus the entire risk, if any, resulting from the use of information within this document is
the sole responsibility of the user. In addition, the names of the technologies, actual companies, and
products mentioned within this document may be trademarks of their respective owners. Complying with
all applicable copyright and trademark laws is the sole responsibility of the user of this document. Without
limiting any rights under copyright, no part of this document may be reproduced, stored, or transmitted in
any form or by any means without the express written consent of Hewlett Packard.
Hewlett Packard or its subsidiaries may have patents, patent applications, trademarks, copyrights, or other
intellectual property rights covering the subject matter in this document. Except where expressly provided
in any written license from Hewlett Packard or its subsidiaries, the furnishing of this document, or any
ideas contained within, does not grant any license to these ideas, patents, trademarks, copyrights, or other
intellectual property.
© 2003 – 2013 Hewlett-Packard Development Company, L.P. All Rights Reserved.

HP 3D DriveGuard Functional Specification Page 2 of 35


Hewlett-Packard Company Confidential

Contents
1. PREFACE................................................................................................................................ 5
2. REVISION HISTORY............................................................................................................... 5
3. REFERENCES........................................................................................................................ 5
4. TERMINOLOGY...................................................................................................................... 5
5. INTRODUCTION..................................................................................................................... 7
6. DESIGN OVERVIEW............................................................................................................... 7
7. ARCHITECTURE.................................................................................................................... 7
7.1.1 HDD Freefall Event Management.................................................................................9
7.2 COMPONENT DESCRIPTIONS.................................................................................................11
8. HP 3D DRIVEGUARD USER INTERFACE...........................................................................11
8.1 SYSTEM TRAY...................................................................................................................... 12
8.2 WINDOWS MOBILITY CENTER TILE........................................................................................13
9. HDD FREEFALL PROTECTION DETAILS...........................................................................15
9.1 USER SCENARIOS................................................................................................................ 15
9.1.1 Drop scenario.............................................................................................................. 15
9.1.2 Abrupt Movement scenario.........................................................................................15
9.2 PERFORMANCE MATRIX........................................................................................................ 15
9.3 KNOWN LIMITATIONS............................................................................................................ 15
9.4 PROTECTION LEVELS............................................................................................................ 16
9.5 EXPECTED BEHAVIOR........................................................................................................... 16
9.5.1 LED notification when in Parked mode.......................................................................16
9.5.2 Shock Event Duration and Sensitivity.........................................................................17
9.5.3 Power Management Expectations...............................................................................17
9.6 STORAGE DEVICES............................................................................................................... 17
9.6.1 Supported Storage Devices........................................................................................17
9.6.2 Unsupported Storage Devices....................................................................................18
9.6.3 Multi-Drive Support..................................................................................................... 18
9.6.4 Solid State Drives........................................................................................................ 18
10. INSTALLATION/SETUP........................................................................................................ 18
10.1 NEW INSTALL:................................................................................................................... 19
10.2 REPAIR INSTALL:............................................................................................................... 19
10.3 UPGRADE INSTALL:........................................................................................................... 19
10.4 DOWNGRADE INSTALL:...................................................................................................... 20
10.5 UNINSTALL:...................................................................................................................... 20
10.6 REGISTRY ENTRIES:.......................................................................................................... 20
10.7 DELIVERABLE COMPONENTS.............................................................................................. 20
10.8 INF FILE LOCATION.......................................................................................................... 22
11. NATIONAL LANGUAGE SUPPORT.....................................................................................22
12. REGISTRY KEYS.................................................................................................................. 23
13. LOGGING SUPPORT............................................................................................................ 25
14. ACCELEROMETER IOCTL INTERFACE.............................................................................26
14.1 IOCTL_ACCELEROMETER_POWER_NOTIFICATION................................................26

HP 3D DriveGuard Functional Specification Page 3 of 35


Hewlett-Packard Company Confidential

14.2 IOCTL_ACCELEROMETER_USER_LOGON................................................................27
14.3 IOCTL_ACCELEROMETER_GET_XYZ.........................................................................27
14.4 IOCTL_ACCELEROMETER_INITIATE_XYZ_EVENT...................................................28
14.5 IOCTL_ACCELEROMETER_TERMINATE_XYZ_EVENT.............................................28
14.6 IOCTL_ACCELEROMETER_GET_XYZ_EVENT_PROPERTY.....................................28
14.7 IOCTL_ACCELEROMETER_SET_XYZ_EVENT_PROPERTY......................................29
14.8 IOCTL_ACCELEROMETER_REGISTER_FOR_EVENTS.............................................29
14.9 IOCTL_ACCELEROMETER_PASS_THROUGH...........................................................30
14.10 IOCTL_ACCELEROMETER_CLEAR_LOG_FILE..........................................................31
14.11 IOCTL_ACCELEROMETER_SET_PROPERTY............................................................31
14.12 IOCTL_ACCELEROMETER_GET_PROPERTY............................................................32
15. HP PRIVATE ACPI CONTROL METHODS..........................................................................32
15.1 CLRI_METHOD.............................................................................................................. 33
15.2 ALRD_METHOD............................................................................................................. 33
15.3 ALED_METHOD............................................................................................................. 33
15.4 ALID_METHOD.............................................................................................................. 34
15.5 ADSN_METHOD............................................................................................................ 34
15.6 ALWR_METHOD............................................................................................................ 35
16. SECURITY RISK ASSESSMENT.......................................................................................... 35

TABLE OF FIGURES

Figure 1 - 3D DriveGuard Architecture............................................................................................ 8


Figure 2 - HP 3D DriveGuard Event Flowchart.............................................................................10
Figure 3- Systray Applet............................................................................................................... 12
Figure 4 - System Tray Status Icons.............................................................................................12
Figure 5 - About Dialog Box w/ Version #.....................................................................................12
Figure 6 - Information Dialog Box................................................................................................. 13
Figure 7 - Mobility Center Tile Icons............................................................................................. 13
Figure 8 - Windows Mobility Tile................................................................................................... 14
Figure 9 - ProtectedDisks Registry Key........................................................................................24
Figure 10 - Windows Event Log.................................................................................................... 26

TABLE OF TABLES

Table 1 – Terminology.................................................................................................................... 6
Table 2 - Deliverable Components............................................................................................... 11
Table 3 - Levels of Sensitivity....................................................................................................... 16
Table 4 - Application File List........................................................................................................ 21
Table 5 - Driver File List................................................................................................................ 22
Table 6 - Supported Languages................................................................................................... 23
Table 7 - HKLM\Software\Policies Registry Keys.........................................................................23
Table 8 - HKLM\System Registry Keys.........................................................................................25

HP 3D DriveGuard Functional Specification Page 4 of 35


Hewlett-Packard Company Confidential

1. PREFACE
The purpose of this Functional Specification document is to describe the expected functionality of
HP 3D DriveGuard before and after a shock occurs. This functional specification addresses the
deliverable behavior when running on Windows 7, Windows 8, Windows 8.1 and Windows 10.

2. REVISION HISTORY
Revised By Revision Revision Revision Description
Number Date
Fahad Ahmad 6.0.0.1 10/29/2012 GUI Removal updates
Fahad Ahmad 6.0.0.2 01/15/2013 Updates for registry, event logging etc.
Fahad Ahmad 6.0.0.5 07/23/2013 Updates for Win8.1
Fahad Ahmad 6.0.0.6 08/01/2013 Update the ‘Upgrade Install’ section
Ujjawal Bagga 6.0.0.7 02/06/2014 Updated new Icons for 2014
Ujjawal Bagga 6.0.0.8 02/13/2015 Updated 9.5.3 with SSD/HDD s3 behavior

3. REFERENCES
 Hewlett-Packard “Blazing Saddles (XP)” Design and Architecture , OSR Open Systems
Resources, Version 1.0. 8/1/2005.

 Hewlett-Packard Accelerometer “Blazing Saddles (XP)” Final Release Notes, OSR Open
Systems Resources, 11/15/2005

 Hewlett-Packard Accelerometer Design and Architecture “Robots (Vista)” , OSR Open


Systems Resources, Version 2.0. 8/1/2006

 Hewlett-Packard Accelerometer “Robots (Vista)” Final Release Notes, OSR Open


Systems Resources, 11/21/2006

 Hewlett-Packard 3D DriveGuard v4.1 Functional Specification , Fahad Ahmad,


07/18/2011

4. TERMINOLOGY
Throughout this Specification certain terminology is used which may need further clarification.
These terms are in conformance with Industry-standard definitions, as well as generally accepted
system software and architecture principles.

Accelerometer HP supplied device within the notebook that detects potential impending
danger to the notebook’s disks by sending changes in G-forces
Deliverable A collection of software modules provided in a single package to address a
specific set of requirements for a specific set of platforms and operating
systems.
Accelerometer Interrupt driven kernel module that receives interrupts from Accelerometer.
Driver

HP 3D DriveGuard Functional Specification Page 5 of 35


Hewlett-Packard Company Confidential

Disk Filter Driver Block Driver responsible for unloading the Hard drives heads.
SATA Serial ATA
PATA Parallel ATA
SCSI Small Computer System Interface
RAID Redundant array of independent disk
RAID Volume Grouping of several physical drives in a computer into an array, that user
can define as one or more logical drives.
Notebook Disk Hard disk drive(s) installed in the notebook that interface with the notebook
using the SATA, PATA, or SCSI standard
ACPI Advanced Configuration and Power Interface
Shock Event An event signaled by the Accelerometer driver in response to an interrupt
from the Accelerometer, indicating impending danger to notebook Disks
Shock End Event An event generated by the Accelerometer driver indicating that the
notebook disks are most likely not in danger of being damage.
Shock End Event Number of milliseconds after a Shock event that must pass without another
Period Shock event occurring before the accelerometer driver assumes that the
threat of impending danger to the notebook Disks has passed.
MCA Mobility Center Application
Table 1 – Terminology

HP 3D DriveGuard Functional Specification Page 6 of 35


Hewlett-Packard Company Confidential

5. INTRODUCTION
The purpose of this Functional Specification document is to describe the expected functionality of
HP 3D DriveGuard before and after a shock occurs.

HP 3D DriveGuard provides protection for your computer's disk drives during a shock event. For
example, if you drop your computer while using it, the accelerometer senses a change in the G-
force, park the disk drives, and halt I/O requests. The accelerometer sensor provides protection
anytime your computer is dropped or anytime abruptly impact another physical object.

6. Design Overview
This section provides an overview of the HP 3D DriveGuard design and architecture, by
describing the general behavior of each software component in the system. While reading the
overall behavior, the reader should remain mindful of the fact that this is an overview. Full design
details for each component are provided in Section 6 of this document.

As the Accelerometer device registers a Shock Warning Event, it notifies the Accelerometer
Driver that a Shock Warning Event has occurred by generating an interrupt. The Accelerometer
driver reacts by notifying the Disk Filter Driver of the event and turning the Amber HD LED light
ON. All supported HP private ACPI Control Methods invoked by the driver.

Upon receiving the Shock Warning Event signal, the Disk Filter driver proceeds to unload the
hard drive heads in the shortest time possible reducing or eliminating any damage to the
notebook hard drives. The Disk Filter driver then holds any subsequently received I/O requests in
a queue until it receives a Shock Warning End Event signal from the Accelerometer Driver.

7. Architecture
The following diagrams depict the overall architectural structure and process flow. This modular
design allows multiple applications to take advantage of the device capabilities. The design
supports both events driven, configuration, polling methodologies.

HP 3D DriveGuard Functional Specification Page 7 of 35


Hewlett-Packard Company Confidential

Figure 1 - 3D DriveGuard Architecture

In this architecture, the Accelerometer Driver is responsible for notifying the other components in
the system of the occurrence of a Shock Event. The Accelerometer device tells the
Accelerometer Driver that a Shock Event has occurred by generating an interrupt.

After signaling the Shock Event, the Accelerometer Driver starts a timer for the Shock End Event
Period. When this timer expires, the Accelerometer Driver notifies the Disk Filter Driver of a
Shock End Event by setting a shared KEVENT. The Accelerometer Driver also sends a Device
Change Notification, to indicate the occurrence of the Shock Event to user-mode components,
and resets the interrupt on the Accelerometer by invoking an ACPI method.

HP 3D DriveGuard Functional Specification Page 8 of 35


Hewlett-Packard Company Confidential

When it receives notification of the Shock Event, the Disk Filter Driver provides Protection by
taking the following two actions:

 A worker thread created by the Disk Filter Driver, running in kernel-mode, sends an
Unload Command to each ATA Disk. The commands are sent asynchronously using a
dedicated IRP.
 The main-line Disk Filter Driver code holds any newly arriving I/O requests (other than
PnP and Power requests) destined for the underlying disk stack by placing them in a
queue. Requests are held to prevent subsequent commands from “re-loading” the disk
heads prior to the occurrence of a Shock End Event.

After the Shock End Event Period has passed without any further Shock Events being reported,
the Accelerometer Driver notifies the Disk Filter Driver that Protection is no longer required by
signaling a Shock End Event.

When the Disk Filter Driver is notified of the Shock End Event, two important actions take place:

 The Disk Filter Driver stops holding newly arriving I/O requests. Thus, the Disk Filter
Driver reverts to its normal processing and passes all I/O requests that it receives to the
underlying device.
 The Disk Filter Driver worker thread forwards to the underlying disk stack those requests
that had been held in its queue while Protection was provided.

It is important to note that, because of the basic design of Windows, it is not necessary for the
Disk Filter Driver to preserve the order of the I/O requests it receives. That is, the requests that
had been held subsequent to the Shock Event do not need to be submitted and processed first,
before new requests arriving at the Disk Filter Driver are submitted and processed. Thus, to
optimize the project’s architectural goals of reliability and testability, we decided not to preserve
the order of requests, thus eliminating a whole series of potential serialization problems.

User-mode components of the Accelerometer System Software communicate with the


Accelerometer Driver via the use of IOCTLs. Private IOCTLs are used to enable and disable
Protection in the Accelerometer System Software. The Accelerometer Driver communicates
events and Accelerometer System Software state back to user-mode by the use of both IOCTLs
and Device Change Notifications.

The HP Service, which is a user mode entity, is present in order to detect the logon and logoff of
user sessions. This notification is used to alert the Accelerometer driver of potential changes in
user settings.

7.1.1 HDD Freefall Event Management

The following diagram depicts the logic and the accelerometer events processed to provide the
HDD freefall detection and protection support:

HP 3D DriveGuard Functional Specification Page 9 of 35


Hewlett-Packard Company Confidential

Figure 2 - HP 3D DriveGuard Event Flowchart

HP 3D DriveGuard Functional Specification Page 10 of 35


Hewlett-Packard Company Confidential

7.2 Component Descriptions

The HP 3D DriveGuard software package includes components that run under user-mode and
kernel-mode. Each component is described in the following table:

Component Filename Environment Purpose


Name
Accelerometer Accelerometer.sys Kernel-Mode This component exports the
Driver functionality provided by the
Accelerometer device. The user-mode
components interact with this
component to get and set user
changeable features. In addition the
Disk Filter Driver registers with this
component to receive Shock Event and
Shock End Event notifications.
Disk Filter Driver HPDskFlt.sys Kernel-Mode This component sits between the
Microsoft Disk Class driver devices that
represent disks and the lower-level
parts of the disk stack. Its purpose is to
interact with the Accelerometer Driver
and protect the ATA Disks when
notification of a Shock Event is
received.
System Tray AccelerometerST.exe User-mode This application manages the taskbar
Application icon which is used to display the state
of the Accelerometer System Software
components. The components are
either in the enabled or disabled state.
Accelerometer AccelerometerDLL.dll User-mode This component contains API
Shared DLL mappings from the application layer to
the Driver IOCTLs.
Accelerometer HPService.exe User-Mode This component contains the code that
Service monitors the logon and logoff events
and then notifies the Accelerometer
Driver of this event.
Mobility Center HPTile2.exe User-Mode This application contains the Mobility
Tile Center Tile UI.
Information HP3DDGInformation.ex User-Mode This component contains the HP3DDG
e Information dialog box and About
dialog box support

Table 2 - Deliverable Components

8. HP 3D DriveGuard User Interface


HP 3D DriveGuard provides several applications to view the state of the hard drive protection.
The information found below includes screenshots and options for all supported operating
systems.

8.1 System Tray

HP 3D DriveGuard Functional Specification Page 11 of 35


Hewlett-Packard Company Confidential

This application manages the taskbar icon which is used to display the state of the Accelerometer
System Software components. The components are either in the enabled or disabled state.
The systray applet will run by default.

Two menu options are provided by the System Tray Application when the user right-clicks on HP
3D DriveGuard icon as shown in the figure below.

Figure 3- Systray Applet


The icons that can be displayed by the System Tray Application are based upon the current state
of the HDD freefall protection feature and are defined as follows:

Enabled: Disabled: Parked:

Figure 4 - System Tray Status Icons

NOTE: If hard drive protection is “Enabled”, the System Tray icon may switch to a “Parked” state
if a Shock Event occurs.

8.1.1.1 “About” Menu option

This opens a dialog box which displays the version of HP 3D DriveGuard installed and running on
the system.

Figure 5 - About Dialog Box w/ Version #

8.1.1.2 “Information” Menu option

HP 3D DriveGuard Functional Specification Page 12 of 35


Hewlett-Packard Company Confidential

This opens a dialog box which displays information regarding the functionality of HP 3D
DriveGuard.

Figure 6 - Information Dialog Box

8.2 Windows Mobility Center Tile

HP3DDG also provides a Windows Mobility Center Tile which provides the current hard drive
protection status.
 
The icons that can be displayed by the Mobility Center Tile are based upon the current state of
the HDD freefall protection feature and are defined as follows:

Enabled: Disabled: Parked:

Figure 7 - Mobility Center Tile Icons

HP 3D DriveGuard Functional Specification Page 13 of 35


Hewlett-Packard Company Confidential

Figure 8 - Windows Mobility Tile

Information button opens the information dialog box as described in section 8.1.1.2.

HP 3D DriveGuard Functional Specification Page 14 of 35


Hewlett-Packard Company Confidential

9. HDD Freefall Protection Details


9.1 User Scenarios

HP 3D DriveGuard must protect all non-removable hard drives whenever the notebook is dropped
or moved abruptly. Two common user scenarios are described below and must be used as the
basis of the overall hard drive expected protection. HP 3D DriveGuard solution must include
other real life scenarios in the final design.

9.1.1 Drop scenario

3D DriveGuard must protect all hard drives when the notebook is dropped. This scenario
demonstrates how fast the system must react from the moment a drop is detected by the
accelerometer and the time the Disk Filter driver unloads the heads. Several field studies
showed that the hard drive heads must be unloaded by the time the notebook is about 4 inches
from the floor to minimize the damage inflicted on the drives.

9.1.2 Abrupt Movement scenario

3D DriveGuard must protect all hard drives when the notebook moves abruptly in excess of a
drop condition. This scenario demonstrates how the system must react when the accelerometer
detects an abrupt motion. Under normal circumstances, a user closes the notebook, picks it up
from the desk, and start walking out of his office without any incidents. There are other cases
when the user may hit the unit against a door ledge or any other hard surface. Those two cases
require the accelerometer to react to any abrupt movement and park the heads by the time the
user takes the first step.

9.2 Performance Matrix

On the drop scenario, a 9” fall takes approximately 214 ms (d = 0.5 * g * t^2).  3D DriveGuard
Free fall response budget must be within the values ranges listed below.

 5 ms accelerometer Free Fall detection time, from start of freefall to assertion of interrupt
pin.
 110ms time from accelerometer driver receipt of event notification till filter driver sends
Unload Immediate (IUI) command.
 100ms drive response time to park heads based on receipt of IUI command. 

9.3 Known Limitations

The main purpose of HP 3D DriveGuard is to protect one or more internal hard drives whenever
the notebook is dropped or abruptly impacts another physical object. The design maximizes such
protection although limited by the OS architecture. There are several scenarios outside of which
the hard drive will be unprotected. All efforts must be made to minimize or eliminate any period of
time when all drives are unprotected whenever possible.

All hard drives will be unprotected from any Shock Warning Events during the periods or
conditions listed below.

 The period of time between POST and the OS loads HP 3D DriveGuard modules
 System is going into Standby

HP 3D DriveGuard Functional Specification Page 15 of 35


Hewlett-Packard Company Confidential

 System is shutting down or restarting


 System is hibernating
 System resuming from any power state
 Hard drive firmware is attempting to recover from failure. This scenario is rare but
plausible.
 Battery reaches critical level and shutdown or hibernation is imminent.

9.4 Protection Levels

Both the accelerometer and filter driver work in conjunction to react to all Shock Warning events,
interact with ACPI Methods, and enable or disable all hard drive protection. The filter driver,
although responsible for protecting the drive, is unaware of any Shock Warning Events unless
those events are communicated by the accelerometer driver.

HP 3D DriveGuard provides two different levels of protection according to the Notebook Lid and
power state. SHORT and EXTENDED protection levels are defined by the drivers while the
accelerometer chip sensitivity is controlled by BIOS. Although both protection levels are identical
on how they react to any Shock Warning Event, the duration the filter driver waits prior releasing
the heads is different.

SHORT protection occurs when the notebook lid is open or is connected to AC. SHORT
protection level defines a wait time duration of 2000 milliseconds.

EXTENDED protection occurs when the lid is closed and running on battery. EXTENDED
protection level defines a wait time duration of 20000 milliseconds.

When a Shock Warning Event is registered while the EXTENDED or SHORT protection is active,
the timer is restarted.

LID STATE POWER STATE SHOCK WARNING SENSITIVITY


EVENT TIMER
Lid OPEN On AC/Plugged in SHORT (2 seconds) LOW Sensitivity
Lid OPEN On DC/Battery SHORT (2 seconds) LOW Sensitivity
Lid CLOSE On AC/Plugged in SHORT (2 Seconds) LOW Sensitivity
Lid CLOSE On DC/Battery LONG (20 seconds) HIGH Sensitivity
Table 3 - Levels of Sensitivity

Note: The accelerometer is dynamically reprogrammed by the HP KBC to support (2) levels of
sensitivity which map to these protection levels. For instance, HIGH Sensitivity to motion equates
to EXTENDED protection; LOW Sensitivity to motion equates to SHORT protection. See Table 3
for associated conditions

9.5 Expected Behavior

After the driver installs, any Shock Events will cause the hard drive to park. The amount of time
the drive stays in “Parked Mode” will vary depending on several factors such as Lid Open / Lid
Close and the system power state (AC / DC).

9.5.1 LED notification when in Parked mode

When the unit is in a “Parked” state, the LED for the hard drive will turn amber until it is no longer
in a “Parked” state.

HP 3D DriveGuard Functional Specification Page 16 of 35


Hewlett-Packard Company Confidential

9.5.2 Shock Event Duration and Sensitivity

The amount of time the HDD stays in a “Parked” Mode will vary depending on several factors
such Lid Open/Lid Close and AC/DC. This method provides the best coverage possible for
cases where a user may be traveling or just stationed at their desk/docking station.

There are two Shock Event Duration times:

 “Short” timer - set to 2 seconds


 “Long” timer - set to 20 seconds

There are two Sensitivity states:

 “Low Sensitivity”
To trigger a Shock Event, the unit must be moved in a vertical motion (Up/Down).

 “High Sensitivity”
To trigger a Shock Event, the unit can be moved in a Horizontal or Vertical motion (Up,
Down, or Sideways).

9.5.3 Power Management Expectations

If a system is in a “Parked” state, it must complete its Shock Event Duration before it can
Shutdown, Restart, or go into Standby or Hibernation.

However, if your computer is running on battery power and reaches a critical low-battery
condition, HP 3D DriveGuard will allow the computer to initiate hibernation.

In case of SSD drive as primary/bootable drive and rotating disk(s) as secondary, system will
immediately end shock event and go to sleep or hibernate when pressing button while in shock
state.

9.5.4 Testing if the unit can successfully perform critical hibernation with
continuous shock events-

The critical battery level in this scenario is a fixed value in the BIOS which can vary between
platforms. The typical value is 5%. So for testing purposes, common mistake is setting the critical
battery level to a value below the current level using the power settings in the OS. Changing this
value in the OS has NO effect on the fixed value in the BIOS. If this value set in the OS is more
than the value in the BIOS, we will not see the system perform critical hibernation. This doesn’t
necessarily mean that the test failed. The only and correct way to test will be to start the test and
wait till the system powers off. With the next power on, if the system gives you an option to
resume then that means that the system indeed hibernated when the battery level fell below the
value in the BIOS and hence there was no data loss.

9.6 Storage Devices

HP 3D DriveGuard support multiple types of storage devices while excluding external, devices
with removable media or removable devices. In some instances, storage controller vendors
provide device drivers which reports their devices as SCSI while in reality are SATA devices.

9.6.1 Supported Storage Devices


 SATA or ATA Hard Drives
 IDE (PATA) Hard Drives

HP 3D DriveGuard Functional Specification Page 17 of 35


Hewlett-Packard Company Confidential

 RAID Volumes - Support of RAID Volume is limited to those systems with an Intel RAID
Controller. Storage Controllers other than Intel RAID are not supported at this time.

9.6.2 Unsupported Storage Devices


 External Devices
 Non Intel RAID Controllers
 USB devices
 SCSI devices

9.6.3 Multi-Drive Support

Early architecture design provides support for a maximum of 2 internal drives. Today mobile
individual presents a new challenge and need for multi-drive notebooks. In order to address this
need, the new 2011 workstations will have a total of 3 internal drives.

The new configuration requires HP 3D DriveGuard to expand its current drive support to 3 or
more drives. The new design will support a total of 16 internal drives and the total number of
drives is limited by the total number of physical drives that can be attached to a single controller.
Support of 16 drives is more than enough to support new and future internal drive protection
requirements.

9.6.4 Solid State Drives

HP 3D DriveGuard requires additional information and drive detection in order to provide a more
meaningful support for Solid State Drives (SSD). It is known that an SSD does not have any
moving parts so installing HP 3D DriveGuard does not provide any value to the user unless
his/her system has a second internal drive.

HP3DDG does not attempt to park the heads on an SDD and will ignore Shock Events unless a
second non-SSD HDD is detected in the system.

10. Installation/Setup
The HP3DDG deliverable is provided with SETUP.EXE file to allow for easy installation by end-
users. This deliverable supports the standard MSIEXEC.exe command line parameters and uses
the following version convention: MAJOR.MINOR.BUILD.PASS.

A *.CVA file is used to support App Installer and SSM installation.

HP3DDG will install on any HP or Compaq branded system which includes a 3D Accelerometer
with the “HPQ6000” Device ID and proper OS support.

HP3DDG supports these installation types: new install, repair, upgrade, and uninstall. Silent
install is also supported for each of the installation types.

HP3DDG does not support downgrade. To downgrade, the user has to uninstall the current
version before installing the older version of HP3DDG. Installation engine should detect this type
of installation (downgrade). If setup is not running in silent mode, a message will be displayed to
tell user that the current version must first be manually un-installed before proceeding to a lower
version. If setup is running in silent mode, setup just stops running, nothing is changed.

Each type of installation will be described in the following sections.

HP 3D DriveGuard Functional Specification Page 18 of 35


Hewlett-Packard Company Confidential

10.1 New install:


“New Install” is an installation type that occurs when installing the HP3DDG on a target system
with no other HP3DDG versions installed.

“Silent mode”:
 No user interface message boxes are displayed even when errors occur.

 Command line:

With log file:


setup.exe /s /v"/qn /lv setup.log REBOOT=REALLYSUPPRESS"

Note: In this case, log file created in the same directory with Setup.exe

Without log file:


setup.exe /s /v"/qn REBOOT=REALLYSUPPRESS"

“Non-Silent mode”:
 A Welcome dialog box is displayed followed by Ready to Install dialog box, then a
Progress dialog box and finally a Finish dialog box after installation is complete. A
Restart Windows dialog box maybe displayed if installation does not update all of the
files. If there are errors during installation, an Error message box is displayed.

10.2 Repair install:


“Repair Install” is an installation type that occurs when installing the HP3DDG on a Target System
over a previously installed HP3DDG with the same version.

“Silent mode”:
 Installation runs in repair mode in which files and default settings are recovered if missing
or corrupted. No user interface message boxes are displayed even when errors occur.
 Command line:

With log file:


setup.exe /s /v"/qn /lv setup.log REPAIR=ALL REBOOT=REALLYSUPPRESS"

Note: In this case, log file created in the same directory with Setup.exe

Without log file:


setup.exe /s /v"/qn REPAIR=ALL REBOOT=REALLYSUPPRESS"

Non-Silent mode:
 A maintenance dialog box is displayed with default to repair and the option to remove.
The repair mode allows recovery for missing or corrupted files or registry entries. If there
are errors during installation, an error message box is displayed.

10.3 Upgrade Install:


“Upgrade Install” is an installation type that occurs when installing the HP3DDG on a Target
System over a previously installed HP3DDG with a lower version. Upgrade only looks at the
major, minor, and revision values of the version number. The pass value is not considered.

Note: Since HP3DDG 6.0 is a new release dependent on 2013 and newer hardware support
(HPQ6000 device ID) it will not include upgrade support over previous versions of HP3DDG (e.g.,
4.x and 5.x releases).

“Silent mode”:

HP 3D DriveGuard Functional Specification Page 19 of 35


Hewlett-Packard Company Confidential

 All files and settings are updated to the new version. No user interface message boxes
are displayed even if errors occur.
 The command line is the same as for a New Install.

“Non-Silent mode”:
 The GUI is the same as the new install. Program files are updated; however existing
data files and settings are preserved.

10.4 Downgrade Install:


“Downgrade Install” is an installation type that occurs when installing HP3DDG on a Target
System over a previously installed HP3DDG with a higher version.

“Silent mode”:
 The software will not be changed.

“Non-Silent mode”:
 A message box indicates that there is a newer version installed on the target system.
Downgrade does not proceed. User must manually un-install the current HP 3D
DriveGuard before re-attempting the install.

10.5 Uninstall:
The Uninstall for this deliverable is provided via the Add/Remove Programs Applet by selecting
“HP 3D DriveGuard”. If there are dependent programs which must be stopped before uninstall
can complete, there will be one or more dialogs confirming stopping, and allowing the uninstall to
be cancelled. A reboot may be required to complete the uninstall.

Note: Uninstall does not remove the HP Mobile Data Protection Sensor (HPMDP) driver.

10.6 Registry Entries:


In addition to the registry keys defined in the Registry Keys section of this document the following
registry entries are also added during the HP3DDG install:

The installer has a custom action which runs MobCntrTileReg.exe to add these entries for the
HP3DDG Mobility Center Tile:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MobilePC\MobilityCenter
 OEMImage
 OEMName
 TileOrder
 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MobilePC\MobilityCenter\Tiles\
DataProtectionTile
 GUID

10.7 Deliverable Components

For clarification purposes, the file directory location will be addressed by its corresponding
abbreviation listed below.

32 Bit : <TargetDir>=”%ProgramFiles%\Hewlett-Packard\HP 3D DriveGuard”


64 Bit : <TargetDir>=”%ProgramFiles(x86)%\Hewlett-Packard\HP 3D DriveGuard”

< Driver_Dir>=”<TargetDir>\Driver”

HP 3D DriveGuard Functional Specification Page 20 of 35


Hewlett-Packard Company Confidential

TargetDir identifies the application root directory.


Driver_Dir identifies the directory where a current copy of the HPMDP driver is copied to.
The following table identifies application and help files installed by the HP3DDG MSI for Windows
7.Filenames below are the same for all languages.

Filename Description Directory Location


AccelerometerST.exe System Tray Icon Application. <TargetDir>
HPTile2.exe Mobility Center Tile <TargetDir>
Information and About Dialog Box
HP3DDGInformation.exe <TargetDir>
Application
MCOEMInfo.exe Contains OEM image and name <TargetDir>
HP3DDGInformation.exe.config .NET App Config file <TargetDir>
HP3DDGInformation.resources.dll <TargetDir>\ar
HP3DDGInformation.resources.dll <TargetDir>\cs
HP3DDGInformation.resources.dll <TargetDir>\da
HP3DDGInformation.resources.dll <TargetDir>\de
HP3DDGInformation.resources.dll <TargetDir>\el
HP3DDGInformation.resources.dll <TargetDir>\en
HP3DDGInformation.resources.dll <TargetDir>\es
HP3DDGInformation.resources.dll <TargetDir>\et
HP3DDGInformation.resources.dll <TargetDir>\fi
HP3DDGInformation.resources.dll <TargetDir>\fr
HP3DDGInformation.resources.dll <TargetDir>\he
HP3DDGInformation.resources.dll <TargetDir>\hu
HP3DDGInformation.resources.dll <TargetDir>\it
HP3DDGInformation.resources.dll <TargetDir>\ja
HP3DDGInformation.resources.dll <TargetDir>\ko
HP3DDGInformation.resources.dll <TargetDir>\nl
HP3DDGInformation.resources.dll <TargetDir>\no
HP3DDGInformation.resources.dll <TargetDir>\pl
HP3DDGInformation.resources.dll <TargetDir>\pt-BR
HP3DDGInformation.resources.dll <TargetDir>\pt-PT
HP3DDGInformation.resources.dll <TargetDir>\ru
HP3DDGInformation.resources.dll <TargetDir>\sk
HP3DDGInformation.resources.dll <TargetDir>\sl
HP3DDGInformation.resources.dll <TargetDir>\sv
HP3DDGInformation.resources.dll <TargetDir>\tr
HP3DDGInformation.resources.dll <TargetDir>\zh-Hans
HP3DDGInformation.resources.dll <TargetDir>\zh-Hant
HP3DDGInformation.resources.dll <TargetDir>\zh-HK
HP3DDGInformation.resources.dll <TargetDir>\zh-TW
Table 4 - Application File List
Notes:
 The package contains both 32-bit and 64-bit versions of the application modules. During
installation the correct 32-/64-bit versions of the modules get selected and installed.

The following table lists all files associated with HP3DDG INF install for the HPMDP driver:
Filename Description Directory Location
WHQL Catalog File for 64-bit
hpqaccamd64.cat < Driver_Dir >\
Drivers
WHQL Catalog File for 32-bit
hpqaccx86.cat < Driver_Dir >\
Drivers
Setup Information File for
Accelerometer.inf < Driver_Dir >\
Accelerometer Drivers

HP 3D DriveGuard Functional Specification Page 21 of 35


Hewlett-Packard Company Confidential

Filename Description Directory Location


Accelerometer.sys 32-bit Accelerometer Driver < Driver_Dir >\x86
32-bit Accelerometer Interface
AccelerometerDLL.dll < Driver_Dir >\x86
Library
HPDskFlt.sys 32-bit Disk Filter Driver < Driver_Dir >\x86
32-bit Coinstaller to install / remove
HPMDPCoInst.dll < Driver_Dir >\x86
HPService
HPService.exe 32-bit HPService module < Driver_Dir >\x86
Accelerometer.sys 64-bit Accelerometer Driver < Driver_Dir >\amd64
64-bit Accelerometer Interface
AccelerometerDLL.dll < Driver_Dir >\amd64
Library
HPDskFlt.sys 64-bit Disk Filter Driver < Driver_Dir >\amd64
64-bit Coinstaller to install / remove
HPMDPCoInst.dll < Driver_Dir >\amd64
HP Service
HPService.exe 64-bit HPService module < Driver_Dir >\amd64
hpInstDrv.exe 32-bit Driver installer On 32: < Driver_Dir >\
hpInstDrv64.exe 64-bit Driver installer On 64: < Driver_Dir >\
WDK Driver installation Framework
DIFxAPI.dll < Driver_Dir >\
API support module
Table 5 - Driver File List

10.8 INF File Location

< Driver_Dir >\accelerometer.inf

11. National Language Support


The following table lists the languages supported by the HP3DDG 6.0 deliverable.

Abbr. Language
ar Arabic
cs Czech
da Danish
de German
el Greek
en US English
es Spanish
fi Finnish
fr French
he Hebrew
hu Hungarian
it Italian
ja Japanese
ko Korean
nl Dutch
no Norwegian
pl Polish
pt-BR Brazilian Portuguese
pt-PT Portugal Portuguese
ru Russian
sk Slovakian
sl Slovenian
sv Swedish
tr Turkish
zh-CHS Chinese Simplified (PRC)
zh-TW Chinese Traditional (Taiwan)

HP 3D DriveGuard Functional Specification Page 22 of 35


Hewlett-Packard Company Confidential

tzn-TW Chinese Traditional (Hong Kong)


Table 6 - Supported Languages
Notes:
 Languages that are not listed are not supported.

12. Registry Keys


The following table explains how the value of ‘FreefallProtectionMode’ Policy key affects the HDD
freefall protection state and the ability of the user to make edits to the protection state. The default value is
‘TRUE’.

Registry
Policy
Keys

HKLM\Software\Policies\
Hewlett-Packard\HP 3D
DriveGuard

 Drives:
FreefallProtectionMode

Status: “Disabled”
FALSE
 Mobility Center:
Status: “Disabled”

 Drives:
Status: “Enabled”
TRUE  Mobility Center:
Status: “Enabled”

Table 7 - HKLM\Software\Policies Registry Keys


Notes:
 HP3DDG uses built-in Windows functions (RegNotify API) to monitor changes within the
“policy” registry hive area. Therefore, HP3DDG is notified of a change, pickup the new key /
value information, and apply the alterations within seconds from when an IT manager makes
a “policy” change.
 When the protection state is ‘Enabled’, the protected disks information will be written to
‘HKLM\Software\Hewlett-Packard\HP 3D DriveGuard\ProtectedDisks’ registry key (SSD’s are excluded
since they do not require protection). The ModelNumber and SerialNumber of each protected disk will
we written if available.

Figure 9 - ProtectedDisks Registry Key

HP 3D DriveGuard Functional Specification Page 23 of 35


Hewlett-Packard Company Confidential

The System tray icon is enabled by default by adding it to the Run registry key –
HKLM\Software\Microsoft\Windows\CurrentVersion\Run\AccelerometerSysTrayApplet
The default behaviour can be changed to make the system tray icon not visible on start-up by
removing this key.

The following registry keys are created and supported by HP3DDG deliverable at installation time
and are located at: HKLM\SYSTEM\CurrentControlSet\Services\Accelerometer\.

Default Policy
Type UI Element(s)
Key Name Value Control
Description
REG_DWOR
1 N/A No
D
Enum\Count
UNDEFINED / UNKNOWN.
REG_DWOR
1 N/A No
D
Enum\NextInstance
UNDEFINED / UNKNOWN.
REG_DWOR
1 N/A No
D
Parameters\
Controls if the accelerometer interrupts are to be cleared by
ClearInterruptInSoftware
software.
0 = Do not clear interrupts. 1 = Clear interrupts.
REG_DWOR
0 N/A No
Parameters\ D
CreateErrorLogEntries Controls if error log entries should be created.
0 = Do not create log entries. 1 = Create log entries.
REG_DWOR
1 N/A No
Parameters\ D
DisableFastParkOnLidOpen Controls if the “fast park when lid is open” option is enabled or
disabled. 0 = Feature Enabled. 1 = Feature Disabled.
REG_DWOR
1 N/A No
D
Parameters\Enabled Controls if the accelerometer driver should start up with HDD
Freefall protection enabled or disabled. 0 = Start with HDD FFP
Disabled. 1 = Start with HDD FFP Enabled.
REG_DWOR
10 N/A No
D
Parameters\ErrorLogLimit
Defines the size (# of entries) for the Error Log File. Supported
values can be in the range of ?? - ??.
REG_DWOR
20000 N/A No
Parameters\ D
ShockEventDurationLong Defines the default Shock Event Long Duration Time (in
milliseconds). Supported values can be in the range of ?? - ??.
REG_DWOR
2000 N/A No
D
Parameters\
ShockEventDurationShort Defines the default Shock Event Short Duration Time (in
milliseconds). Supported values can be in the range of ?? - ??.
Parameters\ REG_DWOR 1 N/A No
UseStandardModeOnly D

HP 3D DriveGuard Functional Specification Page 24 of 35


Hewlett-Packard Company Confidential

Controls if” standard mode only” should be used to park the heads.
0 = Do not use standard mode (then what is used?). 1 = Use
standard mode (What is this?).
REG_DWOR
1 Control Panel Applet No
D
Settings\SettingsCanChange Controls if the user is allowed to change settings. 0 = User cannot
change settings. 1 = User can change settings.
What settings does this affect?
REG_DWOR
45 N/A No
D
Settings\InstanceIndex
Index to keep track of the users and their settings.
Supported values can be in the range of ?? - ??.
REG_DWOR
0 N/A No
D
Statistics\ShocksDetected
Run-time count of the number of shock events detected since
installation. Supported values can be in the range of 0 - ??.

Table 8 - HKLM\System Registry Keys

13. Logging Support


The HP 3D DriveGuard provides support for logging to the Windows Event Log whenever the
protection state is enabled or disabled.
Use the Windows Event Viewer to view the entries as shown in the illustration below:

Figure 10 – Windows Event Log

HP 3D DriveGuard Functional Specification Page 25 of 35


Hewlett-Packard Company Confidential

14. Accelerometer IOCtl Interface


The Accelerometer Driver provides (12) IO Control Interfaces for other modules and applications
to call. These IOCtls are defined as follows:

IOCtl Name Description Used By


Used to notify the driver of
IOCTL_ACCELEROMETER_POWER_NOTIFI
the current system power HPService.exe
CATION
state.
Used to notify the driver that
IOCTL_ACCELEROMETER_USER_LOGON HPService.exe
a logon has occurred.
IOCTL_ACCELEROMETER_GET_XYZ Get XYZ Coordinates. N/A
IOCTL_ACCELEROMETER_INITIATE_XYZ_ Used by Applications to
N/A
EVENT register for XYZ Events.
IOCTL_ACCELEROMETER_TERMINATE_XY Used by Applications to
N/A
Z_EVENT unregister for XYZ Events.
Used by Applications to fetch
IOCTL_ACCELEROMETER_GET_XYZ_EVE
the XYZ data event N/A
NT_PROPERTY
properties.
Used by Applications to set
IOCTL_ACCELEROMETER_SET_XYZ_EVEN
the XYZ data event N/A
T_PROPERTY
properties.
IOCTL_ACCELEROMETER_REGISTER_FO
Used to register for events. HPDskFlt.sys
R_EVENTS
Used to perform command
IOCTL_ACCELEROMETER_PASS_THROUG
pass through to the AccelSensorAPI.dll
H
accelerometer device.
IOCTL_ACCELEROMETER_CLEAR_LOG_FI
Used to clear the log file. N/A
LE
IOCTL_ACCELEROMETER_SET_PROPERT Used to set accelerometer
N/A
Y properties.
IOCTL_ACCELEROMETER_GET_PROPERT Used to get accelerometer
N/A
Y properties.

Table 9 - Accelerometer IOCtls

The following sub-sections contain interface definitions for each of the IOCtls supported by the
Accelerometer Driver:

14.1 IOCTL_ACCELEROMETER_POWER_NOTIFICATION

This IOCtl is used by the caller to notify the driver about a user mode power event.

INPUT DATA
Parameter Value
OS provided value for the power event.
DWORD PowerState Possible values are:
TBD.
OUTPUT DATA

HP 3D DriveGuard Functional Specification Page 26 of 35


Hewlett-Packard Company Confidential

Parameter Value
Possible values are:
1 = Success
BOOL ReturnCode
0 = Operation failed or is pending, check
GetLastError() for more details.

14.2 IOCTL_ACCELEROMETER_USER_LOGON

This IOCtl is used by the caller to notify the driver that a user logon or logoff has occurred.

INPUT DATA
Parameter Value
SID String of the user who is logging On or
LPCWSTR SidString
Off.

OUTPUT DATA
Parameter Value
Possible values are:
1 = Success
BOOL ReturnCode
0 = Operation failed or is pending, check
GetLastError() for more details.

14.3 IOCTL_ACCELEROMETER_GET_XYZ

This IOCtl is used by the caller to get the X, Y, and Z axis motion data from the accelerometer
driver.

INPUT DATA
Parameter Value

OUTPUT DATA
Parameter Value
USHORT PBuffer[0] X axis data
USHORT PBuffer[1] Y axis data
USHORT PBuffer[2] Z axis data
Possible values are:
1 = Success
BOOL ReturnCode
0 = Operation failed or is pending, check
GetLastError() for more details.

14.4 IOCTL_ACCELEROMETER_INITIATE_XYZ_EVENT

This IOCtl is used by the caller to notify the driver to register for X, Y, Z events.

INPUT DATA

HP 3D DriveGuard Functional Specification Page 27 of 35


Hewlett-Packard Company Confidential

Parameter Value
ULONG ulhRegWindowHandle Dialog window handle

OUTPUT DATA
Parameter Value
Possible values are:
1 = Success
BOOL ReturnCode
0 = Operation failed or is pending, check
GetLastError() for more details.

14.5 IOCTL_ACCELEROMETER_TERMINATE_XYZ_EVENT

This IOCtl is used by the caller to notify the driver to unregister for X, Y, Z events.

INPUT DATA
Parameter Value
ULONG ulhRegWindowHandle Dialog window handle

OUTPUT DATA
Parameter Value
Possible values are:
1 = Success
BOOL ReturnCode
0 = Operation failed or is pending, check
GetLastError() for more details.

14.6 IOCTL_ACCELEROMETER_GET_XYZ_EVENT_PROPERTY

This IOCtl is used by the caller to fetch the X, Y, Z data event properties.

INPUT DATA
Parameter Value
ULONG ulOwnerWinHandle Dialog window handle
Possible values:
1 = ACCELEROMETER_EVENT_RATE_FLAG,
Enum
2 =
ACCELEROMETER_XYZ_EVENT_PROPERT
ACCELEROMETER_EVENT_ALLOWED_OSCILLATION_VALUE
Y_FLAGS PropertyFlag
,
3 = ACCELEROMETER_EVENT_AXIS_SETTINGS
ULONG ulXYZSampleDataRatePerSec;
Union Property ULONG ulXYZAllowedOscillationValue;
ULONG ulAxisSettings;

OUTPUT DATA
Parameter Value
ULONG ulXYZSampleDataRatePerSec;
Union Property ULONG ulXYZAllowedOscillationValue;
ULONG ulAxisSettings;

HP 3D DriveGuard Functional Specification Page 28 of 35


Hewlett-Packard Company Confidential

Possible values are:


1 = Success
BOOL ReturnCode
0 = Operation failed or is pending, check
GetLastError() for more details.

14.7 IOCTL_ACCELEROMETER_SET_XYZ_EVENT_PROPERTY

This IOCtl is used by the caller to set the X, Y, Z data event properties.

INPUT DATA
Parameter Value
ULONG ulOwnerWinHandle Dialog window handle
Possible values:
1 = ACCELEROMETER_EVENT_RATE_FLAG,
Enum
2 =
ACCELEROMETER_XYZ_EVENT_PROPERT
ACCELEROMETER_EVENT_ALLOWED_OSCILLATION_VALUE
Y_FLAGS PropertyFlag
,
3 = ACCELEROMETER_EVENT_AXIS_SETTINGS
ULONG ulXYZSampleDataRatePerSec;
Union Property ULONG ulXYZAllowedOscillationValue;
ULONG ulAxisSettings;

OUTPUT DATA
Parameter Value
Possible values are:
1 = Success
BOOL ReturnCode
0 = Operation failed or is pending, check
GetLastError() for more details.

14.8 IOCTL_ACCELEROMETER_REGISTER_FOR_EVENTS

This IOCtl is used by the caller to notify the driver to register for events.

INPUT DATA
Parameter Value
LIST_ENTRY ListEntry Need details for this item.
ACCELEROMETER_UNREGISTER_ROUTINE
Need details for this item.
UnRegisterRoutine
ACCELEROMETER_WRITELOGEVENT_ROUTINE
Need details for this item.
WriteLogEntryRoutine
ACCELEROMETER_DISKNOTIFICATION_ROUTINE
Need details for this item.
DiskNotificationRoutine
BOOLEAN QueueIrps Need details for this item.
BOOLEAN Disabled Need details for this item.
BOOLEAN StandardMode Need details for this item.
BOOLEAN Reserved Need details for this item.
KEVENT ShockEndEvent Need details for this item.
LONG DisksProtected Need details for this item.

HP 3D DriveGuard Functional Specification Page 29 of 35


Hewlett-Packard Company Confidential

LONG DisksNotProtected Need details for this item.


KEVENT ShockEvent Need details for this item.
LONG lDiskSupportInfoCount Need details for this item.
DRIVE_INFO_EX
MAX_SUPPORTED_DRIVES = 16
DriveSupportedInformation[MAX_SUPPORTE
D_DRIVES]
OUTPUT DATA
Parameter Value

Possible values are:


1 = Success
BOOL ReturnCode
0 = Operation failed or is pending,
check GetLastError() for more details.

14.9 IOCTL_ACCELEROMETER_PASS_THROUGH

This IOCtl is used by the caller to perform command pass through (send command and data
directly) to the accelerometer device.

INPUT DATA
Parameter Value
Possible values are:
BOOLEAN Write FALSE = Read
TRUE = Write
UCHAR Offset Byte Offset into device address space
Number of Bytes to read / write
ULONG ByteCount
Hardcoded to 1.
Number of Bytes written or read
UCHAR Bytes[1] Hardcoded to 1.
Why is this an input parameter?
OUTPUT DATA
Parameter Value
Byte Offset into device address space
UCHAR Offset
Why is this an output parameter?
Number of Bytes to read / write
ULONG ByteCount Hardcoded to 1.
Why is this an output parameter?
Number of Bytes written or read
UCHAR Bytes[1]
Hardcoded to 1.
Possible values are:
1 = Success
BOOL ReturnCode
0 = Operation failed or is pending, check
GetLastError() for more details.

This function doesn’t seem very inefficient since it’s hardcoded to perform just a 1 byte read or
write. Should we extend this to read or write multiple bytes (1 or more) and reduce the number of
ASL calls to get data?

HP 3D DriveGuard Functional Specification Page 30 of 35


Hewlett-Packard Company Confidential

14.10 IOCTL_ACCELEROMETER_CLEAR_LOG_FILE

This IOCtl is used by the caller to notify the driver to clear the log file. (What log file? I thought
kernel mode drivers could only do file i/o during init?)

INPUT DATA
Parameter Value

OUTPUT DATA
Parameter Value
Possible values are:
1 = Success
BOOL ReturnCode
0 = Operation failed or is pending, check
GetLastError() for more details.

14.11 IOCTL_ACCELEROMETER_SET_PROPERTY

This IOCtl is used by the caller to notify the driver to set an accelerometer property.

INPUT DATA
Parameter Value
Possible values are:
1 = ACCELEROMETER_FLAG_SENSITIVITY
2 = ACCELEROMETER_FLAG_ENABLED
3 = ACCELEROMETER_FLAG_LOGGING
Enum
4 = ACCELEROMETER_FLAG_DURATION_LONG
ACCELEROMETER_PROPERTY_FLAGS
5 = ACCELEROMETER_FLAG_DURATION_SHORT
PropertyFlag
6 = ACCELEROMETER_FLAG_PROTECTION
7 = ACCELEROMETER_FLAG_SETTINGS_CAN_CHANGE
8 = ACCELEROMETER_FLAG_RESERVED
9 = ???
10 = ACCELEROMETER_FLAG_PROTECTION_EX

ULONG Sensitivity;
BOOLEAN Enabled;
BOOLEAN Logging;
Union Property BOOLEAN SettingsCanChange;
ULONG Duration;
PROTECTION_INFO ProtectionCounts;
PROTECTION_INFO_EX MultiDriveProtection;

OUTPUT DATA
Parameter Value
Possible values are:
1 = Success
BOOL ReturnCode
0 = Operation failed or is pending, check
GetLastError() for more details.

14.12 IOCTL_ACCELEROMETER_GET_PROPERTY

This IOCtl is used by the caller to notify the driver to get an accelerometer property.

HP 3D DriveGuard Functional Specification Page 31 of 35


Hewlett-Packard Company Confidential

INPUT DATA
Parameter Value
Possible values are:
1 = ACCELEROMETER_FLAG_SENSITIVITY
2 = ACCELEROMETER_FLAG_ENABLED
3 = ACCELEROMETER_FLAG_LOGGING
Enum
4 = ACCELEROMETER_FLAG_DURATION_LONG
ACCELEROMETER_PROPERTY_FLAGS
5 = ACCELEROMETER_FLAG_DURATION_SHORT
PropertyFlag
6 = ACCELEROMETER_FLAG_PROTECTION
7 = ACCELEROMETER_FLAG_SETTINGS_CAN_CHANGE
8 = ACCELEROMETER_FLAG_RESERVED
9 = ???
10 = ACCELEROMETER_FLAG_PROTECTION_EX
ULONG Sensitivity;
BOOLEAN Enabled;
BOOLEAN Logging;
Union Property BOOLEAN SettingsCanChange;
ULONG Duration;
PROTECTION_INFO ProtectionCounts;
PROTECTION_INFO_EX MultiDriveProtection;

OUTPUT DATA

Parameter Value
ULONG Sensitivity;
BOOLEAN Enabled;
BOOLEAN Logging;
Union Property BOOLEAN SettingsCanChange;
ULONG Duration;
PROTECTION_INFO ProtectionCounts;
PROTECTION_INFO_EX MultiDriveProtection;
Possible values are:
1 = Success
BOOL ReturnCode
0 = Operation failed or is pending, check
GetLastError() for more details.

15. HP Private ACPI Control Methods


The Accelerometer KMD uses (5) ACPI ASL BIOS Methods to interact with the Accelerometer
device. These HP BIOS interfaces are a critical dependency for the HP3DDG solution. Since
these methods are not defined in HP WMI BIOS specification or any other identified reference
document they will be recorded here.

Each method is described in detail outlining its use and expected input/output data values.
Missing parameter or data values for either INPUT or OUTPUT must be interpreted as no
input/output is required or expected.

15.1 CLRI_METHOD

This method is used to clear the interrupts.

INPUT DATA
Parameter Value

HP 3D DriveGuard Functional Specification Page 32 of 35


Hewlett-Packard Company Confidential

ULONG Signature ACPI_EVAL_INPUT_BUFFER_SIGNATURE


UCHAR MethodName[4] “CLRI”
OUTPUT DATA
Parameter Value
ULONG Signature ACPI_EVAL_OUTPUT_BUFFER_SIGNATURE
ULONG Length Output buffer size
ULONG Count 1
USHORT Argument[0].Type ACPI_METHOD_ARGUMENT_INTEGER
USHORT Argument[0].DataLength sizeof (UCHAR)
ULONG Argument[0].Data[0] BIOS always return 0(zero)

15.2 ALRD_METHOD

This method is used to read data from accelerometer. Offset value determines which data buffer
to read.

INPUT DATA
Parameter Value
ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_SIGNATU
ULONG Signature
RE
UCHAR MthodName[4] “ALRD”
Offset of any device register per device
ULONG IntegerArgument
datasheet

OUTPUT DATA

Parameter Value
ULONG Signature ACPI_EVAL_OUTPUT_BUFFER_SIGNATURE
ULONG Length Output buffer size
ULONG Count 1
USHORT Argument[0].Type ACPI_METHOD_ARGUMENT_INTEGER
USHORT Argument[0].DataLength sizeof (UCHAR)
ULONG Argument[0].Data[0] Data

The Offset values are defined as follows.

Byte Offset Value(s) Description


0x28 – 0x29 X Coordinate
0x2A – 0x2B Y Coordinate
0x2C – 0x2D Z Coordinate

15.3 ALED_METHOD

This method will turn the Shock LED ON or OFF.

INPUT DATA
Parameter Value
ULONG Signature ACPI_EVAL_INPUT_BUFFER_COMPLEX_SIGNATURE
UCHAR MethodName[4] “ALED”
ULONG ArgumentCount 1
USHORT Argument[0].Type ACPI_METHOD_ARGUMENT_INTEGER
USHORT Argument[0].DataLength sizeof (UCHAR)
0 – Turn OFF LED
ULONG Argument[0].Argument
1 – Turn ON LED

HP 3D DriveGuard Functional Specification Page 33 of 35


Hewlett-Packard Company Confidential

OUTPUT DATA
Parameter Value

15.4 ALID_METHOD

This method reports the notebook Lid state

INPUT DATA
Parameter Value
ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_SIGNATU
ULONG Signature
RE
UCHAR MthodName[4] “ALID”
ULONG IntegerArgument Offset – 0x00
OUTPUT DATA
Parameter Value
ULONG Signature ACPI_EVAL_OUTPUT_BUFFER_SIGNATURE
ULONG Length Output buffer size
ULONG Count 1
USHORT Argument[0].Type ACPI_METHOD_ARGUMENT_INTEGER
USHORT Argument[0].DataLength sizeof (UCHAR)
0 – Lid Close
ULONG Argument[0].Data[0]
1 – Lid Open

15.5 ADSN_METHOD

This method reports a hard drive Signature. The output buffer must be big enough to store the
hard drive signature data.

INPUT DATA

Parameter Value
ULONG Signature ACPI_EVAL_INPUT_BUFFER_SIGNATURE
UCHAR MethodName[4] “ADSN”
OUTPUT DATA
Parameter Value
ULONG Signature ACPI_EVAL_OUTPUT_BUFFER_SIGNATURE
ULONG Length Output buffer size
ULONG Count 1
USHORT Argument[0].Type ACPI_METHOD_ARGUMENT_BUFFER
USHORT Argument[0].DataLength sizeof (UCHAR)* N
ULONG Argument[0].Data[N] Drive Signature – N Bytes

Note: This ASL method is used for testing purposes only.

15.6 ALWR_METHOD

This method is used to write data to accelerometer. Offset value determines where the data
buffer is written to.

HP 3D DriveGuard Functional Specification Page 34 of 35


Hewlett-Packard Company Confidential

INPUT DATA
Parameter Value
ULONG Signature ACPI_EVAL_INPUT_BUFFER_COMPLEX_SIGNATURE
UCHAR MethodName[4] “ALWR”
ULONG ArgumentCount 2
USHORT Argument[0].Type ACPI_METHOD_ARGUMENT_INTEGER
USHORT Argument[0].DataLength sizeof (UCHAR)
Offset of any device register per device
ULONG Argument[0].Data[N]
datasheet
USHORT Argument[1].Type ACPI_METHOD_ARGUMENT_INTEGER
USHORT Argument[1].DataLength sizeof (UCHAR)
ULONG Argument[1].Data[N] Data
OUTPUT DATA
Parameter Value

16. Security Risk Assessment


This is a new spec section being required to analyze deliverable data flow / control and perform
security risk assessments.
TBD.

HP 3D DriveGuard Functional Specification Page 35 of 35

You might also like