mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 06:46:06 +00:00
sync with trunk r49322
svn path=/branches/cmake-bringup/; revision=49323
This commit is contained in:
commit
ed8cab27c4
13 changed files with 2668 additions and 2683 deletions
|
@ -1,61 +0,0 @@
|
||||||
NAME CLASSPNP.SYS
|
|
||||||
|
|
||||||
EXPORTS
|
|
||||||
ClassInitialize@12
|
|
||||||
ClassInitializeEx@12
|
|
||||||
ClassGetDescriptor@12
|
|
||||||
ClassReadDriveCapacity@4
|
|
||||||
ClassReleaseQueue@4
|
|
||||||
ClassAsynchronousCompletion@12
|
|
||||||
ClassSplitRequest@12
|
|
||||||
ClassDeviceControl@8
|
|
||||||
ClassIoComplete@12
|
|
||||||
ClassIoCompleteAssociated@12
|
|
||||||
ClassInterpretSenseInfo@28
|
|
||||||
ClassSendDeviceIoControlSynchronous@28
|
|
||||||
ClassSendIrpSynchronous@8
|
|
||||||
ClassForwardIrpSynchronous@8
|
|
||||||
ClassSendSrbSynchronous@20
|
|
||||||
ClassSendSrbAsynchronous@24
|
|
||||||
ClassBuildRequest@8
|
|
||||||
ClassModeSense@16
|
|
||||||
ClassFindModePage@16
|
|
||||||
ClassClaimDevice@8
|
|
||||||
ClassInternalIoControl@8
|
|
||||||
ClassCreateDeviceObject@20
|
|
||||||
ClassRemoveDevice@8
|
|
||||||
ClassInitializeSrbLookasideList@8
|
|
||||||
ClassDeleteSrbLookasideList@4
|
|
||||||
ClassQueryTimeOutRegistryValue@4
|
|
||||||
ClassInvalidateBusRelations@4
|
|
||||||
ClassMarkChildrenMissing@4
|
|
||||||
ClassMarkChildMissing@8
|
|
||||||
ClassDebugPrint
|
|
||||||
ClassGetDriverExtension@4
|
|
||||||
ClassCompleteRequest@12
|
|
||||||
ClassReleaseRemoveLock@8
|
|
||||||
ClassAcquireRemoveLockEx@16
|
|
||||||
ClassUpdateInformationInRegistry@20
|
|
||||||
ClassWmiCompleteRequest@20
|
|
||||||
ClassWmiFireEvent@20
|
|
||||||
ClassGetVpb@4
|
|
||||||
ClassSetFailurePredictionPoll@12
|
|
||||||
ClassNotifyFailurePredicted@32
|
|
||||||
ClassInitializeTestUnitPolling@8
|
|
||||||
ClassSignalCompletion@12
|
|
||||||
ClassSendStartUnit@4
|
|
||||||
ClassSetMediaChangeState@12
|
|
||||||
ClassResetMediaChangeTimer@4
|
|
||||||
ClassCheckMediaState@4
|
|
||||||
ClassInitializeMediaChangeDetection@8
|
|
||||||
ClassCleanupMediaChangeDetection@4
|
|
||||||
ClassEnableMediaChangeDetection@4
|
|
||||||
ClassDisableMediaChangeDetection@4
|
|
||||||
ClassSpinDownPowerHandler@8
|
|
||||||
ClassStopUnitPowerHandler@8
|
|
||||||
ClassAcquireChildLock@4
|
|
||||||
ClassReleaseChildLock@4
|
|
||||||
ClassScanForSpecial@12
|
|
||||||
ClassSetDeviceParameter@16
|
|
||||||
ClassGetDeviceParameter@16
|
|
||||||
|
|
59
drivers/storage/classpnp/class.spec
Normal file
59
drivers/storage/classpnp/class.spec
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
|
||||||
|
@ stdcall ClassInitialize(ptr ptr ptr)
|
||||||
|
@ stdcall ClassInitializeEx(ptr ptr ptr)
|
||||||
|
@ stdcall ClassGetDescriptor(ptr ptr ptr)
|
||||||
|
@ stdcall ClassReadDriveCapacity(ptr)
|
||||||
|
@ stdcall ClassReleaseQueue(ptr)
|
||||||
|
@ stdcall ClassAsynchronousCompletion(ptr ptr ptr)
|
||||||
|
@ stdcall ClassSplitRequest(ptr ptr long)
|
||||||
|
@ stdcall ClassDeviceControl(ptr ptr)
|
||||||
|
@ stdcall ClassIoComplete(ptr ptr ptr)
|
||||||
|
@ stdcall ClassIoCompleteAssociated(ptr ptr ptr)
|
||||||
|
@ stdcall ClassInterpretSenseInfo(ptr ptr long long long ptr ptr)
|
||||||
|
@ stdcall ClassSendDeviceIoControlSynchronous(long ptr ptr long long long ptr)
|
||||||
|
@ stdcall ClassSendIrpSynchronous(ptr ptr)
|
||||||
|
@ stdcall ClassForwardIrpSynchronous(ptr ptr)
|
||||||
|
@ stdcall ClassSendSrbSynchronous(ptr ptr ptr long long)
|
||||||
|
@ stdcall ClassSendSrbAsynchronous(ptr ptr ptr ptr long long)
|
||||||
|
@ stdcall ClassBuildRequest(ptr ptr)
|
||||||
|
@ stdcall ClassModeSense(ptr ptr long long)
|
||||||
|
@ stdcall ClassFindModePage(ptr long long long)
|
||||||
|
@ stdcall ClassClaimDevice(ptr long)
|
||||||
|
@ stdcall ClassInternalIoControl(ptr ptr)
|
||||||
|
@ stdcall ClassCreateDeviceObject(ptr ptr ptr long ptr)
|
||||||
|
@ stdcall ClassRemoveDevice(ptr long)
|
||||||
|
@ stdcall ClassInitializeSrbLookasideList(ptr long)
|
||||||
|
@ stdcall ClassDeleteSrbLookasideList(ptr)
|
||||||
|
@ stdcall ClassQueryTimeOutRegistryValue(ptr)
|
||||||
|
@ stdcall ClassInvalidateBusRelations(ptr)
|
||||||
|
@ stdcall ClassMarkChildrenMissing(ptr)
|
||||||
|
@ stdcall ClassMarkChildMissing(ptr long)
|
||||||
|
@ varargs ClassDebugPrint(long long)
|
||||||
|
@ stdcall ClassGetDriverExtension(ptr)
|
||||||
|
@ stdcall ClassCompleteRequest(ptr ptr long)
|
||||||
|
@ stdcall ClassReleaseRemoveLock(ptr ptr)
|
||||||
|
@ stdcall ClassAcquireRemoveLockEx(ptr ptr ptr long)
|
||||||
|
@ stdcall ClassUpdateInformationInRegistry(ptr ptr long ptr long)
|
||||||
|
@ stdcall ClassWmiCompleteRequest(ptr ptr long long long)
|
||||||
|
@ stdcall ClassWmiFireEvent(ptr ptr long long ptr)
|
||||||
|
@ stdcall ClassGetVpb(ptr)
|
||||||
|
@ stdcall ClassSetFailurePredictionPoll(ptr long long)
|
||||||
|
@ stdcall ClassNotifyFailurePredicted(ptr ptr long long long long long long)
|
||||||
|
@ stdcall ClassInitializeTestUnitPolling(ptr long)
|
||||||
|
@ stdcall ClassSignalCompletion(ptr ptr ptr)
|
||||||
|
@ stdcall ClassSendStartUnit(ptr)
|
||||||
|
@ stdcall ClassSetMediaChangeState(ptr long long)
|
||||||
|
@ stdcall ClassResetMediaChangeTimer(ptr)
|
||||||
|
@ stdcall ClassCheckMediaState(ptr)
|
||||||
|
@ stdcall ClassInitializeMediaChangeDetection(ptr ptr)
|
||||||
|
@ stdcall ClassCleanupMediaChangeDetection(ptr)
|
||||||
|
@ stdcall ClassEnableMediaChangeDetection(ptr)
|
||||||
|
@ stdcall ClassDisableMediaChangeDetection(ptr)
|
||||||
|
@ stdcall ClassSpinDownPowerHandler(ptr ptr)
|
||||||
|
@ stdcall ClassStopUnitPowerHandler(ptr ptr)
|
||||||
|
@ stdcall ClassAcquireChildLock(ptr)
|
||||||
|
@ stdcall ClassReleaseChildLock(ptr)
|
||||||
|
@ stdcall ClassScanForSpecial(ptr ptr ptr)
|
||||||
|
@ stdcall ClassSetDeviceParameter(ptr ptr ptr long)
|
||||||
|
@ stdcall ClassGetDeviceParameter(ptr ptr ptr ptr)
|
||||||
|
|
|
@ -64,6 +64,17 @@
|
||||||
typedef unsigned long POINTER_64_INT;
|
typedef unsigned long POINTER_64_INT;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if 0 /* Not supported yet */
|
||||||
|
#define POINTER_SIGNED __sptr
|
||||||
|
#define POINTER_UNSIGNED __uptr
|
||||||
|
#else
|
||||||
|
#define POINTER_SIGNED
|
||||||
|
#define POINTER_UNSIGNED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define SPOINTER_32 POINTER_SIGNED POINTER_32
|
||||||
|
#define UPOINTER_32 POINTER_UNSIGNED POINTER_32
|
||||||
|
|
||||||
#if defined(_WIN64)
|
#if defined(_WIN64)
|
||||||
#define __int3264 __int64
|
#define __int3264 __int64
|
||||||
#define ADDRESS_TAG_BIT 0x40000000000UI64
|
#define ADDRESS_TAG_BIT 0x40000000000UI64
|
||||||
|
|
|
@ -340,7 +340,6 @@ MMixerSetGetVolumeControlDetails(
|
||||||
if (Index >= VolumeData->ValuesCount)
|
if (Index >= VolumeData->ValuesCount)
|
||||||
{
|
{
|
||||||
DPRINT1("Index %u out of bounds %u \n", Index, VolumeData->ValuesCount);
|
DPRINT1("Index %u out of bounds %u \n", Index, VolumeData->ValuesCount);
|
||||||
DbgBreakPoint();
|
|
||||||
return MM_STATUS_INVALID_PARAMETER;
|
return MM_STATUS_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,23 +14,23 @@ MMixerPrintTopology(
|
||||||
{
|
{
|
||||||
ULONG Index, SubIndex;
|
ULONG Index, SubIndex;
|
||||||
|
|
||||||
DPRINT1("Num Pins %lu NumNodes %lu\n", Topology->TopologyPinsCount, Topology->TopologyNodesCount);
|
DPRINT("Num Pins %lu NumNodes %lu\n", Topology->TopologyPinsCount, Topology->TopologyNodesCount);
|
||||||
|
|
||||||
for(Index = 0; Index < Topology->TopologyPinsCount; Index++)
|
for(Index = 0; Index < Topology->TopologyPinsCount; Index++)
|
||||||
{
|
{
|
||||||
DPRINT1("PinId %lu NodesConnectedFromCount %lu NodesConnectedToCount %lu Visited %lu\n", Topology->TopologyPins[Index].PinId,
|
DPRINT("PinId %lu NodesConnectedFromCount %lu NodesConnectedToCount %lu Visited %lu\n", Topology->TopologyPins[Index].PinId,
|
||||||
Topology->TopologyPins[Index].NodesConnectedFromCount, Topology->TopologyPins[Index].NodesConnectedToCount, Topology->TopologyPins[Index].Visited);
|
Topology->TopologyPins[Index].NodesConnectedFromCount, Topology->TopologyPins[Index].NodesConnectedToCount, Topology->TopologyPins[Index].Visited);
|
||||||
|
|
||||||
for(SubIndex = 0; SubIndex < Topology->TopologyPins[Index].NodesConnectedFromCount; SubIndex++)
|
for(SubIndex = 0; SubIndex < Topology->TopologyPins[Index].NodesConnectedFromCount; SubIndex++)
|
||||||
DPRINT1("NodesConnectedFrom Index %lu NodeId %lu\n", SubIndex, Topology->TopologyPins[Index].NodesConnectedFrom[SubIndex]->NodeIndex);
|
DPRINT("NodesConnectedFrom Index %lu NodeId %lu\n", SubIndex, Topology->TopologyPins[Index].NodesConnectedFrom[SubIndex]->NodeIndex);
|
||||||
|
|
||||||
for(SubIndex = 0; SubIndex < Topology->TopologyPins[Index].NodesConnectedToCount; SubIndex++)
|
for(SubIndex = 0; SubIndex < Topology->TopologyPins[Index].NodesConnectedToCount; SubIndex++)
|
||||||
DPRINT1("NodesConnectedTo Index %lu NodeId %lu\n", SubIndex, Topology->TopologyPins[Index].NodesConnectedTo[SubIndex]->NodeIndex);
|
DPRINT("NodesConnectedTo Index %lu NodeId %lu\n", SubIndex, Topology->TopologyPins[Index].NodesConnectedTo[SubIndex]->NodeIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(Index = 0; Index < Topology->TopologyNodesCount; Index++)
|
for(Index = 0; Index < Topology->TopologyNodesCount; Index++)
|
||||||
{
|
{
|
||||||
DPRINT1("NodeId %lu NodesConnectedFromCount %lu NodesConnectedToCount %lu Visited %lu PinConnectedFromCount %lu PinConnectedToCount %lu\n", Topology->TopologyNodes[Index].NodeIndex,
|
DPRINT("NodeId %lu NodesConnectedFromCount %lu NodesConnectedToCount %lu Visited %lu PinConnectedFromCount %lu PinConnectedToCount %lu\n", Topology->TopologyNodes[Index].NodeIndex,
|
||||||
Topology->TopologyNodes[Index].NodeConnectedFromCount, Topology->TopologyNodes[Index].NodeConnectedToCount, Topology->TopologyNodes[Index].Visited,
|
Topology->TopologyNodes[Index].NodeConnectedFromCount, Topology->TopologyNodes[Index].NodeConnectedToCount, Topology->TopologyNodes[Index].Visited,
|
||||||
Topology->TopologyNodes[Index].PinConnectedFromCount, Topology->TopologyNodes[Index].PinConnectedToCount);
|
Topology->TopologyNodes[Index].PinConnectedFromCount, Topology->TopologyNodes[Index].PinConnectedToCount);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1731,4 +1731,15 @@ IoStartPacket(IN PDEVICE_OBJECT DeviceObject,
|
||||||
KeLowerIrql(OldIrql);
|
KeLowerIrql(OldIrql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined (_WIN64)
|
||||||
|
ULONG
|
||||||
|
NTAPI
|
||||||
|
IoWMIDeviceObjectToProviderId(
|
||||||
|
IN PDEVICE_OBJECT DeviceObject)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -1816,3 +1816,14 @@ IoSetTopLevelIrp(IN PIRP Irp)
|
||||||
/* Set the IRP */
|
/* Set the IRP */
|
||||||
PsGetCurrentThread()->TopLevelIrp = (ULONG_PTR)Irp;
|
PsGetCurrentThread()->TopLevelIrp = (ULONG_PTR)Irp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined (_WIN64)
|
||||||
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
|
IoIs32bitProcess(
|
||||||
|
IN PIRP Irp OPTIONAL)
|
||||||
|
{
|
||||||
|
#pragma message IoIs32bitProcess is hardcoded to FALSE
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -571,7 +571,7 @@ MiInitMachineDependent(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
|
||||||
if (KiI386PentiumLockErrataPresent)
|
if (KiI386PentiumLockErrataPresent)
|
||||||
{
|
{
|
||||||
/* Mark the 1st IDT page as Write-Through to prevent a lockup
|
/* Mark the 1st IDT page as Write-Through to prevent a lockup
|
||||||
on a FOOF instruction.
|
on a F00F instruction.
|
||||||
See http://www.rcollins.org/Errata/Dec97/F00FBug.html */
|
See http://www.rcollins.org/Errata/Dec97/F00FBug.html */
|
||||||
PointerPte = MiAddressToPte(KeGetPcr()->IDT);
|
PointerPte = MiAddressToPte(KeGetPcr()->IDT);
|
||||||
PointerPte->u.Hard.WriteThrough = 1;
|
PointerPte->u.Hard.WriteThrough = 1;
|
||||||
|
|
|
@ -77,6 +77,43 @@ MmProtectToPteMask[32] =
|
||||||
PTE_EXECUTE_WRITECOPY | PTE_WRITECOMBINED_CACHE,
|
PTE_EXECUTE_WRITECOPY | PTE_WRITECOMBINED_CACHE,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const
|
||||||
|
ULONG MmProtectToValue[32] =
|
||||||
|
{
|
||||||
|
PAGE_NOACCESS,
|
||||||
|
PAGE_READONLY,
|
||||||
|
PAGE_EXECUTE,
|
||||||
|
PAGE_EXECUTE_READ,
|
||||||
|
PAGE_READWRITE,
|
||||||
|
PAGE_WRITECOPY,
|
||||||
|
PAGE_EXECUTE_READWRITE,
|
||||||
|
PAGE_EXECUTE_WRITECOPY,
|
||||||
|
PAGE_NOACCESS,
|
||||||
|
PAGE_NOCACHE | PAGE_READONLY,
|
||||||
|
PAGE_NOCACHE | PAGE_EXECUTE,
|
||||||
|
PAGE_NOCACHE | PAGE_EXECUTE_READ,
|
||||||
|
PAGE_NOCACHE | PAGE_READWRITE,
|
||||||
|
PAGE_NOCACHE | PAGE_WRITECOPY,
|
||||||
|
PAGE_NOCACHE | PAGE_EXECUTE_READWRITE,
|
||||||
|
PAGE_NOCACHE | PAGE_EXECUTE_WRITECOPY,
|
||||||
|
PAGE_NOACCESS,
|
||||||
|
PAGE_GUARD | PAGE_READONLY,
|
||||||
|
PAGE_GUARD | PAGE_EXECUTE,
|
||||||
|
PAGE_GUARD | PAGE_EXECUTE_READ,
|
||||||
|
PAGE_GUARD | PAGE_READWRITE,
|
||||||
|
PAGE_GUARD | PAGE_WRITECOPY,
|
||||||
|
PAGE_GUARD | PAGE_EXECUTE_READWRITE,
|
||||||
|
PAGE_GUARD | PAGE_EXECUTE_WRITECOPY,
|
||||||
|
PAGE_NOACCESS,
|
||||||
|
PAGE_WRITECOMBINE | PAGE_READONLY,
|
||||||
|
PAGE_WRITECOMBINE | PAGE_EXECUTE,
|
||||||
|
PAGE_WRITECOMBINE | PAGE_EXECUTE_READ,
|
||||||
|
PAGE_WRITECOMBINE | PAGE_READWRITE,
|
||||||
|
PAGE_WRITECOMBINE | PAGE_WRITECOPY,
|
||||||
|
PAGE_WRITECOMBINE | PAGE_EXECUTE_READWRITE,
|
||||||
|
PAGE_WRITECOMBINE | PAGE_EXECUTE_WRITECOPY
|
||||||
|
};
|
||||||
|
|
||||||
/* PRIVATE FUNCTIONS *******************************************************/
|
/* PRIVATE FUNCTIONS *******************************************************/
|
||||||
|
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
|
@ -418,8 +455,8 @@ MmDeleteVirtualMapping(
|
||||||
{
|
{
|
||||||
Pfn = OldPte.u.Hard.PageFrameNumber;
|
Pfn = OldPte.u.Hard.PageFrameNumber;
|
||||||
|
|
||||||
if (FreePage)
|
//if (FreePage)
|
||||||
MmReleasePageMemoryConsumer(MC_NPPOOL, Pfn);
|
//MmReleasePageMemoryConsumer(MC_NPPOOL, Pfn);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Pfn = 0;
|
Pfn = 0;
|
||||||
|
|
|
@ -454,6 +454,7 @@
|
||||||
@ stdcall IoInitializeTimer(ptr ptr ptr)
|
@ stdcall IoInitializeTimer(ptr ptr ptr)
|
||||||
@ stdcall IoInvalidateDeviceRelations(ptr long)
|
@ stdcall IoInvalidateDeviceRelations(ptr long)
|
||||||
@ stdcall IoInvalidateDeviceState(ptr)
|
@ stdcall IoInvalidateDeviceState(ptr)
|
||||||
|
@ stdcall -arch=x86_64 IoIs32bitProcess(ptr)
|
||||||
@ stdcall IoIsFileOriginRemote(ptr)
|
@ stdcall IoIsFileOriginRemote(ptr)
|
||||||
@ stdcall IoIsOperationSynchronous(ptr)
|
@ stdcall IoIsOperationSynchronous(ptr)
|
||||||
@ stdcall IoIsSystemThread(ptr)
|
@ stdcall IoIsSystemThread(ptr)
|
||||||
|
@ -533,6 +534,7 @@
|
||||||
@ stdcall IoVolumeDeviceToDosName(ptr ptr)
|
@ stdcall IoVolumeDeviceToDosName(ptr ptr)
|
||||||
@ stdcall IoWMIAllocateInstanceIds(ptr long ptr)
|
@ stdcall IoWMIAllocateInstanceIds(ptr long ptr)
|
||||||
@ stdcall IoWMIDeviceObjectToInstanceName(ptr ptr ptr)
|
@ stdcall IoWMIDeviceObjectToInstanceName(ptr ptr ptr)
|
||||||
|
@ stdcall -arch=x86_64 IoWMIDeviceObjectToProviderId(ptr)
|
||||||
@ stdcall IoWMIExecuteMethod(ptr ptr long long ptr ptr)
|
@ stdcall IoWMIExecuteMethod(ptr ptr long long ptr ptr)
|
||||||
@ stdcall IoWMIHandleToInstanceName(ptr ptr ptr)
|
@ stdcall IoWMIHandleToInstanceName(ptr ptr ptr)
|
||||||
@ stdcall IoWMIOpenBlock(ptr long ptr)
|
@ stdcall IoWMIOpenBlock(ptr long ptr)
|
||||||
|
|
|
@ -941,6 +941,12 @@ W32kKeyProcessMessage(LPMSG Msg,
|
||||||
VscVkTable = KeyboardLayout->pVSCtoVK_E1;
|
VscVkTable = KeyboardLayout->pVSCtoVK_E1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!VscVkTable)
|
||||||
|
{
|
||||||
|
DPRINT1("somethings wrong, Prefix=0x%x", Prefix);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
RawVk = 0xff;
|
RawVk = 0xff;
|
||||||
while (VscVkTable->Vsc)
|
while (VscVkTable->Vsc)
|
||||||
{
|
{
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue