https://git.reactos.org/?p=reactos.git;a=commitdiff;h=89971a37577590899e044…
commit 89971a37577590899e044cff39e4f857d5c54007
Author: Serge Gautherie <32623169+SergeGautherie(a)users.noreply.github.com>
AuthorDate: Sat Jul 18 15:31:48 2020 +0200
Commit: GitHub <noreply(a)github.com>
CommitDate: Sat Jul 18 15:31:48 2020 +0200
[CDFS][FLOPPY_NEW] Simplify unsupported NT6.2+ workarounds (#2956)
---
drivers/filesystems/cdfs/cdprocs.h | 26 ++++---------
drivers/storage/floppy_new/floppy.c | 73 +++----------------------------------
2 files changed, 14 insertions(+), 85 deletions(-)
diff --git a/drivers/filesystems/cdfs/cdprocs.h b/drivers/filesystems/cdfs/cdprocs.h
index d90591772d2..442b8902c65 100644
--- a/drivers/filesystems/cdfs/cdprocs.h
+++ b/drivers/filesystems/cdfs/cdprocs.h
@@ -55,6 +55,14 @@ Abstract:
#pragma warning( pop )
#endif
+#ifdef __REACTOS__
+// Downgrade unsupported NT6.2+ features.
+#undef MdlMappingNoExecute
+#define MdlMappingNoExecute 0
+#define NonPagedPoolNx NonPagedPool
+#define NonPagedPoolNxCacheAligned NonPagedPoolCacheAligned
+#endif
+
//**** x86 compiler bug ****
#if defined(_M_IX86)
@@ -372,7 +380,6 @@ CdHijackIrpAndFlushDevice (
// );
//
-#ifndef __REACTOS__
#define CdMapUserBuffer(IC, UB) { \
*(UB) = (PVOID) ( ((IC)->Irp->MdlAddress == NULL) ? \
(IC)->Irp->UserBuffer : \
@@ -382,18 +389,6 @@ CdHijackIrpAndFlushDevice (
} \
}
-#else
-#define CdMapUserBuffer(IC, UB) { \
- *(UB) = (PVOID) ( ((IC)->Irp->MdlAddress == NULL) ? \
- (IC)->Irp->UserBuffer : \
- (MmGetSystemAddressForMdlSafe( (IC)->Irp->MdlAddress,
NormalPagePriority))); \
- if (NULL == *(UB)) { \
- CdRaiseStatus( (IC), STATUS_INSUFFICIENT_RESOURCES); \
- } \
- }
-
-#endif
-
#define CdLockUserBuffer(IC,BL,OP) { \
if ((IC)->Irp->MdlAddress == NULL) { \
@@ -1383,13 +1378,8 @@ CdProcessToc (
//
#define CdPagedPool PagedPool
-#ifndef __REACTOS__
#define CdNonPagedPool NonPagedPoolNx
#define CdNonPagedPoolCacheAligned NonPagedPoolNxCacheAligned
-#else
-#define CdNonPagedPool NonPagedPool
-#define CdNonPagedPoolCacheAligned NonPagedPoolCacheAligned
-#endif
//
diff --git a/drivers/storage/floppy_new/floppy.c b/drivers/storage/floppy_new/floppy.c
index 90f0615adfd..16c30dcb9ec 100644
--- a/drivers/storage/floppy_new/floppy.c
+++ b/drivers/storage/floppy_new/floppy.c
@@ -46,6 +46,12 @@ Revision History:
#include <ntstrsafe.h>
#include <intsafe.h>
+#ifdef __REACTOS__
+// Downgrade unsupported NT6.2+ features.
+#define NonPagedPoolNx NonPagedPool
+#define NonPagedPoolNxCacheAligned NonPagedPoolCacheAligned
+#endif
+
#define MODE_DATA_SIZE 192
#define SCSI_FLOPPY_TIMEOUT 20
#define SFLOPPY_SRB_LIST_SIZE 4
@@ -834,11 +840,7 @@ ScsiFlopInitDevice(
// Allocate request sense buffer.
//
-#ifndef __REACTOS__
senseData = ExAllocatePool(NonPagedPoolNxCacheAligned, SENSE_BUFFER_SIZE);
-#else
- senseData = ExAllocatePool(NonPagedPoolCacheAligned, SENSE_BUFFER_SIZE);
-#endif
if (senseData == NULL) {
@@ -1160,11 +1162,7 @@ Return Value:
//
Irp->IoStatus.Information = 0;
-#ifndef __REACTOS__
srb = ExAllocatePool(NonPagedPoolNx, SCSI_REQUEST_BLOCK_SIZE);
-#else
- srb = ExAllocatePool(NonPagedPool, SCSI_REQUEST_BLOCK_SIZE);
-#endif
if (srb == NULL) {
@@ -1530,11 +1528,7 @@ Return Value:
// Determine if the device is writable.
//
-#ifndef __REACTOS__
modeData = ExAllocatePool(NonPagedPoolNxCacheAligned, MODE_DATA_SIZE);
-#else
- modeData = ExAllocatePool(NonPagedPoolCacheAligned, MODE_DATA_SIZE);
-#endif
if (modeData == NULL) {
status = STATUS_INSUFFICIENT_RESOURCES;
@@ -1845,20 +1839,12 @@ Return Value:
// Allocate a Srb for the read command.
//
-#ifndef __REACTOS__
readData = ExAllocatePool(NonPagedPoolNx, geometry->BytesPerSector);
-#else
- readData = ExAllocatePool(NonPagedPool, geometry->BytesPerSector);
-#endif
if (readData == NULL) {
return STATUS_NO_MEMORY;
}
-#ifndef __REACTOS__
srb = ExAllocatePool(NonPagedPoolNx, SCSI_REQUEST_BLOCK_SIZE);
-#else
- srb = ExAllocatePool(NonPagedPool, SCSI_REQUEST_BLOCK_SIZE);
-#endif
if (srb == NULL) {
@@ -1948,11 +1934,7 @@ Return Value:
return(diskData->DriveType);
}
-#ifndef __REACTOS__
modeData = ExAllocatePool(NonPagedPoolNxCacheAligned, MODE_DATA_SIZE);
-#else
- modeData = ExAllocatePool(NonPagedPoolCacheAligned, MODE_DATA_SIZE);
-#endif
if (modeData == NULL) {
return(DRIVE_TYPE_NONE);
@@ -2217,11 +2199,7 @@ Return Value:
PAGED_CODE();
-#ifndef __REACTOS__
modeData = ExAllocatePool(NonPagedPoolNxCacheAligned, MODE_DATA_SIZE);
-#else
- modeData = ExAllocatePool(NonPagedPoolCacheAligned, MODE_DATA_SIZE);
-#endif
if (modeData == NULL) {
return(STATUS_INSUFFICIENT_RESOURCES);
@@ -2320,11 +2298,7 @@ Return Value:
// Allocate a Srb for the format command.
//
-#ifndef __REACTOS__
srb = ExAllocatePool(NonPagedPoolNx, SCSI_REQUEST_BLOCK_SIZE);
-#else
- srb = ExAllocatePool(NonPagedPool, SCSI_REQUEST_BLOCK_SIZE);
-#endif
if (srb == NULL) {
@@ -2384,11 +2358,7 @@ Return Value:
// Allocate a Srb for the format command.
//
-#ifndef __REACTOS__
srb = ExAllocatePool(NonPagedPoolNx, SCSI_REQUEST_BLOCK_SIZE);
-#else
- srb = ExAllocatePool(NonPagedPool, SCSI_REQUEST_BLOCK_SIZE);
-#endif
if (srb == NULL) {
return(STATUS_INSUFFICIENT_RESOURCES);
@@ -2514,13 +2484,8 @@ Return Value:
DebugPrint((2,"Sending SCSIOP_START_STOP_UNIT\n"));
-#ifndef __REACTOS__
context = ExAllocatePool(NonPagedPoolNx,
sizeof(COMPLETION_CONTEXT));
-#else
- context = ExAllocatePool(NonPagedPool,
- sizeof(COMPLETION_CONTEXT));
-#endif
if (context == NULL) {
@@ -2599,11 +2564,7 @@ Return Value:
context = NULL;
if (!overFlow) {
-#ifndef __REACTOS__
context = ExAllocatePool(NonPagedPoolNx, sizeNeeded);
-#else
- context = ExAllocatePool(NonPagedPool, sizeNeeded);
-#endif
}
if (context == NULL) {
@@ -2765,11 +2726,7 @@ Return Value:
driveMediaConstants->SectorsPerTrack *
driveMediaConstants->BytesPerSector;
-#ifndef __REACTOS__
buffer = ExAllocatePool(NonPagedPoolNxCacheAligned, length);
-#else
- buffer = ExAllocatePool(NonPagedPoolCacheAligned, length);
-#endif
if (buffer == NULL) {
return(STATUS_INSUFFICIENT_RESOURCES);
@@ -3051,11 +3008,7 @@ Return Value:
// Allocate an SRB for the SCSIOP_READ_FORMATTED_CAPACITY request
//
-#ifndef __REACTOS__
srb = ExAllocatePool(NonPagedPoolNx, SCSI_REQUEST_BLOCK_SIZE);
-#else
- srb = ExAllocatePool(NonPagedPool, SCSI_REQUEST_BLOCK_SIZE);
-#endif
if (srb == NULL)
{
@@ -3071,11 +3024,7 @@ Return Value:
ASSERT(dataTransferLength < 0x100);
-#ifndef __REACTOS__
dataBuffer = ExAllocatePool(NonPagedPoolNx, dataTransferLength);
-#else
- dataBuffer = ExAllocatePool(NonPagedPool, dataTransferLength);
-#endif
if (dataBuffer == NULL)
{
@@ -3425,11 +3374,7 @@ Return Value:
// Allocate an SRB for the SCSIOP_FORMAT_UNIT request
//
-#ifndef __REACTOS__
srb = ExAllocatePool(NonPagedPoolNx, SCSI_REQUEST_BLOCK_SIZE);
-#else
- srb = ExAllocatePool(NonPagedPool, SCSI_REQUEST_BLOCK_SIZE);
-#endif
if (srb == NULL)
{
@@ -3438,13 +3383,8 @@ Return Value:
// Allocate a transfer buffer for the SCSIOP_FORMAT_UNIT parameter list
//
-#ifndef __REACTOS__
parameterList = ExAllocatePool(NonPagedPoolNx,
sizeof(FORMAT_UNIT_PARAMETER_LIST));
-#else
- parameterList = ExAllocatePool(NonPagedPool,
- sizeof(FORMAT_UNIT_PARAMETER_LIST));
-#endif
if (parameterList == NULL)
{
@@ -3573,4 +3513,3 @@ Return Value:
return status;
}
-