ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

classpnp.h File Reference
#include <ntdddisk.h>
#include <ntddcdrm.h>
#include <ntddtape.h>
#include <ntddscsi.h>
#include <ntddstor.h>
#include <stdio.h>
#include <scsi.h>

Go to the source code of this file.

Data Structures

struct  PDICTIONARY
struct  PCLASSPNP_SCAN_FOR_SPECIAL_INFO
struct  PSRB_HISTORY_ITEM
struct  PSRB_HISTORY
struct  GUIDREGINFO
struct  PCLASS_WMI_INFO
struct  PCLASS_DEV_INFO
struct  PCLASS_INIT_DATA
struct  PFILE_OBJECT_EXTENSION
struct  PCLASS_WORKING_SET
struct  PCLASS_INTERPRET_SENSE_INFO2
struct  PCLASS_DRIVER_EXTENSION
struct  PCOMMON_DEVICE_EXTENSION
struct  PPHYSICAL_DEVICE_EXTENSION
struct  PCLASS_POWER_OPTIONS
struct  PCLASS_POWER_CONTEXT
struct  PCOMPLETION_CONTEXT
struct  PCLASS_QUERY_WMI_REGINFO_EX_LIST
struct  PFUNCTIONAL_DEVICE_EXTENSION

Defines

#define _CLASS_
#define max(a, b)   (((a) > (b)) ? (a) : (b))
#define min(a, b)   (((a) < (b)) ? (a) : (b))
#define SRB_CLASS_FLAGS_LOW_PRIORITY   0x10000000
#define SRB_CLASS_FLAGS_PERSISTANT   0x20000000
#define SRB_CLASS_FLAGS_PAGING   0x40000000
#define SRB_CLASS_FLAGS_FREE_MDL   0x80000000
#define ASSERT_FDO(x)   ASSERT(((PCOMMON_DEVICE_EXTENSION) (x)->DeviceExtension)->IsFdo)
#define ASSERT_PDO(x)   ASSERT(!(((PCOMMON_DEVICE_EXTENSION) (x)->DeviceExtension)->IsFdo))
#define IS_CLEANUP_REQUEST(majorFunction)
#define DO_MCD(fdoExtension)
#define IS_SCSIOP_READ(opCode)
#define IS_SCSIOP_WRITE(opCode)
#define IS_SCSIOP_READWRITE(opCode)   (IS_SCSIOP_READ(opCode) || IS_SCSIOP_WRITE(opCode))
#define ADJUST_FUA_FLAG(fdoExt)
#define FREE_POOL(_PoolPtr)
#define CLASS_TAG_AUTORUN_DISABLE   'ALcS'
#define CLASS_TAG_FILE_OBJECT_EXTENSION   'FLcS'
#define CLASS_TAG_MEDIA_CHANGE_DETECTION   'MLcS'
#define CLASS_TAG_MOUNT   'mLcS'
#define CLASS_TAG_RELEASE_QUEUE   'qLcS'
#define CLASS_TAG_POWER   'WLcS'
#define CLASS_TAG_WMI   'wLcS'
#define CLASS_TAG_FAILURE_PREDICT   'fLcS'
#define CLASS_TAG_DEVICE_CONTROL   'OIcS'
#define CLASS_TAG_MODE_DATA   'oLcS'
#define CLASS_TAG_MULTIPATH   'mPcS'
#define MAXIMUM_RETRIES   4
#define CLASS_DRIVER_EXTENSION_KEY   ((PVOID) ClassInitialize)
#define NO_REMOVE   0
#define REMOVE_PENDING   1
#define REMOVE_COMPLETE   2
#define ClassAcquireRemoveLock(devobj, tag)   ClassAcquireRemoveLockEx(devobj, tag, __FILE__, __LINE__)
#define TRY
#define LEAVE   goto __tryLabel;
#define FINALLY   __tryLabel:
#define DebugPrint(x)
#define DEBUG_BUFFER_LENGTH   256
#define START_UNIT_TIMEOUT   (60 * 4)
#define MEDIA_CHANGE_DEFAULT_TIME   1
#define MEDIA_CHANGE_TIMEOUT_TIME   300
#define ClasspAllocateSrb(ext)
#define ClasspFreeSrb(ext, srb)
#define SET_FLAG(Flags, Bit)   ((Flags) |= (Bit))
#define CLEAR_FLAG(Flags, Bit)   ((Flags) &= ~(Bit))
#define TEST_FLAG(Flags, Bit)   (((Flags) & (Bit)) != 0)
#define CLASS_WORKING_SET_MAXIMUM   2048
#define CLASS_INTERPRET_SENSE_INFO2_MAXIMUM_HISTORY_COUNT   30000
#define CLASS_SPECIAL_DISABLE_SPIN_DOWN   0x00000001
#define CLASS_SPECIAL_DISABLE_SPIN_UP   0x00000002
#define CLASS_SPECIAL_NO_QUEUE_LOCK   0x00000008
#define CLASS_SPECIAL_DISABLE_WRITE_CACHE   0x00000010
#define CLASS_SPECIAL_CAUSE_NOT_REPORTABLE_HACK   0x00000020
#define CLASS_SPECIAL_DISABLE_WRITE_CACHE_NOT_SUPPORTED   0x00000040
#define CLASS_SPECIAL_MODIFY_CACHE_UNSUCCESSFUL   0x00000040
#define CLASS_SPECIAL_FUA_NOT_SUPPORTED   0x00000080
#define CLASS_SPECIAL_VALID_MASK   0x000000FB
#define CLASS_SPECIAL_RESERVED   (~CLASS_SPECIAL_VALID_MASK)
#define DEV_WRITE_CACHE   0x00000001
#define DEV_USE_SCSI1   0x00000002
#define DEV_SAFE_START_UNIT   0x00000004
#define DEV_NO_12BYTE_CDB   0x00000008
#define DEV_POWER_PROTECTED   0x00000010
#define DEV_USE_16BYTE_CDB   0x00000020
#define GUID_CLASSPNP_QUERY_REGINFOEX   {0x00e34b11, 0x2444, 0x4745, {0xa5, 0x3d, 0x62, 0x01, 0x00, 0xcd, 0x82, 0xf7}}
#define GUID_CLASSPNP_SENSEINFO2   {0x509a8c5f, 0x71d7, 0x48f6, {0x82, 0x1e, 0x17, 0x3c, 0x49, 0xbf, 0x2f, 0x18}}
#define GUID_CLASSPNP_WORKING_SET   {0x105701b0, 0x9e9b, 0x47cb, {0x97, 0x80, 0x81, 0x19, 0x8a, 0xf7, 0xb5, 0x24}}
#define DEFAULT_FAILURE_PREDICTION_PERIOD   60 * 60 * 1
#define MAXIMUM_RETRY_FOR_SINGLE_IO_IN_100NS_UNITS   (0x3b9aca00)

Typedefs

typedef enum
_MEDIA_CHANGE_DETECTION_STATE * 
PMEDIA_CHANGE_DETECTION_STATE
typedef enum _CLASS_DEBUG_LEVEL * PCLASS_DEBUG_LEVEL
typedef enum
FAILURE_PREDICTION_METHOD
PFAILURE_PREDICTION_METHOD
typedef struct
_CLASS_PRIVATE_PDO_DATA 
CLASS_PRIVATE_PDO_DATA
typedef struct
_CLASS_PRIVATE_PDO_DATA * 
PCLASS_PRIVATE_PDO_DATA
typedef struct
_CLASS_PRIVATE_COMMON_DATA 
CLASS_PRIVATE_COMMON_DATA
typedef struct
_CLASS_PRIVATE_COMMON_DATA * 
PCLASS_PRIVATE_COMMON_DATA
typedef NTSTATUS(NTAPIPCLASS_POWER_DEVICE )(_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp)
typedef struct GUIDREGINFOPGUIDREGINFO

Enumerations

enum  MEDIA_CHANGE_DETECTION_STATE { MediaUnknown, MediaPresent, MediaNotPresent, MediaUnavailable }
enum  CLASS_DEBUG_LEVEL {
  ClassDebugError = 0, ClassDebugWarning = 1, ClassDebugTrace = 2, ClassDebugInfo = 3,
  ClassDebugMediaLocks = 8, ClassDebugMCN = 9, ClassDebugDelayedRetry = 10, ClassDebugSenseInfo = 11,
  ClassDebugRemoveLock = 12, ClassDebugExternal4 = 13, ClassDebugExternal3 = 14, ClassDebugExternal2 = 15,
  ClassDebugExternal1 = 16
}
enum  CLASSENABLEDISABLEFUNCTION { EventGeneration, DataBlockCollection }
enum  FAILURE_PREDICTION_METHOD { FailurePredictionNone = 0, FailurePredictionIoctl, FailurePredictionSmart, FailurePredictionSense }
enum  CLASS_POWER_DOWN_STATE {
  PowerDownDeviceInitial, PowerDownDeviceLocked, PowerDownDeviceStopped, PowerDownDeviceOff,
  PowerDownDeviceUnlocked
}
enum  CLASS_POWER_DOWN_STATE2 {
  PowerDownDeviceInitial2, PowerDownDeviceLocked2, PowerDownDeviceFlushed2, PowerDownDeviceStopped2,
  PowerDownDeviceOff2, PowerDownDeviceUnlocked2
}
enum  CLASS_POWER_UP_STATE {
  PowerUpDeviceInitial, PowerUpDeviceLocked, PowerUpDeviceOn, PowerUpDeviceStarted,
  PowerUpDeviceUnlocked
}

