229 ULONG bytesPerSector;
302 TracePrint((
TRACE_LEVEL_ERROR, TRACE_FLAG_PNP,
"DiskInitFdo: Can not allocate request sense buffer\n"));
324 if ( (fdoExtension->MiniportDescriptor !=
NULL) &&
325 (fdoExtension->MiniportDescriptor->IoTimeoutValue > 0) ) {
329 fdoExtension->
TimeOutValue = fdoExtension->MiniportDescriptor->IoTimeoutValue;
334 timeOut = ClassQueryTimeOutRegistryValue(
Fdo);
351 ClassUpdateInformationInRegistry(
Fdo,
359 ClassInitializeMediaChangeDetection(fdoExtension,
405 if (bytesPerSector == 0) {
434 fdoExtension->
DMSkew = *dmSkew;
441 #if defined(_X86_) || defined(_AMD64_) 451 DiskReadSignature(
Fdo);
454 if (diskData->GeometrySource == DiskGeometryUnknown)
462 if (DiskIsNT4Geometry(fdoExtension))
465 diskData->RealGeometry.SectorsPerTrack = 0x20;
466 diskData->RealGeometry.TracksPerCylinder = 0x40;
469 diskData->GeometrySource = DiskGeometryFromNT4;
554 "%d for device %p, Status = %lx\n",
#define STATUS_INSUFFICIENT_RESOURCES
#define IOCTL_SCSI_GET_ADDRESS
VOID DiskCreateSymbolicLinks(IN PDEVICE_OBJECT DeviceObject)
DISK_GEOMETRY DiskGeometry
#define SRB_FLAGS_NO_QUEUE_FREEZE
COMMON_DEVICE_EXTENSION CommonExtension
#define TRACE_LEVEL_INFORMATION
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
_Must_inspect_result_ NTSTATUS NTAPI ClassReadDriveCapacity(_In_ PDEVICE_OBJECT Fdo)
PDEVICE_OBJECT DeviceObject
#define FREE_POOL(_PoolPtr)
#define FILE_REMOVABLE_MEDIA
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
NTSTATUS DiskEnableDisableFailurePredictPolling(PFUNCTIONAL_DEVICE_EXTENSION FdoExtension, BOOLEAN Enable, ULONG PollTimeInSeconds)
#define DEV_SAFE_START_UNIT
#define TEST_FLAG(Flags, Bit)
#define MAX_SECTORS_PER_VERIFY
#define NT_SUCCESS(StatCode)
PSTORAGE_ADAPTER_DESCRIPTOR AdapterDescriptor
PSTORAGE_DEVICE_DESCRIPTOR DeviceDescriptor
#define SENSE_BUFFER_SIZE_EX
#define PARTITION0_LIST_SIZE
#define STATUS_UNSUCCESSFUL
#define ExAllocatePoolWithTag(hernya, size, tag)
_Must_inspect_result_ _In_ WDFDEVICE Fdo
VOID NTAPI KeInitializeMutex(IN PKMUTEX Mutex, IN ULONG Level)
FAILURE_PREDICTION_METHOD FailurePredictionCapability
#define DISK_DEFAULT_FAILURE_POLLING_PERIOD
CLASSPNP_SCAN_FOR_SPECIAL_INFO DiskBadControllers[]
#define TRACE_LEVEL_ERROR
#define SRB_FLAGS_PORT_DRIVER_ALLOCSENSE
#define KeInitializeEvent(pEvt, foo, foo2)
DISK_GROUP_CONTEXT FlushContext
VOID NTAPI DiskSetSpecialHacks(IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension, IN ULONG_PTR Data)
NTSTATUS DiskDetectFailurePrediction(PFUNCTIONAL_DEVICE_EXTENSION FdoExtension, PFAILURE_PREDICTION_METHOD FailurePredictCapability, BOOLEAN ScsiAddressAvailable)
#define InitializeListHead(ListHead)
NTSTATUS NTAPI IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define DiskReadDriveCapacity(Fdo)
PIRP NTAPI IoBuildDeviceIoControlRequest(IN ULONG IoControlCode, IN PDEVICE_OBJECT DeviceObject, IN PVOID InputBuffer, IN ULONG InputBufferLength, IN PVOID OutputBuffer, IN ULONG OutputBufferLength, IN BOOLEAN InternalDeviceIoControl, IN PKEVENT Event, IN PIO_STATUS_BLOCK IoStatusBlock)
#define SCSI_DISK_TIMEOUT
#define RtlZeroMemory(Destination, Length)
VOID FASTCALL HalExamineMBR(IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN ULONG MbrTypeIdentifier, OUT PVOID *MbrBuffer)
static SERVICE_STATUS status
#define SET_FLAG(Flags, Bit)
#define SRB_FLAGS_QUEUE_ACTION_ENABLE
struct _DISK_DATA * PDISK_DATA