Data Structures |
| struct | PMEDIA_CHANGE_DETECTION_INFO |
| struct | PFAILURE_PREDICTION_INFO |
| struct | PCLASS_RETRY_INFO |
| struct | PCSCAN_LIST |
| struct | PCLASS_ERROR_LOG_DATA |
| struct | PTRANSFER_PACKET |
| struct | PCLASS_PRIVATE_FDO_DATA |
Defines |
| #define | CLASSP_REG_SUBKEY_NAME (L"Classpnp") |
| #define | CLASSP_REG_HACK_VALUE_NAME (L"HackMask") |
| #define | CLASSP_REG_MMC_DETECTION_VALUE_NAME (L"MMCDetectionState") |
| #define | CLASSP_REG_WRITE_CACHE_VALUE_NAME (L"WriteCacheEnableOverride") |
| #define | CLASSP_REG_PERF_RESTORE_VALUE_NAME (L"RestorePerfAtCount") |
| #define | CLASSP_REG_REMOVAL_POLICY_VALUE_NAME (L"UserRemovalPolicy") |
| #define | CLASS_PERF_RESTORE_MINIMUM (0x10) |
| #define | CLASS_ERROR_LEVEL_1 (0x4) |
| #define | CLASS_ERROR_LEVEL_2 (0x8) |
| #define | FDO_HACK_CANNOT_LOCK_MEDIA (0x00000001) |
| #define | FDO_HACK_GESN_IS_BAD (0x00000002) |
| #define | FDO_HACK_NO_SYNC_CACHE (0x00000004) |
| #define | FDO_HACK_VALID_FLAGS (0x00000007) |
| #define | FDO_HACK_INVALID_FLAGS (~FDO_HACK_VALID_FLAGS) |
| #define | NUM_LOCKMEDIAREMOVAL_RETRIES 1 |
| #define | NUM_MODESENSE_RETRIES 1 |
| #define | NUM_DRIVECAPACITY_RETRIES 1 |
| #define | CLASS_FILE_OBJECT_EXTENSION_KEY 'eteP' |
| #define | CLASSP_VOLUME_VERIFY_CHECKED 0x34 |
| #define | CLASS_TAG_PRIVATE_DATA 'CPcS' |
| #define | CLASS_TAG_PRIVATE_DATA_FDO 'FPcS' |
| #define | CLASS_TAG_PRIVATE_DATA_PDO 'PPcS' |
| #define | NUM_ERROR_LOG_ENTRIES 16 |
| #define | MIN_INITIAL_TRANSFER_PACKETS 1 |
| #define | MIN_WORKINGSET_TRANSFER_PACKETS_Consumer 4 |
| #define | MAX_WORKINGSET_TRANSFER_PACKETS_Consumer 64 |
| #define | MIN_WORKINGSET_TRANSFER_PACKETS_Server 64 |
| #define | MAX_WORKINGSET_TRANSFER_PACKETS_Server 1024 |
| #define | MIN_WORKINGSET_TRANSFER_PACKETS_Enterprise 256 |
| #define | MAX_WORKINGSET_TRANSFER_PACKETS_Enterprise 2048 |
| #define | MIN(a, b) ((a) < (b) ? (a) : (b)) |
| #define | MAX(a, b) ((a) > (b) ? (a) : (b)) |
| #define | NOT_READY_RETRY_INTERVAL 10 |
| #define | MINIMUM_RETRY_UNITS ((LONGLONG)32) |
Typedefs |
| typedef enum MEDIA_LOCK_TYPE * | PMEDIA_LOCK_TYPE |
typedef enum
_CLASS_DETECTION_STATE * | PCLASS_DETECTION_STATE |
Enumerations |
| enum | MEDIA_LOCK_TYPE { SimpleMediaLock,
SecureMediaLock,
InternalMediaLock
} |
| enum | CLASS_DETECTION_STATE { ClassDetectionUnknown = 0,
ClassDetectionUnsupported = 1,
ClassDetectionSupported = 2
} |
Functions |
| static VOID | SimpleInitSlistHdr (SINGLE_LIST_ENTRY *SListHdr) |
| static VOID | SimplePushSlist (SINGLE_LIST_ENTRY *SListHdr, SINGLE_LIST_ENTRY *SListEntry) |
| static SINGLE_LIST_ENTRY * | SimplePopSlist (SINGLE_LIST_ENTRY *SListHdr) |
| static BOOLEAN | SimpleIsSlistEmpty (SINGLE_LIST_ENTRY *SListHdr) |
| NTSTATUS | DriverEntry (IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath) |
| VOID | ClassUnload (IN PDRIVER_OBJECT DriverObject) |
| NTSTATUS | ClassCreateClose (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| NTSTATUS | ClasspCreateClose (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| VOID | ClasspCleanupProtectedLocks (IN PFILE_OBJECT_EXTENSION FsContext) |
| NTSTATUS | ClasspEjectionControl (IN PDEVICE_OBJECT Fdo, IN PIRP Irp, IN MEDIA_LOCK_TYPE LockType, IN BOOLEAN Lock) |
| NTSTATUS | ClassReadWrite (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| NTSTATUS | ClassDeviceControlDispatch (PDEVICE_OBJECT DeviceObject, PIRP Irp) |
| NTSTATUS | ClassDeviceControl (PDEVICE_OBJECT DeviceObject, PIRP Irp) |
| NTSTATUS | ClassDispatchPnp (PDEVICE_OBJECT DeviceObject, PIRP Irp) |
| NTSTATUS | ClassPnpStartDevice (IN PDEVICE_OBJECT DeviceObject) |
| NTSTATUS | ClassInternalIoControl (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| NTSTATUS | ClassShutdownFlush (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| NTSTATUS | ClassSystemControl (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| NTSTATUS | ClassAddDevice (IN PDRIVER_OBJECT DriverObject, IN OUT PDEVICE_OBJECT PhysicalDeviceObject) |
| NTSTATUS | ClasspSendSynchronousCompletion (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context) |
| VOID | RetryRequest (PDEVICE_OBJECT DeviceObject, PIRP Irp, PSCSI_REQUEST_BLOCK Srb, BOOLEAN Associated, ULONG RetryInterval) |
| NTSTATUS | ClassIoCompletion (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context) |
| NTSTATUS | ClassPnpQueryFdoRelations (IN PDEVICE_OBJECT Fdo, IN PIRP Irp) |
| NTSTATUS | ClassRetrieveDeviceRelations (IN PDEVICE_OBJECT Fdo, IN DEVICE_RELATION_TYPE RelationType, OUT PDEVICE_RELATIONS *DeviceRelations) |
| NTSTATUS | ClassGetPdoId (IN PDEVICE_OBJECT Pdo, IN BUS_QUERY_ID_TYPE IdType, IN PUNICODE_STRING IdString) |
| NTSTATUS | ClassQueryPnpCapabilities (IN PDEVICE_OBJECT PhysicalDeviceObject, IN PDEVICE_CAPABILITIES Capabilities) |
| VOID | ClasspStartIo (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| NTSTATUS | ClasspPagingNotificationCompletion (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PDEVICE_OBJECT RealDeviceObject) |
| NTSTATUS | ClasspMediaChangeCompletion (PDEVICE_OBJECT DeviceObject, PIRP Irp, PVOID Context) |
| PFILE_OBJECT_EXTENSION | ClasspGetFsContext (IN PCOMMON_DEVICE_EXTENSION CommonExtension, IN PFILE_OBJECT FileObject) |
| NTSTATUS | ClasspMcnControl (IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension, IN PIRP Irp, IN PSCSI_REQUEST_BLOCK Srb) |
| VOID | ClasspRegisterMountedDeviceInterface (IN PDEVICE_OBJECT DeviceObject) |
| NTSTATUS | ClasspDisableTimer (PDEVICE_OBJECT DeviceObject) |
| NTSTATUS | ClasspEnableTimer (PDEVICE_OBJECT DeviceObject) |
| VOID | InitializeDictionary (IN PDICTIONARY Dictionary) |
| BOOLEAN | TestDictionarySignature (IN PDICTIONARY Dictionary) |
| NTSTATUS | AllocateDictionaryEntry (IN PDICTIONARY Dictionary, IN ULONGLONG Key, IN ULONG Size, IN ULONG Tag, OUT PVOID *Entry) |
| PVOID | GetDictionaryEntry (IN PDICTIONARY Dictionary, IN ULONGLONG Key) |
| VOID | FreeDictionaryEntry (IN PDICTIONARY Dictionary, IN PVOID Entry) |
| NTSTATUS | ClasspAllocateReleaseRequest (IN PDEVICE_OBJECT Fdo) |
| VOID | ClasspFreeReleaseRequest (IN PDEVICE_OBJECT Fdo) |
| NTSTATUS | ClassReleaseQueueCompletion (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context) |
| VOID | ClasspReleaseQueue (IN PDEVICE_OBJECT DeviceObject, IN PIRP ReleaseQueueIrp) |
| VOID | ClasspDisablePowerNotification (PFUNCTIONAL_DEVICE_EXTENSION FdoExtension) |
| NTSTATUS | ClassDispatchPower (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| NTSTATUS | ClassMinimalPowerHandler (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| VOID | ClassAddChild (IN PFUNCTIONAL_DEVICE_EXTENSION Parent, IN PPHYSICAL_DEVICE_EXTENSION Child, IN BOOLEAN AcquireLock) |
| PPHYSICAL_DEVICE_EXTENSION | ClassRemoveChild (IN PFUNCTIONAL_DEVICE_EXTENSION Parent, IN PPHYSICAL_DEVICE_EXTENSION Child, IN BOOLEAN AcquireLock) |
| VOID | ClasspRetryDpcTimer (IN PCLASS_PRIVATE_FDO_DATA FdoData) |
| VOID | ClasspRetryRequestDpc (IN PKDPC Dpc, IN PDEVICE_OBJECT DeviceObject, IN PVOID Arg1, IN PVOID Arg2) |
| VOID | ClassFreeOrReuseSrb (IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension, IN PSCSI_REQUEST_BLOCK Srb) |
| VOID | ClassRetryRequest (IN PDEVICE_OBJECT SelfDeviceObject, IN PIRP Irp, IN LARGE_INTEGER TimeDelta100ns) |
| VOID | ClasspBuildRequestEx (IN PFUNCTIONAL_DEVICE_EXTENSION Fdo, IN PIRP Irp, IN PSCSI_REQUEST_BLOCK Srb) |
| NTSTATUS | ClasspAllocateReleaseQueueIrp (IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension) |
| NTSTATUS | ClasspInitializeGesn (IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension, IN PMEDIA_CHANGE_DETECTION_INFO Info) |
| VOID | ClasspSendNotification (IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension, IN const GUID *Guid, IN ULONG ExtraDataSize, IN PVOID ExtraData) |
| VOID | ClassSendEjectionNotification (IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension) |
| VOID | ClasspScanForSpecialInRegistry (IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension) |
| VOID | ClasspScanForClassHacks (IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension, IN ULONG_PTR Data) |
| NTSTATUS | ClasspInitializeHotplugInfo (IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension) |
| VOID | ClasspPerfIncrementErrorCount (IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension) |
| VOID | ClasspPerfIncrementSuccessfulIo (IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension) |
| PTRANSFER_PACKET | NewTransferPacket (PDEVICE_OBJECT Fdo) |
| VOID | DestroyTransferPacket (PTRANSFER_PACKET Pkt) |
| VOID | EnqueueFreeTransferPacket (PDEVICE_OBJECT Fdo, PTRANSFER_PACKET Pkt) |
| PTRANSFER_PACKET | DequeueFreeTransferPacket (PDEVICE_OBJECT Fdo, BOOLEAN AllocIfNeeded) |
| VOID | SetupReadWriteTransferPacket (PTRANSFER_PACKET pkt, PVOID Buf, ULONG Len, LARGE_INTEGER DiskLocation, PIRP OriginalIrp) |
| VOID | SubmitTransferPacket (PTRANSFER_PACKET Pkt) |
| NTSTATUS | TransferPktComplete (IN PDEVICE_OBJECT NullFdo, IN PIRP Irp, IN PVOID Context) |
| VOID | ServiceTransferRequest (PDEVICE_OBJECT Fdo, PIRP Irp) |
| VOID | TransferPacketRetryTimerDpc (IN PKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2) |
| BOOLEAN | InterpretTransferPacketError (PTRANSFER_PACKET Pkt) |
| BOOLEAN | RetryTransferPacket (PTRANSFER_PACKET Pkt) |
| VOID | EnqueueDeferredClientIrp (PCLASS_PRIVATE_FDO_DATA FdoData, PIRP Irp) |
| PIRP | DequeueDeferredClientIrp (PCLASS_PRIVATE_FDO_DATA FdoData) |
| VOID | InitLowMemRetry (PTRANSFER_PACKET Pkt, PVOID BufPtr, ULONG Len, LARGE_INTEGER TargetLocation) |
| BOOLEAN | StepLowMemRetry (PTRANSFER_PACKET Pkt) |
| VOID | SetupEjectionTransferPacket (TRANSFER_PACKET *Pkt, BOOLEAN PreventMediaRemoval, PKEVENT SyncEventPtr, PIRP OriginalIrp) |
| VOID | SetupModeSenseTransferPacket (TRANSFER_PACKET *Pkt, PKEVENT SyncEventPtr, PVOID ModeSenseBuffer, UCHAR ModeSenseBufferLen, UCHAR PageMode, PIRP OriginalIrp) |
| VOID | SetupDriveCapacityTransferPacket (TRANSFER_PACKET *Pkt, PVOID ReadCapacityBuffer, ULONG ReadCapacityBufferLen, PKEVENT SyncEventPtr, PIRP OriginalIrp) |
| PMDL | BuildDeviceInputMdl (PVOID Buffer, ULONG BufferLen) |
| VOID | FreeDeviceInputMdl (PMDL Mdl) |
| NTSTATUS | InitializeTransferPackets (PDEVICE_OBJECT Fdo) |
| VOID | DestroyAllTransferPackets (PDEVICE_OBJECT Fdo) |
Variables |
| CLASSPNP_SCAN_FOR_SPECIAL_INFO | ClassBadItems [] |
| GUID | ClassGuidQueryRegInfoEx |