Functions

static ULONG CountOfSetBitsUChar (UCHAR _X)
static ULONG CountOfSetBitsULong (ULONG _X)
static ULONG CountOfSetBitsULong32 (ULONG32 _X)
static ULONG CountOfSetBitsULong64 (ULONG64 _X)
static ULONG CountOfSetBitsUlongPtr (ULONG_PTR _X)
 _IRQL_requires_max_ (DISPATCH_LEVEL) typedef VOID(NTAPI *PCLASS_ERROR)(_In_ PDEVICE_OBJECT DeviceObject = NULL
 _IRQL_requires_max_ (PASSIVE_LEVEL) typedef NTSTATUS(NTAPI *PCLASS_ADD_DEVICE)(_In_ PDRIVER_OBJECT DriverObject = = 0
 _IRQL_requires_ (DISPATCH_LEVEL) typedef VOID(NTAPI *PCLASS_TICK)(_In_ PDEVICE_OBJECT DeviceObject)
_In_ PIRP _In_ ULONG _In_ ULONG _Out_writes_bytes_ (BufferAvail) PUCHAR Buffer)
_In_ PIRP _In_ ULONG _In_ ULONG _In_reads_bytes_ (BufferSize) PUCHAR Buffer)
_In_ PIRP _In_ ULONG _In_
ULONG _In_ ULONG _In_ ULONG 
_In_reads_ (_Inexpressible_(max(InBufferSize, OutBufferSize))) PUCHAR Buffer)
_In_opt_ PIRP _In_
PSCSI_REQUEST_BLOCK _In_ UCHAR
_In_ ULONG _In_ ULONG _In_opt_
SRB_HISTORY _Out_ NTSTATUS
_Out_ 
_Deref_out_range_ (0, MAXIMUM_RETRY_FOR_SINGLE_IO_IN_100NS_UNITS) LONGLONG *RetryIn100nsUnits)
 _Pre_equal_to_ (RequestHistory->TotalHistoryCount) _Out_range_(0
RequestHistory
TotalHistoryCount typedef 
VOID (NTAPI *PCLASS_COMPRESS_RETRY_HISTORY_DATA)(_In_ PDEVICE_OBJECT DeviceObject
 C_ASSERT ((MAXULONG-sizeof(SRB_HISTORY))/30000 >=sizeof(SRB_HISTORY_ITEM))
_In_z_ PCCHAR _In_
PDEVICE_OBJECT _In_ BOOLEAN
_Outptr_result_nullonfailure_
_At_
DeviceObject (Mem) __drv_aliasesMem) PDEVICE_OBJECT *DeviceObject
_Must_inspect_result_
SCSIPORTAPI NTSTATUS NTAPI 
ClassReadDriveCapacity (_In_ PDEVICE_OBJECT DeviceObject)
SCSIPORTAPI VOID NTAPI ClassReleaseQueue (_In_ PDEVICE_OBJECT DeviceObject)
SCSIPORTAPI VOID NTAPI ClassSplitRequest (_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp, _In_ ULONG MaximumBytes)
SCSIPORTAPI NTSTATUS NTAPI ClassDeviceControl (_In_ PDEVICE_OBJECT DeviceObject, _Inout_ PIRP Irp)
SCSIPORTAPI NTSTATUS NTAPI ClassIoComplete (PDEVICE_OBJECT DeviceObject, PIRP Irp, PVOID Context)
SCSIPORTAPI NTSTATUS NTAPI ClassIoCompleteAssociated (PDEVICE_OBJECT DeviceObject, PIRP Irp, PVOID Context)
SCSIPORTAPI BOOLEAN NTAPI ClassInterpretSenseInfo (_In_ PDEVICE_OBJECT DeviceObject, _In_ PSCSI_REQUEST_BLOCK Srb, _In_ UCHAR MajorFunctionCode, _In_ ULONG IoDeviceCode, _In_ ULONG RetryCount, _Out_ NTSTATUS *Status, _Out_opt_ _Deref_out_range_(0, 100) ULONG *RetryInterval)
VOID NTAPI ClassSendDeviceIoControlSynchronous (_In_ ULONG IoControlCode, _In_ PDEVICE_OBJECT TargetDeviceObject, _Inout_updates_opt_(_Inexpressible_(max(InputBufferLength, OutputBufferLength))) PVOID Buffer, _In_ ULONG InputBufferLength, _In_ ULONG OutputBufferLength, _In_ BOOLEAN InternalDeviceIoControl, _Out_ PIO_STATUS_BLOCK IoStatus)
SCSIPORTAPI NTSTATUS NTAPI ClassSendIrpSynchronous (_In_ PDEVICE_OBJECT TargetDeviceObject, _In_ PIRP Irp)
SCSIPORTAPI NTSTATUS NTAPI ClassForwardIrpSynchronous (_In_ PCOMMON_DEVICE_EXTENSION CommonExtension, _In_ PIRP Irp)
SCSIPORTAPI NTSTATUS NTAPI ClassSendSrbSynchronous (_In_ PDEVICE_OBJECT DeviceObject, _Inout_ PSCSI_REQUEST_BLOCK Srb, _In_reads_bytes_opt_(BufferLength) PVOID BufferAddress, _In_ ULONG BufferLength, _In_ BOOLEAN WriteToDevice)
SCSIPORTAPI NTSTATUS NTAPI ClassSendSrbAsynchronous (_In_ PDEVICE_OBJECT DeviceObject, _Inout_ PSCSI_REQUEST_BLOCK Srb, _In_ PIRP Irp, _In_reads_bytes_opt_(BufferLength) __drv_aliasesMem PVOID BufferAddress, _In_ ULONG BufferLength, _In_ BOOLEAN WriteToDevice)
SCSIPORTAPI NTSTATUS NTAPI ClassBuildRequest (_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp)
SCSIPORTAPI ULONG NTAPI ClassModeSense (_In_ PDEVICE_OBJECT DeviceObject, _In_reads_bytes_(Length) PCHAR ModeSenseBuffer, _In_ ULONG Length, _In_ UCHAR PageMode)
SCSIPORTAPI PVOID NTAPI ClassFindModePage (_In_reads_bytes_(Length) PCHAR ModeSenseBuffer, _In_ ULONG Length, _In_ UCHAR PageMode, _In_ BOOLEAN Use6Byte)
SCSIPORTAPI NTSTATUS NTAPI ClassInternalIoControl (PDEVICE_OBJECT DeviceObject, PIRP Irp)
SCSIPORTAPI VOID ClassDebugPrint (_In_ CLASS_DEBUG_LEVEL DebugPrintLevel, _In_z_ PCCHAR DebugMessage,...)
SCSIPORTAPI VOID NTAPI ClassCompleteRequest (_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp, _In_ CCHAR PriorityBoost)
SCSIPORTAPI VOID NTAPI ClassReleaseRemoveLock (_In_ PDEVICE_OBJECT DeviceObject, PIRP Tag)
SCSIPORTAPI ULONG NTAPI ClassAcquireRemoveLockEx (_In_ PDEVICE_OBJECT DeviceObject, PVOID Tag, _In_ PCSTR File, _In_ ULONG Line)
_In_ PCHAR _In_ ULONG _In_reads_bytes_opt_ (InquiryDataLength) PINQUIRYDATA InquiryData
SCSIPORTAPI NTSTATUS NTAPI ClassWmiCompleteRequest (_In_ PDEVICE_OBJECT DeviceObject, _Inout_ PIRP Irp, _In_ NTSTATUS Status, _In_ ULONG BufferUsed, _In_ CCHAR PriorityBoost)
_In_ LPGUID _In_ ULONG _In_ ULONG _In_reads_bytes_ (EventDataSize) PVOID EventData)
SCSIPORTAPI VOID NTAPI ClassResetMediaChangeTimer (_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension)
SCSIPORTAPI PVPB NTAPI ClassGetVpb (_In_ PDEVICE_OBJECT DeviceObject)
SCSIPORTAPI NTSTATUS NTAPI ClassSpinDownPowerHandler (_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp)
NTSTATUS NTAPI ClassStopUnitPowerHandler (_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp)
SCSIPORTAPI VOID NTAPI ClassReleaseChildLock (_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension)
NTSTATUS NTAPI ClassSignalCompletion (PDEVICE_OBJECT DeviceObject, PIRP Irp, PKEVENT Event)
VOID NTAPI ClassSendStartUnit (_In_ PDEVICE_OBJECT DeviceObject)
SCSIPORTAPI NTSTATUS NTAPI ClassAsynchronousCompletion (PDEVICE_OBJECT DeviceObject, PIRP Irp, PVOID Event)
SCSIPORTAPI VOID NTAPI ClassCheckMediaState (_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension)
SCSIPORTAPI NTSTATUS NTAPI ClassCheckVerifyComplete (PDEVICE_OBJECT DeviceObject, PIRP Irp, PVOID Context)
_In_ const GUID _In_ ULONG _In_reads_bytes_opt_ (ExtraDataSize) PVOID ExtraData)
static __inline BOOLEAN PORT_ALLOCATED_SENSE (_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension, _In_ PSCSI_REQUEST_BLOCK Srb)
static __inline VOID FREE_PORT_ALLOCATED_SENSE_BUFFER (_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension, _In_ PSCSI_REQUEST_BLOCK Srb)

Variables

RequestHistory
TotalHistoryCount typedef
_Inout_ PSRB_HISTORY 
RequestHistory
_In_ PSCSI_REQUEST_BLOCK Srb
_In_ PSCSI_REQUEST_BLOCK _Out_
NTSTATUS
Status
_In_ PSCSI_REQUEST_BLOCK _Out_
NTSTATUS _Inout_ BOOLEAN
Retry
_In_ PDEVICE_OBJECT Pdo
_In_ UCHAR Type
_In_ PIRP Irp
_In_ BUS_QUERY_ID_TYPE IdType
_In_ BUS_QUERY_ID_TYPE _In_
PUNICODE_STRING 
IdString
_In_ PDEVICE_CAPABILITIES Capabilities
_Out_ ULONGRegFlags
_Out_ ULONG _Out_ PUNICODE_STRING Name
_Out_ ULONG _Out_
PUNICODE_STRING _Out_
PUNICODE_STRING 
MofResourceName
_In_ PIRP _In_ ULONG GuidIndex
_In_ PIRP _In_ ULONG _In_ ULONG BufferAvail
_In_ PIRP _In_ ULONG _In_ ULONG BufferSize
_In_ PIRP _In_ ULONG _In_ ULONG DataItemId
_In_ PIRP _In_ ULONG _In_ ULONG MethodId
_In_ PIRP _In_ ULONG _In_
ULONG _In_ ULONG 
InBufferSize
_In_ PIRP _In_ ULONG _In_
ULONG _In_ ULONG _In_ ULONG 
OutBufferSize
_In_ PIRP _In_ ULONG _In_
CLASSENABLEDISABLEFUNCTION 
Function
_In_ PIRP _In_ ULONG _In_
CLASSENABLEDISABLEFUNCTION
_In_ BOOLEAN 
Enable
_In_opt_ PIRP OriginalRequest
_In_opt_ PIRP _In_
PSCSI_REQUEST_BLOCK _In_ UCHAR 
MajorFunctionCode
_In_opt_ PIRP _In_
PSCSI_REQUEST_BLOCK _In_ UCHAR
_In_ ULONG 
IoDeviceCode
_In_opt_ PIRP _In_
PSCSI_REQUEST_BLOCK _In_ UCHAR
_In_ ULONG _In_ ULONG 
PreviousRetryCount
_In_ PVOID Argument2
_In_ PVOID _In_ PCLASS_INIT_DATA InitializationData
_In_ LPGUID Guid
_In_ LPGUID _In_ PVOID Data
_In_z_ PCCHAR ObjectNameBuffer
_In_z_ PCCHAR _In_ PDEVICE_OBJECT LowerDeviceObject
_In_z_ PCCHAR _In_
PDEVICE_OBJECT _In_ BOOLEAN 
IsFdo
_In_ BOOLEAN Release
_In_ ULONG NumberElements
_In_ PSTORAGE_PROPERTY_ID PropertyId
_In_ PSTORAGE_PROPERTY_ID
_Outptr_
PSTORAGE_DESCRIPTOR_HEADER * 
Descriptor
_In_ BOOLEAN AcquireChildLock
_In_ PCHAR DeviceName
_In_ PCHAR _In_ ULONG DeviceNumber
_In_ PCHAR _In_ ULONG _In_ ULONG InquiryDataLength
_In_ LPGUID _In_ ULONG InstanceIndex
_In_ LPGUID _In_ ULONG _In_ ULONG EventDataSize
_In_ PUCHAR EventPrefix
_In_ BOOLEAN AllowDriveToSleep
_In_ FAILURE_PREDICTION_METHOD FailurePredictionMethod
_In_ FAILURE_PREDICTION_METHOD
_In_ ULONG 
PollingPeriod
_In_ ULONG _In_ BOOLEAN LogError
_In_ ULONG _In_ BOOLEAN _In_ ULONG UniqueErrorValue
_In_ ULONG _In_ BOOLEAN _In_
ULONG _In_ UCHAR 
PathId
_In_ ULONG _In_ BOOLEAN _In_
ULONG _In_ UCHAR _In_ UCHAR 
TargetId
_In_ ULONG _In_ BOOLEAN _In_
ULONG _In_ UCHAR _In_ UCHAR
_In_ UCHAR 
Lun
_In_ UCHAR RemoveType
_In_ MEDIA_CHANGE_DETECTION_STATE State
_In_
MEDIA_CHANGE_DETECTION_STATE
_In_ BOOLEAN 
Wait
_In_opt_ PWSTR SubkeyName
_In_opt_ PWSTR _In_ PWSTR ParameterName
_In_opt_ PWSTR _In_ PWSTR
_Inout_ PULONG 
ParameterValue
_In_ PFILE_OBJECT FileObject
_In_ const GUID _In_ ULONG ExtraDataSize
_In_ CLASSPNP_SCAN_FOR_SPECIAL_INFO DeviceList []

Generated on Wed May 23 2012 05:27:28 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.