[DISK_NEW]

* Explicitly mark the functions as stdcall.
* Fix some warnings.

svn path=/trunk/; revision=56974
This commit is contained in:
Amine Khaldi 2012-07-29 02:05:26 +00:00
parent 79df779077
commit 434f07a99c
8 changed files with 263 additions and 175 deletions

View file

@ -16,13 +16,9 @@ add_library(disk_new SHARED
target_link_libraries(disk_new libcntpr wdmguid)
if(ARCH MATCHES i386)
# FIXME: http://www.cmake.org/Bug/view.php?id=12998
if(MSVC)
#add_target_compile_flags(disk_new "/Gz")
set_source_files_properties(${SOURCE} PROPERTIES COMPILE_FLAGS "/Gz")
else()
#add_target_compile_flags(disk_new "-mrtd -fno-builtin -Wno-unused-variable -Wno-pointer-sign")
set_source_files_properties(${SOURCE} PROPERTIES COMPILE_FLAGS "-mrtd -fno-builtin -Wno-unused-variable -Wno-pointer-sign")
if(NOT MSVC)
#add_target_compile_flags(disk_new "-Wno-format -Wno-pointer-sign")
set_source_files_properties(${SOURCE} PROPERTIES COMPILE_FLAGS "-Wno-format -Wno-pointer-sign")
endif()
endif()

View file

@ -31,6 +31,7 @@ Revision History:
#include "ioevent.h"
NTSTATUS
NTAPI
DiskDetermineMediaTypes(
IN PDEVICE_OBJECT Fdo,
IN PIRP Irp,
@ -41,18 +42,21 @@ DiskDetermineMediaTypes(
);
PPARTITION_INFORMATION_EX
NTAPI
DiskPdoFindPartitionEntry(
IN PPHYSICAL_DEVICE_EXTENSION Pdo,
IN PDRIVE_LAYOUT_INFORMATION_EX LayoutInfo
);
PPARTITION_INFORMATION_EX
NTAPI
DiskFindAdjacentPartition(
IN PDRIVE_LAYOUT_INFORMATION_EX LayoutInfo,
IN PPARTITION_INFORMATION_EX BasePartition
);
PPARTITION_INFORMATION_EX
NTAPI
DiskFindContainingPartition(
IN PDRIVE_LAYOUT_INFORMATION_EX LayoutInfo,
IN PPARTITION_INFORMATION_EX BasePartition,
@ -60,72 +64,84 @@ DiskFindContainingPartition(
);
NTSTATUS
NTAPI
DiskIoctlCreateDisk(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
NTAPI
DiskIoctlGetDriveLayout(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
NTAPI
DiskIoctlGetDriveLayoutEx(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
NTAPI
DiskIoctlSetDriveLayout(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
NTAPI
DiskIoctlSetDriveLayoutEx(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
NTAPI
DiskIoctlGetPartitionInfo(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
NTAPI
DiskIoctlGetPartitionInfoEx(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
NTAPI
DiskIoctlGetLengthInfo(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
NTAPI
DiskIoctlSetPartitionInfo(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
NTAPI
DiskIoctlSetPartitionInfoEx(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
NTAPI
DiskIoctlSetPartitionInfoEx(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
NTAPI
DiskIoctlGetDriveGeometryEx(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
@ -171,7 +187,6 @@ const GUID GUID_NULL = { 0 };
#define DiskCompareGuid(_First,_Second) \
(memcmp ((_First),(_Second), sizeof (GUID)))
NTSTATUS
NTAPI
DriverEntry(
@ -342,8 +357,8 @@ Return Value:
} // end DriverEntry()
VOID
NTAPI
DiskUnload(
IN PDRIVER_OBJECT DriverObject
)
@ -356,8 +371,8 @@ DiskUnload(
return;
}
NTSTATUS
NTAPI
DiskCreateFdo(
IN PDRIVER_OBJECT DriverObject,
IN PDEVICE_OBJECT PhysicalDeviceObject,
@ -393,8 +408,8 @@ Return Value:
{
CCHAR ntNameBuffer[MAXIMUM_FILENAME_LENGTH];
STRING ntNameString;
UNICODE_STRING ntUnicodeString;
//STRING ntNameString;
//UNICODE_STRING ntUnicodeString;
PUCHAR deviceName = NULL;
@ -407,8 +422,8 @@ Return Value:
PDEVICE_OBJECT deviceObject = NULL;
PFUNCTIONAL_DEVICE_EXTENSION fdoExtension;
STORAGE_PROPERTY_ID propertyId;
PSTORAGE_DEVICE_DESCRIPTOR deviceDescriptor;
//STORAGE_PROPERTY_ID propertyId;
//PSTORAGE_DEVICE_DESCRIPTOR deviceDescriptor;
PAGED_CODE();
@ -628,8 +643,8 @@ DiskCreateFdoExit:
return(status);
}
NTSTATUS
NTAPI
DiskReadWriteVerification(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
@ -742,9 +757,8 @@ Return Value:
} // end DiskReadWrite()
NTSTATUS
NTAPI
DiskDetermineMediaTypes(
IN PDEVICE_OBJECT Fdo,
IN PIRP Irp,
@ -777,8 +791,8 @@ Return Value:
{
PFUNCTIONAL_DEVICE_EXTENSION fdoExtension = Fdo->DeviceExtension;
PPHYSICAL_DEVICE_EXTENSION pdoExtension = Fdo->DeviceExtension;
PCOMMON_DEVICE_EXTENSION commonExtension = Fdo->DeviceExtension;
//PPHYSICAL_DEVICE_EXTENSION pdoExtension = Fdo->DeviceExtension;
//PCOMMON_DEVICE_EXTENSION commonExtension = Fdo->DeviceExtension;
PIO_STACK_LOCATION irpStack = IoGetCurrentIrpStackLocation(Irp);
PGET_MEDIA_TYPES mediaTypes = Irp->AssociatedIrp.SystemBuffer;
@ -1008,8 +1022,8 @@ Return Value:
}
NTSTATUS
NTAPI
DiskDeviceControl(
PDEVICE_OBJECT DeviceObject,
PIRP Irp
@ -1041,7 +1055,7 @@ Return Value:
{
PFUNCTIONAL_DEVICE_EXTENSION fdoExtension = DeviceObject->DeviceExtension;
PPHYSICAL_DEVICE_EXTENSION pdoExtension = DeviceObject->DeviceExtension;
//PPHYSICAL_DEVICE_EXTENSION pdoExtension = DeviceObject->DeviceExtension;
PCOMMON_DEVICE_EXTENSION commonExtension = DeviceObject->DeviceExtension;
PIO_STACK_LOCATION irpStack = IoGetCurrentIrpStackLocation(Irp);
@ -2772,7 +2786,7 @@ Retry:
PDRIVE_LAYOUT_INFORMATION_EX layoutInfo;
PPARTITION_INFORMATION_EX pdoPartition;
PPARTITION_INFORMATION_EX containerPartition;
ULONG partitionIndex;
//ULONG partitionIndex;
DebugPrint((2, "IOCTL_DISK_GROW_PARTITION to device %p through "
"irp %p\n",
@ -2940,16 +2954,16 @@ Retry:
sibling = commonExtension->ChildList;
while(sibling != NULL) {
LARGE_INTEGER sibStoppingOffset;
//LARGE_INTEGER sibStoppingOffset;
PCOMMON_DEVICE_EXTENSION siblingExtension;
siblingExtension = &(sibling->CommonExtension);
ASSERT( siblingExtension );
sibStoppingOffset.QuadPart =
/* sibStoppingOffset.QuadPart =
(siblingExtension->StartingOffset.QuadPart +
siblingExtension->PartitionLength.QuadPart - 1);
siblingExtension->PartitionLength.QuadPart - 1); */
//
// Only check the siblings that start beyond the new partition
@ -3267,8 +3281,8 @@ defaultHandler:
} // end DiskDeviceControl()
NTSTATUS
NTAPI
DiskShutdownFlush (
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
@ -3457,8 +3471,8 @@ Return Value:
return STATUS_PENDING;
} // end DiskShutdown()
NTSTATUS
NTAPI
DiskModeSelect(
IN PDEVICE_OBJECT Fdo,
IN PCHAR ModeSelectBuffer,
@ -3595,11 +3609,11 @@ Retry:
return status;
} // end DiskModeSelect()
//
// This routine is structured as a work-item routine
//
VOID
NTAPI
DisableWriteCache(
IN PDEVICE_OBJECT Fdo,
IN PIO_WORKITEM WorkItem
@ -3667,11 +3681,11 @@ DisableWriteCache(
IoFreeWorkItem(WorkItem);
}
//
// This routine is structured as a work-item routine
//
VOID
NTAPI
DiskIoctlVerify(
IN PDEVICE_OBJECT Fdo,
IN PDISK_VERIFY_WORKITEM_CONTEXT Context
@ -3785,9 +3799,8 @@ DiskIoctlVerify(
ExFreePool(Context);
}
VOID
NTAPI
DiskFdoProcessError(
PDEVICE_OBJECT Fdo,
PSCSI_REQUEST_BLOCK Srb,
@ -3992,8 +4005,8 @@ Return Value:
return;
}
VOID
NTAPI
DiskSetSpecialHacks(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
IN ULONG_PTR Data
@ -4095,8 +4108,8 @@ Return Value:
return;
}
VOID
NTAPI
DiskScanRegistryForSpecial(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension
)
@ -4145,8 +4158,8 @@ Return Value:
}
}
VOID
NTAPI
ResetBus(
IN PDEVICE_OBJECT Fdo
)
@ -4255,8 +4268,8 @@ Return Value:
} // end ResetBus()
NTSTATUS
NTAPI
DiskQueryPnpCapabilities(
IN PDEVICE_OBJECT DeviceObject,
IN PDEVICE_CAPABILITIES Capabilities
@ -4264,7 +4277,7 @@ DiskQueryPnpCapabilities(
{
PCOMMON_DEVICE_EXTENSION commonExtension = DeviceObject->DeviceExtension;
PDISK_DATA diskData = commonExtension->DriverData;
//PDISK_DATA diskData = commonExtension->DriverData;
PAGED_CODE();
@ -4275,8 +4288,7 @@ DiskQueryPnpCapabilities(
return STATUS_NOT_IMPLEMENTED;
} else {
PPHYSICAL_DEVICE_EXTENSION physicalExtension =
DeviceObject->DeviceExtension;
//PPHYSICAL_DEVICE_EXTENSION physicalExtension = DeviceObject->DeviceExtension;
Capabilities->SilentInstall = 1;
Capabilities->RawDeviceOK = 1;
@ -4298,8 +4310,8 @@ DiskQueryPnpCapabilities(
return STATUS_SUCCESS;
}
NTSTATUS
NTAPI
DiskGetCacheInformation(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
IN PDISK_CACHE_INFORMATION CacheInfo
@ -4311,7 +4323,7 @@ DiskGetCacheInformation(
ULONG length;
NTSTATUS status;
//NTSTATUS status;
PAGED_CODE();
@ -4416,8 +4428,8 @@ DiskGetCacheInformation(
return STATUS_SUCCESS;
}
NTSTATUS
NTAPI
DiskSetCacheInformation(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
IN PDISK_CACHE_INFORMATION CacheInfo
@ -4615,8 +4627,8 @@ DiskSetCacheInformation(
return status;
}
PPARTITION_INFORMATION_EX
NTAPI
DiskPdoFindPartitionEntry(
IN PPHYSICAL_DEVICE_EXTENSION Pdo,
IN PDRIVE_LAYOUT_INFORMATION_EX LayoutInfo
@ -4679,8 +4691,8 @@ DiskPdoFindPartitionEntry(
return NULL;
}
PPARTITION_INFORMATION_EX
NTAPI
DiskFindAdjacentPartition(
IN PDRIVE_LAYOUT_INFORMATION_EX LayoutInfo,
IN PPARTITION_INFORMATION_EX BasePartition
@ -4751,8 +4763,8 @@ DiskFindAdjacentPartition(
return adjacentPartition;
}
PPARTITION_INFORMATION_EX
NTAPI
DiskFindContainingPartition(
IN PDRIVE_LAYOUT_INFORMATION_EX LayoutInfo,
IN PPARTITION_INFORMATION_EX BasePartition,
@ -4846,8 +4858,8 @@ DiskFindContainingPartition(
return containerPartition;
}
NTSTATUS
NTAPI
DiskGetInfoExceptionInformation(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
IN PMODE_INFO_EXCEPTIONS ReturnPageData
@ -4938,8 +4950,8 @@ DiskGetInfoExceptionInformation(
return(status);
}
NTSTATUS
NTAPI
DiskSetInfoExceptionInformation(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
IN PMODE_INFO_EXCEPTIONS PageData
@ -4976,7 +4988,7 @@ DiskSetInfoExceptionInformation(
#if 0
#if defined(_X86_)
NTSTATUS
DiskQuerySuggestedLinkName(
IN PDEVICE_OBJECT DeviceObject,
@ -5155,8 +5167,8 @@ Return Value:
#endif
#endif
NTSTATUS
NTAPI
DiskIoctlCreateDisk(
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
@ -5186,7 +5198,7 @@ Return Values:
PCOMMON_DEVICE_EXTENSION commonExtension;
PFUNCTIONAL_DEVICE_EXTENSION fdoExtension;
PIO_STACK_LOCATION irpStack;
PDISK_DATA diskData;
//PDISK_DATA diskData;
PCREATE_DISK createDiskInfo;
@ -5203,7 +5215,7 @@ Return Values:
fdoExtension = DeviceObject->DeviceExtension;
irpStack = IoGetCurrentIrpStackLocation(Irp);
diskData = (PDISK_DATA)(commonExtension->DriverData);
//diskData = (PDISK_DATA)(commonExtension->DriverData);
ASSERT (commonExtension->IsFdo);
@ -5252,9 +5264,8 @@ Return Values:
return status;
}
NTSTATUS
NTAPI
DiskIoctlGetDriveLayout(
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
@ -5288,11 +5299,11 @@ Return Values:
PDRIVE_LAYOUT_INFORMATION partitionList;
PDRIVE_LAYOUT_INFORMATION_EX partitionListEx;
PFUNCTIONAL_DEVICE_EXTENSION fdoExtension;
PPHYSICAL_DEVICE_EXTENSION pdoExtension;
//PPHYSICAL_DEVICE_EXTENSION pdoExtension;
PCOMMON_DEVICE_EXTENSION commonExtension;
PIO_STACK_LOCATION irpStack;
PDISK_DATA diskData;
BOOLEAN invalidateBusRelations;
//BOOLEAN invalidateBusRelations;
PAGED_CODE ();
@ -5408,9 +5419,8 @@ Return Values:
return status;
}
NTSTATUS
NTAPI
DiskIoctlGetDriveLayoutEx(
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
@ -5443,7 +5453,7 @@ Return Values:
ULONG size;
PDRIVE_LAYOUT_INFORMATION_EX partitionList;
PFUNCTIONAL_DEVICE_EXTENSION fdoExtension;
PPHYSICAL_DEVICE_EXTENSION pdoExtension;
//PPHYSICAL_DEVICE_EXTENSION pdoExtension;
PCOMMON_DEVICE_EXTENSION commonExtension;
PIO_STACK_LOCATION irpStack;
PDISK_DATA diskData;
@ -5460,7 +5470,7 @@ Return Values:
//
fdoExtension = DeviceObject->DeviceExtension;
pdoExtension = DeviceObject->DeviceExtension;
//pdoExtension = DeviceObject->DeviceExtension;
commonExtension = DeviceObject->DeviceExtension;
irpStack = IoGetCurrentIrpStackLocation(Irp);
@ -5532,8 +5542,8 @@ Return Values:
return status;
}
NTSTATUS
NTAPI
DiskIoctlSetDriveLayout(
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
@ -5564,11 +5574,11 @@ Return Values:
PDRIVE_LAYOUT_INFORMATION partitionList;
PDRIVE_LAYOUT_INFORMATION_EX partitionListEx;
PFUNCTIONAL_DEVICE_EXTENSION fdoExtension;
PPHYSICAL_DEVICE_EXTENSION pdoExtension;
//PPHYSICAL_DEVICE_EXTENSION pdoExtension;
PCOMMON_DEVICE_EXTENSION commonExtension;
PIO_STACK_LOCATION irpStack;
PDISK_DATA diskData;
BOOLEAN invalidateBusRelations;
//BOOLEAN invalidateBusRelations;
SIZE_T listSize;
SIZE_T inputBufferLength;
SIZE_T outputBufferLength;
@ -5585,7 +5595,7 @@ Return Values:
partitionListEx = NULL;
partitionList = NULL;
fdoExtension = DeviceObject->DeviceExtension;
pdoExtension = DeviceObject->DeviceExtension;
//pdoExtension = DeviceObject->DeviceExtension;
commonExtension = DeviceObject->DeviceExtension;
irpStack = IoGetCurrentIrpStackLocation(Irp);
@ -5691,9 +5701,8 @@ Return Values:
return status;
}
NTSTATUS
NTAPI
DiskIoctlSetDriveLayoutEx(
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
@ -5728,7 +5737,7 @@ Return Values:
PIO_STACK_LOCATION irpStack;
PDISK_DATA diskData;
BOOLEAN invalidateBusRelations;
//BOOLEAN invalidateBusRelations;
SIZE_T listSize;
SIZE_T inputBufferLength;
SIZE_T outputBufferLength;
@ -5849,8 +5858,8 @@ Return Values:
return status;
}
NTSTATUS
NTAPI
DiskIoctlGetPartitionInfo(
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
@ -6002,8 +6011,8 @@ Return Values:
return status;
}
NTSTATUS
NTAPI
DiskIoctlGetPartitionInfoEx(
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
@ -6126,9 +6135,8 @@ DiskIoctlGetPartitionInfoEx(
return status;
}
NTSTATUS
NTAPI
DiskIoctlGetLengthInfo(
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
@ -6136,7 +6144,7 @@ DiskIoctlGetLengthInfo(
{
NTSTATUS status;
PIO_STACK_LOCATION irpStack;
PDISK_DATA diskData;
//PDISK_DATA diskData;
PGET_LENGTH_INFORMATION lengthInfo;
PFUNCTIONAL_DEVICE_EXTENSION p0Extension;
PCOMMON_DEVICE_EXTENSION commonExtension;
@ -6156,7 +6164,7 @@ DiskIoctlGetLengthInfo(
commonExtension = DeviceObject->DeviceExtension;
irpStack = IoGetCurrentIrpStackLocation(Irp);
diskData = (PDISK_DATA)(commonExtension->DriverData);
//diskData = (PDISK_DATA)(commonExtension->DriverData);
p0Extension = commonExtension->PartitionZeroExtension;
partitionZeroData = ((PDISK_DATA) p0Extension->CommonExtension.DriverData);
@ -6221,9 +6229,8 @@ DiskIoctlGetLengthInfo(
return status;
}
NTSTATUS
NTAPI
DiskIoctlSetPartitionInfo(
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
@ -6298,8 +6305,8 @@ DiskIoctlSetPartitionInfo(
return status;
}
NTSTATUS
NTAPI
DiskIoctlSetPartitionInfoEx(
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
@ -6394,9 +6401,8 @@ typedef struct _DISK_GEOMETRY_EX_INTERNAL {
} DISK_GEOMETRY_EX_INTERNAL, *PDISK_GEOMETRY_EX_INTERNAL;
NTSTATUS
NTAPI
DiskIoctlGetDriveGeometryEx(
IN PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
@ -6573,4 +6579,3 @@ Return Value:
return status;
}

View file

@ -63,7 +63,7 @@ Revision History:
typedef
VOID
(*PDISK_UPDATE_PARTITIONS) (
(NTAPI *PDISK_UPDATE_PARTITIONS) (
IN PDEVICE_OBJECT Fdo,
IN OUT PDRIVE_LAYOUT_INFORMATION_EX PartitionList
);
@ -394,69 +394,80 @@ extern const DISK_MEDIA_TYPES_LIST DiskMediaTypes[];
// Routine prototypes.
//
NTSTATUS
NTAPI
DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
);
VOID
NTAPI
DiskUnload(
IN PDRIVER_OBJECT DriverObject
);
NTSTATUS
NTAPI
DiskAddDevice(
IN PDRIVER_OBJECT DriverObject,
IN PDEVICE_OBJECT Pdo
);
NTSTATUS
NTAPI
DiskInitFdo(
IN PDEVICE_OBJECT Fdo
);
NTSTATUS
NTAPI
DiskInitPdo(
IN PDEVICE_OBJECT Pdo
);
NTSTATUS
NTAPI
DiskStartFdo(
IN PDEVICE_OBJECT Fdo
);
NTSTATUS
NTAPI
DiskStartPdo(
IN PDEVICE_OBJECT Pdo
);
NTSTATUS
NTAPI
DiskStopDevice(
IN PDEVICE_OBJECT DeviceObject,
IN UCHAR Type
);
NTSTATUS
NTAPI
DiskRemoveDevice(
IN PDEVICE_OBJECT DeviceObject,
IN UCHAR Type
);
NTSTATUS
NTAPI
DiskReadWriteVerification(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
NTAPI
DiskDeviceControl(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
VOID
NTAPI
DiskFdoProcessError(
PDEVICE_OBJECT DeviceObject,
PSCSI_REQUEST_BLOCK Srb,
@ -465,36 +476,42 @@ DiskFdoProcessError(
);
NTSTATUS
NTAPI
DiskShutdownFlush(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
NTAPI
DiskGetCacheInformation(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
IN PDISK_CACHE_INFORMATION CacheInfo
);
NTSTATUS
NTAPI
DiskSetCacheInformation(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
IN PDISK_CACHE_INFORMATION CacheInfo
);
VOID
NTAPI
DisableWriteCache(
IN PDEVICE_OBJECT DeviceObject,
IN PIO_WORKITEM WorkItem
);
VOID
NTAPI
DiskIoctlVerify(
IN PDEVICE_OBJECT DeviceObject,
IN PDISK_VERIFY_WORKITEM_CONTEXT Context
);
NTSTATUS
NTAPI
DiskModeSelect(
IN PDEVICE_OBJECT DeviceObject,
IN PCHAR ModeSelectBuffer,
@ -518,6 +535,7 @@ DiskModeSelect(
NTSTATUS
NTAPI
DiskPerformSmartCommand(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
IN ULONG SrbControlCode,
@ -530,24 +548,28 @@ DiskPerformSmartCommand(
);
NTSTATUS
NTAPI
DiskGetInfoExceptionInformation(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
OUT PMODE_INFO_EXCEPTIONS ReturnPageData
);
NTSTATUS
NTAPI
DiskSetInfoExceptionInformation(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
IN PMODE_INFO_EXCEPTIONS PageData
);
NTSTATUS
NTAPI
DiskDetectFailurePrediction(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
PFAILURE_PREDICTION_METHOD FailurePredictCapability
);
BOOLEAN
NTAPI
EnumerateBusKey(
IN PFUNCTIONAL_DEVICE_EXTENSION DeviceExtension,
HANDLE BusKey,
@ -555,6 +577,7 @@ EnumerateBusKey(
);
NTSTATUS
NTAPI
DiskCreateFdo(
IN PDRIVER_OBJECT DriverObject,
IN PDEVICE_OBJECT LowerDeviceObject,
@ -563,33 +586,39 @@ DiskCreateFdo(
);
VOID
NTAPI
UpdateDeviceObjects(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
VOID
NTAPI
DiskSetSpecialHacks(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
IN ULONG_PTR Data
);
VOID
NTAPI
DiskScanRegistryForSpecial(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension
);
VOID
NTAPI
ResetBus(
IN PDEVICE_OBJECT DeviceObject
);
NTSTATUS
NTAPI
DiskEnumerateDevice(
IN PDEVICE_OBJECT Fdo
);
NTSTATUS
NTAPI
DiskQueryId(
IN PDEVICE_OBJECT Pdo,
IN BUS_QUERY_ID_TYPE IdType,
@ -597,12 +626,14 @@ DiskQueryId(
);
NTSTATUS
NTAPI
DiskQueryPnpCapabilities(
IN PDEVICE_OBJECT DeviceObject,
IN PDEVICE_CAPABILITIES Capabilities
);
NTSTATUS
NTAPI
DiskGenerateDeviceName(
IN BOOLEAN IsFdo,
IN ULONG DeviceNumber,
@ -613,23 +644,27 @@ DiskGenerateDeviceName(
);
VOID
NTAPI
DiskCreateSymbolicLinks(
IN PDEVICE_OBJECT DeviceObject
);
VOID
NTAPI
DiskUpdatePartitions(
IN PDEVICE_OBJECT Fdo,
IN OUT PDRIVE_LAYOUT_INFORMATION_EX PartitionList
);
VOID
NTAPI
DiskUpdateRemovablePartitions(
IN PDEVICE_OBJECT Fdo,
IN OUT PDRIVE_LAYOUT_INFORMATION_EX PartitionList
);
NTSTATUS
NTAPI
DiskCreatePdo(
IN PDEVICE_OBJECT Fdo,
IN ULONG PartitionOrdinal,
@ -639,11 +674,13 @@ DiskCreatePdo(
);
VOID
NTAPI
DiskDeleteSymbolicLinks(
IN PDEVICE_OBJECT DeviceObject
);
NTSTATUS
NTAPI
DiskPdoQueryWmiRegInfo(
IN PDEVICE_OBJECT DeviceObject,
OUT ULONG *RegFlags,
@ -651,6 +688,7 @@ DiskPdoQueryWmiRegInfo(
);
NTSTATUS
NTAPI
DiskPdoQueryWmiDataBlock(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -660,6 +698,7 @@ DiskPdoQueryWmiDataBlock(
);
NTSTATUS
NTAPI
DiskPdoSetWmiDataBlock(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -669,6 +708,7 @@ DiskPdoSetWmiDataBlock(
);
NTSTATUS
NTAPI
DiskPdoSetWmiDataItem(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -679,6 +719,7 @@ DiskPdoSetWmiDataItem(
);
NTSTATUS
NTAPI
DiskPdoExecuteWmiMethod(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -690,6 +731,7 @@ DiskPdoExecuteWmiMethod(
);
NTSTATUS
NTAPI
DiskFdoQueryWmiRegInfo(
IN PDEVICE_OBJECT DeviceObject,
OUT ULONG *RegFlags,
@ -697,6 +739,7 @@ DiskFdoQueryWmiRegInfo(
);
NTSTATUS
NTAPI
DiskFdoQueryWmiRegInfoEx(
IN PDEVICE_OBJECT DeviceObject,
OUT ULONG *RegFlags,
@ -705,6 +748,7 @@ DiskFdoQueryWmiRegInfoEx(
);
NTSTATUS
NTAPI
DiskFdoQueryWmiDataBlock(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -714,6 +758,7 @@ DiskFdoQueryWmiDataBlock(
);
NTSTATUS
NTAPI
DiskFdoSetWmiDataBlock(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -723,6 +768,7 @@ DiskFdoSetWmiDataBlock(
);
NTSTATUS
NTAPI
DiskFdoSetWmiDataItem(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -733,6 +779,7 @@ DiskFdoSetWmiDataItem(
);
NTSTATUS
NTAPI
DiskFdoExecuteWmiMethod(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -744,6 +791,7 @@ DiskFdoExecuteWmiMethod(
);
NTSTATUS
NTAPI
DiskWmiFunctionControl(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -753,24 +801,28 @@ DiskWmiFunctionControl(
);
NTSTATUS
NTAPI
DiskReadFailurePredictStatus(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
PSTORAGE_FAILURE_PREDICT_STATUS DiskSmartStatus
);
NTSTATUS
NTAPI
DiskReadFailurePredictData(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
PSTORAGE_FAILURE_PREDICT_DATA DiskSmartData
);
NTSTATUS
NTAPI
DiskEnableDisableFailurePrediction(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
BOOLEAN Enable
);
NTSTATUS
NTAPI
DiskEnableDisableFailurePredictPolling(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
BOOLEAN Enable,
@ -778,16 +830,18 @@ DiskEnableDisableFailurePredictPolling(
);
VOID
NTAPI
DiskAcquirePartitioningLock(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension
);
VOID
NTAPI
DiskReleasePartitioningLock(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension
);
NTSTATUS DiskInitializeReregistration(
NTSTATUS NTAPI DiskInitializeReregistration(
void
);
@ -796,6 +850,7 @@ extern GUIDREGINFO DiskWmiPdoGuidList[];
#if defined(_X86_)
NTSTATUS
NTAPI
DiskReadDriveCapacity(
IN PDEVICE_OBJECT Fdo
);
@ -815,16 +870,19 @@ DiskQuerySuggestedLinkName(
#endif
NTSTATUS
NTAPI
DiskSaveDetectInfo(
PDRIVER_OBJECT DriverObject
);
VOID
NTAPI
DiskCleanupDetectInfo(
IN PDRIVER_OBJECT DriverObject
);
VOID
NTAPI
DiskDriverReinitialization (
IN PDRIVER_OBJECT DriverObject,
IN PVOID Nothing,
@ -834,22 +892,26 @@ DiskDriverReinitialization (
#endif
VOID
NTAPI
DiskConvertPartitionToExtended(
IN PPARTITION_INFORMATION Partition,
OUT PPARTITION_INFORMATION_EX PartitionEx
);
PDRIVE_LAYOUT_INFORMATION_EX
NTAPI
DiskConvertLayoutToExtended(
IN CONST PDRIVE_LAYOUT_INFORMATION Layout
);
PDRIVE_LAYOUT_INFORMATION
NTAPI
DiskConvertExtendedToLayout(
IN CONST PDRIVE_LAYOUT_INFORMATION_EX LayoutEx
);
NTSTATUS
NTAPI
DiskReadPartitionTableEx(
IN PFUNCTIONAL_DEVICE_EXTENSION Fdo,
IN BOOLEAN BypassCache,
@ -857,12 +919,14 @@ DiskReadPartitionTableEx(
);
NTSTATUS
NTAPI
DiskWritePartitionTableEx(
IN PFUNCTIONAL_DEVICE_EXTENSION Fdo,
IN PDRIVE_LAYOUT_INFORMATION_EX DriveLayout
);
NTSTATUS
NTAPI
DiskSetPartitionInformationEx(
IN PFUNCTIONAL_DEVICE_EXTENSION Fdo,
IN ULONG PartitionNumber,
@ -870,6 +934,7 @@ DiskSetPartitionInformationEx(
);
NTSTATUS
NTAPI
DiskSetPartitionInformation(
IN PFUNCTIONAL_DEVICE_EXTENSION Fdo,
IN ULONG SectorSize,
@ -878,12 +943,14 @@ DiskSetPartitionInformation(
);
NTSTATUS
NTAPI
DiskVerifyPartitionTable(
IN PFUNCTIONAL_DEVICE_EXTENSION Fdo,
IN BOOLEAN FixErrors
);
BOOLEAN
NTAPI
DiskInvalidatePartitionTable(
IN PFUNCTIONAL_DEVICE_EXTENSION Fdo,
IN BOOLEAN PartitionLockHeld
@ -891,12 +958,14 @@ DiskInvalidatePartitionTable(
#if defined (_X86_)
NTSTATUS
NTAPI
DiskGetDetectInfo(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
OUT PDISK_DETECTION_INFO DetectInfo
);
NTSTATUS
NTAPI
DiskReadSignature(
IN PDEVICE_OBJECT Fdo
);

View file

@ -23,30 +23,35 @@ Revision History:
#include "disk.h"
NTSTATUS
NTAPI
DiskSendFailurePredictIoctl(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
PSTORAGE_PREDICT_FAILURE checkFailure
);
NTSTATUS
NTAPI
DiskGetIdentifyInfo(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
PBOOLEAN SupportSmart
);
NTSTATUS
NTAPI
DiskDetectFailurePrediction(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
PFAILURE_PREDICTION_METHOD FailurePredictCapability
);
NTSTATUS
NTAPI
DiskReadFailurePredictThresholds(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
PSTORAGE_FAILURE_PREDICT_THRESHOLDS DiskSmartThresholds
);
NTSTATUS
NTAPI
DiskReadSmartLog(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
IN UCHAR SectorCount,
@ -55,6 +60,7 @@ DiskReadSmartLog(
);
NTSTATUS
NTAPI
DiskWriteSmartLog(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
IN UCHAR SectorCount,
@ -62,7 +68,7 @@ DiskWriteSmartLog(
IN PUCHAR Buffer
);
void DiskReregWorker(
void NTAPI DiskReregWorker(
IN PVOID Context
);
@ -382,6 +388,7 @@ DiskExecuteSmartDiagnostics(
NTSTATUS
NTAPI
DiskReadSmartLog(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
IN UCHAR SectorCount,
@ -433,6 +440,7 @@ DiskReadSmartLog(
NTSTATUS
NTAPI
DiskWriteSmartLog(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
IN UCHAR SectorCount,
@ -477,8 +485,9 @@ DiskWriteSmartLog(
}
return(status);
}
NTSTATUS
NTAPI
DiskPerformSmartCommand(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
IN ULONG SrbControlCode,
@ -526,8 +535,8 @@ Return Value:
PDISK_DATA diskData = (PDISK_DATA)(commonExtension->DriverData);
PUCHAR buffer;
PSENDCMDINPARAMS cmdInParameters;
PSENDCMDOUTPARAMS cmdOutParameters;
ULONG outBufferSize;
//PSENDCMDOUTPARAMS cmdOutParameters;
//ULONG outBufferSize;
NTSTATUS status;
ULONG availableBufferSize;
KEVENT event;
@ -549,7 +558,7 @@ Return Value:
buffer += sizeof(SRB_IO_CONTROL);
cmdInParameters = (PSENDCMDINPARAMS)buffer;
cmdOutParameters = (PSENDCMDOUTPARAMS)buffer;
//cmdOutParameters = (PSENDCMDOUTPARAMS)buffer;
availableBufferSize = *BufferSize - sizeof(SRB_IO_CONTROL);
@ -776,8 +785,8 @@ Return Value:
return status;
}
NTSTATUS
NTAPI
DiskGetIdentifyInfo(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
PBOOLEAN SupportSmart
@ -813,12 +822,12 @@ DiskGetIdentifyInfo(
return status;
}
//
// FP Ioctl specific routines
//
NTSTATUS
NTAPI
DiskSendFailurePredictIoctl(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
PSTORAGE_PREDICT_FAILURE checkFailure
@ -865,12 +874,12 @@ DiskSendFailurePredictIoctl(
return status;
}
//
// FP type independent routines
//
NTSTATUS
NTAPI
DiskEnableDisableFailurePrediction(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
BOOLEAN Enable
@ -934,6 +943,7 @@ Return Value:
}
NTSTATUS
NTAPI
DiskEnableDisableFailurePredictPolling(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
BOOLEAN Enable,
@ -990,8 +1000,8 @@ Return Value:
return status;
}
NTSTATUS
NTAPI
DiskReadFailurePredictStatus(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
PSTORAGE_FAILURE_PREDICT_STATUS DiskSmartStatus
@ -1067,6 +1077,7 @@ Return Value:
}
NTSTATUS
NTAPI
DiskReadFailurePredictData(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
PSTORAGE_FAILURE_PREDICT_DATA DiskSmartData
@ -1158,6 +1169,7 @@ Return Value:
}
NTSTATUS
NTAPI
DiskReadFailurePredictThresholds(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
PSTORAGE_FAILURE_PREDICT_THRESHOLDS DiskSmartThresholds
@ -1239,7 +1251,7 @@ Return Value:
return status;
}
void DiskReregWorker(
void NTAPI DiskReregWorker(
IN PVOID Context
)
{
@ -1284,7 +1296,7 @@ void DiskReregWorker(
}
NTSTATUS DiskInitializeReregistration(
NTSTATUS NTAPI DiskInitializeReregistration(
void
)
{
@ -1303,7 +1315,7 @@ NTSTATUS DiskInitializeReregistration(
return(STATUS_SUCCESS);
}
NTSTATUS DiskPostReregisterRequest(
NTSTATUS NTAPI DiskPostReregisterRequest(
PDEVICE_OBJECT DeviceObject,
PIRP Irp
)
@ -1344,7 +1356,7 @@ NTSTATUS DiskPostReregisterRequest(
return(status);
}
NTSTATUS DiskInfoExceptionComplete(
NTSTATUS NTAPI DiskInfoExceptionComplete(
PDEVICE_OBJECT DeviceObject,
PIRP Irp,
PVOID Context
@ -1361,7 +1373,7 @@ NTSTATUS DiskInfoExceptionComplete(
ULONG retryInterval;
ULONG srbStatus;
BOOLEAN freeLockAndIrp = TRUE;
KIRQL oldIrql;
//KIRQL oldIrql;
ASSERT(fdoExtension->CommonExtension.IsFdo);
@ -1545,7 +1557,7 @@ NTSTATUS DiskInfoExceptionComplete(
}
NTSTATUS DiskInfoExceptionCheck(
NTSTATUS NTAPI DiskInfoExceptionCheck(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension
)
{
@ -1760,6 +1772,7 @@ NTSTATUS DiskInfoExceptionCheck(
}
NTSTATUS
NTAPI
DiskDetectFailurePrediction(
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
PFAILURE_PREDICTION_METHOD FailurePredictCapability
@ -1799,7 +1812,7 @@ Return Value:
NTSTATUS status;
STORAGE_PREDICT_FAILURE checkFailure;
STORAGE_FAILURE_PREDICT_STATUS diskSmartStatus;
BOOLEAN logErr;
//BOOLEAN logErr;
PAGED_CODE();
@ -1881,8 +1894,8 @@ Return Value:
return(STATUS_SUCCESS);
}
NTSTATUS
NTAPI
DiskWmiFunctionControl(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -1931,10 +1944,10 @@ Return Value:
--*/
{
NTSTATUS status = STATUS_SUCCESS;
PCOMMON_DEVICE_EXTENSION commonExtension = DeviceObject->DeviceExtension;
//PCOMMON_DEVICE_EXTENSION commonExtension = DeviceObject->DeviceExtension;
PFUNCTIONAL_DEVICE_EXTENSION fdoExtension = DeviceObject->DeviceExtension;
PDISK_DATA diskData = (PDISK_DATA)(commonExtension->DriverData);
ULONG enableCount;
//PDISK_DATA diskData = (PDISK_DATA)(commonExtension->DriverData);
//ULONG enableCount;
PAGED_CODE();
@ -1994,9 +2007,8 @@ Return Value:
return status;
}
NTSTATUS
NTAPI
DiskFdoQueryWmiRegInfo(
IN PDEVICE_OBJECT DeviceObject,
OUT ULONG *RegFlags,
@ -2036,10 +2048,10 @@ Return Value:
--*/
{
PFUNCTIONAL_DEVICE_EXTENSION fdoExtension = DeviceObject->DeviceExtension;
//PFUNCTIONAL_DEVICE_EXTENSION fdoExtension = DeviceObject->DeviceExtension;
PCOMMON_DEVICE_EXTENSION commonExtension = DeviceObject->DeviceExtension;
PDISK_DATA diskData = (PDISK_DATA)(commonExtension->DriverData);
NTSTATUS status;
//NTSTATUS status;
PAGED_CODE();
@ -2094,6 +2106,7 @@ Return Value:
}
NTSTATUS
NTAPI
DiskFdoQueryWmiRegInfoEx(
IN PDEVICE_OBJECT DeviceObject,
OUT ULONG *RegFlags,
@ -2150,8 +2163,8 @@ Return Value:
return(status);
}
NTSTATUS
NTAPI
DiskFdoQueryWmiDataBlock(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -2383,6 +2396,7 @@ Return Value:
}
NTSTATUS
NTAPI
DiskFdoSetWmiDataBlock(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -2487,6 +2501,7 @@ Return Value:
}
NTSTATUS
NTAPI
DiskFdoSetWmiDataItem(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -2554,8 +2569,8 @@ Return Value:
return status;
}
NTSTATUS
NTAPI
DiskFdoExecuteWmiMethod(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -3018,11 +3033,11 @@ Return Value:
return status;
}
#if 0
//
// Enable this to add WMI support for PDOs
NTSTATUS
NTAPI
DiskPdoQueryWmiRegInfo(
IN PDEVICE_OBJECT DeviceObject,
OUT ULONG *RegFlags,
@ -3088,6 +3103,7 @@ Return Value:
}
NTSTATUS
NTAPI
DiskPdoQueryWmiDataBlock(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -3169,6 +3185,7 @@ Return Value:
}
NTSTATUS
NTAPI
DiskPdoSetWmiDataBlock(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -3248,6 +3265,7 @@ Return Value:
}
NTSTATUS
NTAPI
DiskPdoSetWmiDataItem(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -3328,8 +3346,8 @@ Return Value:
return status;
}
NTSTATUS
NTAPI
DiskPdoExecuteWmiMethod(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -3429,6 +3447,3 @@ Return Value:
return status;
}
#endif

View file

@ -36,6 +36,7 @@ Revision History:
#endif
PDRIVE_LAYOUT_INFORMATION
NTAPI
DiskConvertExtendedToLayout(
IN CONST PDRIVE_LAYOUT_INFORMATION_EX LayoutEx
)
@ -97,6 +98,7 @@ DiskConvertExtendedToLayout(
}
VOID
NTAPI
DiskConvertPartitionToExtended(
IN PPARTITION_INFORMATION Partition,
OUT PPARTITION_INFORMATION_EX PartitionEx
@ -140,8 +142,8 @@ Return Values:
PartitionEx->Mbr.HiddenSectors = Partition->HiddenSectors;
}
PDRIVE_LAYOUT_INFORMATION_EX
PDRIVE_LAYOUT_INFORMATION_EX
NTAPI
DiskConvertLayoutToExtended(
IN CONST PDRIVE_LAYOUT_INFORMATION Layout
)
@ -163,7 +165,7 @@ Return Values:
be freed by the callee using ExFreePool.
--*/
{
ULONG i;
ULONG size;
@ -216,9 +218,8 @@ Return Values:
return layoutEx;
}
NTSTATUS
NTAPI
DiskEnumerateDevice(
IN PDEVICE_OBJECT Fdo
)
@ -249,13 +250,13 @@ Return Value:
PCOMMON_DEVICE_EXTENSION commonExtension = Fdo->DeviceExtension;
PFUNCTIONAL_DEVICE_EXTENSION fdoExtension = Fdo->DeviceExtension;
PPHYSICAL_DEVICE_EXTENSION pdoExtension = NULL;
//PPHYSICAL_DEVICE_EXTENSION pdoExtension = NULL;
PDISK_DATA diskData = (PDISK_DATA) commonExtension->DriverData;
PDEVICE_OBJECT pdo = NULL;
//PDEVICE_OBJECT pdo = NULL;
ULONG numberListElements = 0;
//ULONG numberListElements = 0;
PDRIVE_LAYOUT_INFORMATION_EX partitionList;
@ -358,8 +359,8 @@ Return Value:
} // end DiskEnumerateDevice()
VOID
NTAPI
DiskUpdateRemovablePartitions(
IN PDEVICE_OBJECT Fdo,
IN OUT PDRIVE_LAYOUT_INFORMATION_EX PartitionList
@ -395,7 +396,7 @@ Return Value:
ULONG partitionNumber;
ULONG partitionOrdinal = 0;
ULONG newPartitionNumber;
//ULONG newPartitionNumber;
PDISK_DATA pdoData;
NTSTATUS status;
@ -586,8 +587,8 @@ Return Value:
return;
}
VOID
NTAPI
DiskUpdatePartitions(
IN PDEVICE_OBJECT Fdo,
IN OUT PDRIVE_LAYOUT_INFORMATION_EX PartitionList
@ -828,7 +829,7 @@ Return Value:
} else {
PDEVICE_OBJECT nextPdo;
//PDEVICE_OBJECT nextPdo;
DebugPrint ((1, "DiskUpdatePartitions: Deleting %wZ\n",
&pdoExtension->CommonExtension.DeviceName));
@ -1019,8 +1020,8 @@ Return Value:
return;
}
NTSTATUS
NTAPI
DiskCreatePdo(
IN PDEVICE_OBJECT Fdo,
IN ULONG PartitionOrdinal,
@ -1208,11 +1209,8 @@ Return Value:
return status;
}
VOID
NTAPI
DiskAcquirePartitioningLock(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension
)
@ -1231,8 +1229,8 @@ DiskAcquirePartitioningLock(
return;
}
VOID
NTAPI
DiskReleasePartitioningLock(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension
)

View file

@ -28,22 +28,26 @@ Revision History:
#if defined (_X86_)
DISK_GEOMETRY_SOURCE
NTAPI
DiskUpdateGeometry(
IN PFUNCTIONAL_DEVICE_EXTENSION DeviceExtension
);
NTSTATUS
NTAPI
DiskUpdateRemovableGeometry (
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension
);
VOID
NTAPI
DiskScanBusDetectInfo(
IN PDRIVER_OBJECT DriverObject,
IN HANDLE BusKey
);
NTSTATUS
NTAPI
DiskSaveBusDetectInfo(
IN PDRIVER_OBJECT DriverObject,
IN HANDLE TargetKey,
@ -51,12 +55,14 @@ DiskSaveBusDetectInfo(
);
NTSTATUS
NTAPI
DiskSaveGeometryDetectInfo(
IN PDRIVER_OBJECT DriverObject,
IN HANDLE HardwareKey
);
NTSTATUS
NTAPI
DiskGetPortGeometry(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
OUT PDISK_GEOMETRY Geometry
@ -94,8 +100,8 @@ ULONG DetectInfoUsedCount = 0;
#endif
NTSTATUS
NTAPI
DiskSaveDetectInfo(
PDRIVER_OBJECT DriverObject
)
@ -208,8 +214,8 @@ Return Value:
return STATUS_SUCCESS;
}
VOID
NTAPI
DiskCleanupDetectInfo(
IN PDRIVER_OBJECT DriverObject
)
@ -237,8 +243,8 @@ Return Value:
return;
}
NTSTATUS
NTAPI
DiskSaveGeometryDetectInfo(
IN PDRIVER_OBJECT DriverObject,
IN HANDLE HardwareKey
@ -363,8 +369,8 @@ DiskSaveGeometryDetectInfo(
return STATUS_SUCCESS;
}
VOID
NTAPI
DiskScanBusDetectInfo(
IN PDRIVER_OBJECT DriverObject,
IN HANDLE BusKey
@ -520,8 +526,8 @@ Return Value:
return;
}
NTSTATUS
NTAPI
DiskSaveBusDetectInfo(
IN PDRIVER_OBJECT DriverObject,
IN HANDLE TargetKey,
@ -681,8 +687,8 @@ Return Value:
return STATUS_SUCCESS;
}
DISK_GEOMETRY_SOURCE
NTAPI
DiskUpdateGeometry(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension
)
@ -769,7 +775,7 @@ Return Value:
ULONG sectorsPerTrack;
ULONG tracksPerCylinder;
ULONG sectors;
//ULONG sectors;
ULONG length;
//
@ -882,8 +888,8 @@ Return Value:
return diskData->GeometrySource;
}
NTSTATUS
NTAPI
DiskUpdateRemovableGeometry (
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension
)
@ -941,8 +947,8 @@ Return Value:
return status;
}
NTSTATUS
NTAPI
DiskGetPortGeometry(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
OUT PDISK_GEOMETRY Geometry
@ -1019,9 +1025,8 @@ Return Value:
return status;
}
NTSTATUS
NTAPI
DiskReadDriveCapacity(
IN PDEVICE_OBJECT Fdo
)
@ -1049,8 +1054,8 @@ Return Value:
{
PFUNCTIONAL_DEVICE_EXTENSION fdoExtension = Fdo->DeviceExtension;
PDISK_DATA diskData = fdoExtension->CommonExtension.DriverData;
DISK_GEOMETRY_SOURCE diskGeometrySource = DiskGeometryUnknown;
//PDISK_DATA diskData = fdoExtension->CommonExtension.DriverData;
//DISK_GEOMETRY_SOURCE diskGeometrySource = DiskGeometryUnknown;
NTSTATUS status;
ASSERT_FDO(Fdo);
@ -1058,7 +1063,7 @@ Return Value:
if (TEST_FLAG(Fdo->Characteristics, FILE_REMOVABLE_MEDIA)) {
DiskUpdateRemovableGeometry(fdoExtension);
} else {
diskGeometrySource = DiskUpdateGeometry(fdoExtension);
/* diskGeometrySource =*/ DiskUpdateGeometry(fdoExtension);
}
status = ClassReadDriveCapacity(Fdo);
@ -1066,9 +1071,8 @@ Return Value:
return status;
}
VOID
NTAPI
DiskDriverReinitialization(
IN PDRIVER_OBJECT DriverObject,
IN PVOID Nothing,
@ -1238,7 +1242,7 @@ Return Value:
ULONG sectorsPerTrack;
ULONG tracksPerCylinder;
ULONG sectors;
//ULONG sectors;
ULONG length;
//
@ -1321,8 +1325,8 @@ Return Value:
return;
}
NTSTATUS
NTAPI
DiskGetDetectInfo(
IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
OUT PDISK_DETECTION_INFO DetectInfo
@ -1408,8 +1412,8 @@ Return Value:
return (found ? STATUS_SUCCESS : STATUS_UNSUCCESSFUL);
}
NTSTATUS
NTAPI
DiskReadSignature(
IN PDEVICE_OBJECT Fdo
)
@ -1466,5 +1470,3 @@ Return Value:
}
#endif // defined(_X86_)

View file

@ -45,6 +45,7 @@ ULONG DiskDisableGpt = TRUE;
#endif
NTSTATUS
NTAPI
DiskReadPartitionTableEx(
IN PFUNCTIONAL_DEVICE_EXTENSION Fdo,
IN BOOLEAN BypassCache,
@ -193,8 +194,8 @@ Return Value:
return status;
}
NTSTATUS
NTAPI
DiskWritePartitionTableEx(
IN PFUNCTIONAL_DEVICE_EXTENSION Fdo,
IN PDRIVE_LAYOUT_INFORMATION_EX DriveLayout
@ -240,6 +241,7 @@ Return Value:
}
NTSTATUS
NTAPI
DiskSetPartitionInformationEx(
IN PFUNCTIONAL_DEVICE_EXTENSION Fdo,
IN ULONG PartitionNumber,
@ -264,6 +266,7 @@ DiskSetPartitionInformationEx(
}
NTSTATUS
NTAPI
DiskSetPartitionInformation(
IN PFUNCTIONAL_DEVICE_EXTENSION Fdo,
IN ULONG SectorSize,
@ -284,6 +287,7 @@ DiskSetPartitionInformation(
}
BOOLEAN
NTAPI
DiskInvalidatePartitionTable(
IN PFUNCTIONAL_DEVICE_EXTENSION Fdo,
IN BOOLEAN PartitionLockHeld
@ -309,6 +313,7 @@ DiskInvalidatePartitionTable(
}
NTSTATUS
NTAPI
DiskVerifyPartitionTable(
IN PFUNCTIONAL_DEVICE_EXTENSION Fdo,
IN BOOLEAN FixErrors
@ -324,4 +329,3 @@ DiskVerifyPartitionTable(
return IoVerifyPartitionTable(Fdo->DeviceObject, FixErrors);
}

View file

@ -39,8 +39,8 @@ extern NTSYSAPI ULONG InitSafeBootMode;
#endif
NTSTATUS
NTAPI
DiskAddDevice(
IN PDRIVER_OBJECT DriverObject,
IN PDEVICE_OBJECT PhysicalDeviceObject
@ -185,9 +185,8 @@ Return Value:
} // end DiskAddDevice()
NTSTATUS
NTAPI
DiskInitFdo(
IN PDEVICE_OBJECT Fdo
)
@ -214,16 +213,16 @@ Return Value:
PDISK_DATA diskData = (PDISK_DATA) fdoExtension->CommonExtension.DriverData;
ULONG srbFlags = 0;
//ULONG srbFlags = 0;
ULONG timeOut = 0;
ULONG bytesPerSector;
UCHAR sectorShift;
//UCHAR sectorShift;
BOOLEAN dmActive = FALSE;
//BOOLEAN dmActive = FALSE;
PULONG dmSkew;
ULONG dmByteSkew;
//ULONG dmByteSkew;
NTSTATUS status;
@ -279,7 +278,7 @@ Return Value:
DiskScanRegistryForSpecial(fdoExtension);
srbFlags = fdoExtension->SrbFlags;
//srbFlags = fdoExtension->SrbFlags;
//
// Clear buffer for drive geometry.
@ -413,7 +412,7 @@ Return Value:
bytesPerSector = fdoExtension->DiskGeometry.BytesPerSector = 512;
}
sectorShift = fdoExtension->SectorShift;
//sectorShift = fdoExtension->SectorShift;
//
// Determine is DM Driver is loaded on an IDE drive that is
@ -443,8 +442,8 @@ Return Value:
// blown away.
//
dmActive = TRUE;
dmByteSkew = fdoExtension->DMByteSkew;
//dmActive = TRUE;
//dmByteSkew = fdoExtension->DMByteSkew;
}
@ -557,8 +556,8 @@ Return Value:
} // end DiskInitFdo()
NTSTATUS
NTAPI
DiskInitPdo(
IN PDEVICE_OBJECT Pdo
)
@ -615,8 +614,8 @@ Routine Description:
return STATUS_SUCCESS;
}
NTSTATUS
NTAPI
DiskStartPdo(
IN PDEVICE_OBJECT Pdo
)
@ -637,6 +636,7 @@ Routine Description:
}
NTSTATUS
NTAPI
DiskStopDevice(
IN PDEVICE_OBJECT DeviceObject,
IN UCHAR Type
@ -654,8 +654,8 @@ DiskStopDevice(
return STATUS_SUCCESS;
}
NTSTATUS
NTAPI
DiskQueryId(
IN PDEVICE_OBJECT Pdo,
IN BUS_QUERY_ID_TYPE IdType,
@ -695,7 +695,7 @@ Return Value:
{
ANSI_STRING ansiIdString;
NTSTATUS status;
//NTSTATUS status;
PAGED_CODE();
ASSERT_PDO(Pdo);
@ -715,7 +715,7 @@ Return Value:
if(IdType == BusQueryInstanceID) {
PPHYSICAL_DEVICE_EXTENSION pdoExtension = Pdo->DeviceExtension;
//PPHYSICAL_DEVICE_EXTENSION pdoExtension = Pdo->DeviceExtension;
PCOMMON_DEVICE_EXTENSION commonExtension = Pdo->DeviceExtension;
PDISK_DATA diskData = commonExtension->PartitionZeroExtension->CommonExtension.DriverData;
@ -778,8 +778,8 @@ Return Value:
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
DiskGenerateDeviceName(
IN BOOLEAN IsFdo,
IN ULONG DeviceNumber,
@ -859,8 +859,8 @@ Return Value:
return STATUS_SUCCESS;
}
VOID
NTAPI
DiskCreateSymbolicLinks(
IN PDEVICE_OBJECT DeviceObject
)
@ -983,8 +983,8 @@ Return Value:
return;
}
VOID
NTAPI
DiskDeleteSymbolicLinks(
IN PDEVICE_OBJECT DeviceObject
)
@ -1049,8 +1049,8 @@ Return Value:
return;
}
NTSTATUS
NTAPI
DiskRemoveDevice(
IN PDEVICE_OBJECT DeviceObject,
IN UCHAR Type
@ -1132,7 +1132,7 @@ Return Value:
} else {
PPHYSICAL_DEVICE_EXTENSION pdoExtension = DeviceObject->DeviceExtension;
//PPHYSICAL_DEVICE_EXTENSION pdoExtension = DeviceObject->DeviceExtension;
}
@ -1157,8 +1157,8 @@ Return Value:
return STATUS_SUCCESS;
}
NTSTATUS
NTAPI
DiskStartFdo(
IN PDEVICE_OBJECT Fdo
)
@ -1400,4 +1400,3 @@ Return Value:
return STATUS_SUCCESS;
} // end DiskStartFdo()