* Sync up to trunk head (r65353).
[reactos.git] / drivers / storage / classpnp / classp.h
index a729832..59a2949 100644 (file)
@@ -25,24 +25,14 @@ Revision History:
 
 --*/
 
-#include <stddef.h>
-#include <stdarg.h>
-#include <ntddk.h>
+#ifndef _CLASSPNP_PCH_
+#define _CLASSPNP_PCH_
 
-#include <scsi.h>
-#include <wmidata.h>
+#include <ntddk.h>
 #include <classpnp.h>
-
-#if CLASS_INIT_GUID
-#include <initguid.h>
-#endif
-
-#include <mountdev.h>
 #include <ioevent.h>
 #include <pseh/pseh2.h>
 
-#include "wmistr.h"
-
 extern CLASSPNP_SCAN_FOR_SPECIAL_INFO ClassBadItems[];
 
 extern GUID ClassGuidQueryRegInfoEx;
@@ -508,35 +498,27 @@ static inline BOOLEAN SimpleIsSlistEmpty(SINGLE_LIST_ENTRY *SListHdr)
     return (SListHdr->Next == NULL);
 }
 
-NTSTATUS
-DriverEntry(
-    IN PDRIVER_OBJECT DriverObject,
-    IN PUNICODE_STRING RegistryPath
-    );
+DRIVER_INITIALIZE DriverEntry;
 
-VOID
-ClassUnload(
-    IN PDRIVER_OBJECT DriverObject
-    );
+DRIVER_UNLOAD ClassUnload;
 
-NTSTATUS
-ClassCreateClose(
-    IN PDEVICE_OBJECT DeviceObject,
-    IN PIRP Irp
-    );
+DRIVER_DISPATCH ClassCreateClose;
 
 NTSTATUS
+NTAPI
 ClasspCreateClose(
     IN PDEVICE_OBJECT DeviceObject,
     IN PIRP Irp
     );
 
 VOID
+NTAPI
 ClasspCleanupProtectedLocks(
     IN PFILE_OBJECT_EXTENSION FsContext
     );
 
 NTSTATUS
+NTAPI
 ClasspEjectionControl(
     IN PDEVICE_OBJECT Fdo,
     IN PIRP Irp,
@@ -544,71 +526,37 @@ ClasspEjectionControl(
     IN BOOLEAN Lock
     );
 
-NTSTATUS
-ClassReadWrite(
-    IN PDEVICE_OBJECT DeviceObject,
-    IN PIRP Irp
-    );
+DRIVER_DISPATCH ClassReadWrite;
 
-NTSTATUS
-ClassDeviceControlDispatch(
-    PDEVICE_OBJECT DeviceObject,
-    PIRP Irp
-    );
-
-NTSTATUS
-ClassDeviceControl(
-    PDEVICE_OBJECT DeviceObject,
-    PIRP Irp
-    );
+DRIVER_DISPATCH ClassDeviceControlDispatch;
 
-NTSTATUS
-ClassDispatchPnp(
-    PDEVICE_OBJECT DeviceObject,
-    PIRP Irp
-    );
+DRIVER_DISPATCH ClassDispatchPnp;
 
 NTSTATUS
+NTAPI
 ClassPnpStartDevice(
     IN PDEVICE_OBJECT DeviceObject
     );
 
 NTSTATUS
-ClassInternalIoControl (
-    IN PDEVICE_OBJECT DeviceObject,
-    IN PIRP Irp
-    );
-
-NTSTATUS
+NTAPI
 ClassShutdownFlush(
     IN PDEVICE_OBJECT DeviceObject,
     IN PIRP Irp
     );
 
-NTSTATUS
-ClassSystemControl(
-    IN PDEVICE_OBJECT DeviceObject,
-    IN PIRP Irp
-    );
+DRIVER_DISPATCH ClassSystemControl;
 
 //
 // Class internal routines
 //
 
-NTSTATUS
-ClassAddDevice(
-    IN PDRIVER_OBJECT DriverObject,
-    IN OUT PDEVICE_OBJECT PhysicalDeviceObject
-    );
+DRIVER_ADD_DEVICE ClassAddDevice;
 
-NTSTATUS
-ClasspSendSynchronousCompletion(
-    IN PDEVICE_OBJECT DeviceObject,
-    IN PIRP Irp,
-    IN PVOID Context
-    );
+IO_COMPLETION_ROUTINE ClasspSendSynchronousCompletion;
 
 VOID
+NTAPI
 RetryRequest(
     PDEVICE_OBJECT DeviceObject,
     PIRP Irp,
@@ -618,6 +566,7 @@ RetryRequest(
     );
 
 NTSTATUS
+NTAPI
 ClassIoCompletion(
     IN PDEVICE_OBJECT DeviceObject,
     IN PIRP Irp,
@@ -625,12 +574,14 @@ ClassIoCompletion(
     );
 
 NTSTATUS
+NTAPI
 ClassPnpQueryFdoRelations(
     IN PDEVICE_OBJECT Fdo,
     IN PIRP Irp
     );
 
 NTSTATUS
+NTAPI
 ClassRetrieveDeviceRelations(
     IN PDEVICE_OBJECT Fdo,
     IN DEVICE_RELATION_TYPE RelationType,
@@ -638,6 +589,7 @@ ClassRetrieveDeviceRelations(
     );
 
 NTSTATUS
+NTAPI
 ClassGetPdoId(
     IN PDEVICE_OBJECT Pdo,
     IN BUS_QUERY_ID_TYPE IdType,
@@ -645,18 +597,16 @@ ClassGetPdoId(
     );
 
 NTSTATUS
+NTAPI
 ClassQueryPnpCapabilities(
     IN PDEVICE_OBJECT PhysicalDeviceObject,
     IN PDEVICE_CAPABILITIES Capabilities
     );
 
-VOID
-ClasspStartIo(
-    IN PDEVICE_OBJECT DeviceObject,
-    IN PIRP Irp
-    );
+DRIVER_STARTIO ClasspStartIo;
 
 NTSTATUS
+NTAPI
 ClasspPagingNotificationCompletion(
     IN PDEVICE_OBJECT DeviceObject,
     IN PIRP Irp,
@@ -664,6 +614,7 @@ ClasspPagingNotificationCompletion(
     );
 
 NTSTATUS
+NTAPI
 ClasspMediaChangeCompletion(
     PDEVICE_OBJECT DeviceObject,
     PIRP Irp,
@@ -671,12 +622,14 @@ ClasspMediaChangeCompletion(
     );
 
 PFILE_OBJECT_EXTENSION
+NTAPI
 ClasspGetFsContext(
     IN PCOMMON_DEVICE_EXTENSION CommonExtension,
     IN PFILE_OBJECT FileObject
     );
 
 NTSTATUS
+NTAPI
 ClasspMcnControl(
     IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
     IN PIRP Irp,
@@ -684,16 +637,19 @@ ClasspMcnControl(
     );
 
 VOID
+NTAPI
 ClasspRegisterMountedDeviceInterface(
     IN PDEVICE_OBJECT DeviceObject
     );
 
 NTSTATUS
+NTAPI
 ClasspDisableTimer(
     PDEVICE_OBJECT DeviceObject
     );
 
 NTSTATUS
+NTAPI
 ClasspEnableTimer(
     PDEVICE_OBJECT DeviceObject
     );
@@ -703,16 +659,19 @@ ClasspEnableTimer(
 //
 
 VOID
+NTAPI
 InitializeDictionary(
     IN PDICTIONARY Dictionary
     );
 
 BOOLEAN
+NTAPI
 TestDictionarySignature(
     IN PDICTIONARY Dictionary
     );
 
 NTSTATUS
+NTAPI
 AllocateDictionaryEntry(
     IN PDICTIONARY Dictionary,
     IN ULONGLONG Key,
@@ -722,12 +681,14 @@ AllocateDictionaryEntry(
     );
 
 PVOID
+NTAPI
 GetDictionaryEntry(
     IN PDICTIONARY Dictionary,
     IN ULONGLONG Key
     );
 
 VOID
+NTAPI
 FreeDictionaryEntry(
     IN PDICTIONARY Dictionary,
     IN PVOID Entry
@@ -735,29 +696,28 @@ FreeDictionaryEntry(
 
 
 NTSTATUS
+NTAPI
 ClasspAllocateReleaseRequest(
     IN PDEVICE_OBJECT Fdo
     );
 
 VOID
+NTAPI
 ClasspFreeReleaseRequest(
     IN PDEVICE_OBJECT Fdo
     );
 
-NTSTATUS
-ClassReleaseQueueCompletion(
-    IN PDEVICE_OBJECT DeviceObject,
-    IN PIRP Irp,
-    IN PVOID Context
-    );
+IO_COMPLETION_ROUTINE ClassReleaseQueueCompletion;
 
 VOID
+NTAPI
 ClasspReleaseQueue(
     IN PDEVICE_OBJECT DeviceObject,
     IN PIRP ReleaseQueueIrp
     );
 
 VOID
+NTAPI
 ClasspDisablePowerNotification(
     PFUNCTIONAL_DEVICE_EXTENSION FdoExtension
 );
@@ -766,13 +726,10 @@ ClasspDisablePowerNotification(
 // class power routines
 //
 
-NTSTATUS
-ClassDispatchPower(
-    IN PDEVICE_OBJECT DeviceObject,
-    IN PIRP Irp
-    );
+DRIVER_DISPATCH ClassDispatchPower;
 
 NTSTATUS
+NTAPI
 ClassMinimalPowerHandler(
     IN PDEVICE_OBJECT DeviceObject,
     IN PIRP Irp
@@ -783,6 +740,7 @@ ClassMinimalPowerHandler(
 //
 
 VOID
+NTAPI
 ClassAddChild(
     IN PFUNCTIONAL_DEVICE_EXTENSION Parent,
     IN PPHYSICAL_DEVICE_EXTENSION Child,
@@ -790,6 +748,7 @@ ClassAddChild(
     );
 
 PPHYSICAL_DEVICE_EXTENSION
+NTAPI
 ClassRemoveChild(
     IN PFUNCTIONAL_DEVICE_EXTENSION Parent,
     IN PPHYSICAL_DEVICE_EXTENSION Child,
@@ -797,25 +756,22 @@ ClassRemoveChild(
     );
 
 VOID
+NTAPI
 ClasspRetryDpcTimer(
     IN PCLASS_PRIVATE_FDO_DATA FdoData
     );
 
-VOID
-ClasspRetryRequestDpc(
-    IN PKDPC Dpc,
-    IN PDEVICE_OBJECT DeviceObject,
-    IN PVOID Arg1,
-    IN PVOID Arg2
-    );
+KDEFERRED_ROUTINE ClasspRetryRequestDpc;
 
 VOID
+NTAPI
 ClassFreeOrReuseSrb(
     IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
     IN PSCSI_REQUEST_BLOCK Srb
     );
 
 VOID
+NTAPI
 ClassRetryRequest(
     IN PDEVICE_OBJECT SelfDeviceObject,
     IN PIRP           Irp,
@@ -823,6 +779,7 @@ ClassRetryRequest(
     );
 
 VOID
+NTAPI
 ClasspBuildRequestEx(
     IN PFUNCTIONAL_DEVICE_EXTENSION Fdo,
     IN PIRP Irp,
@@ -830,17 +787,20 @@ ClasspBuildRequestEx(
     );
 
 NTSTATUS
+NTAPI
 ClasspAllocateReleaseQueueIrp(
     IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension
     );
 
 NTSTATUS
+NTAPI
 ClasspInitializeGesn(
     IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
     IN PMEDIA_CHANGE_DETECTION_INFO Info
     );
 
 VOID
+NTAPI
 ClasspSendNotification(
     IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
     IN const GUID * Guid,
@@ -849,60 +809,64 @@ ClasspSendNotification(
     );
 
 VOID
+NTAPI
 ClassSendEjectionNotification(
     IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension
     );
 
 VOID
+NTAPI
 ClasspScanForSpecialInRegistry(
     IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension
     );
 
 VOID
+NTAPI
 ClasspScanForClassHacks(
     IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
     IN ULONG_PTR Data
     );
 
 NTSTATUS
+NTAPI
 ClasspInitializeHotplugInfo(
     IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension
     );
 
 VOID
+NTAPI
 ClasspPerfIncrementErrorCount(
     IN PFUNCTIONAL_DEVICE_EXTENSION FdoExtension
     );
 VOID
+NTAPI
 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);
-
-
-
-
-
+PTRANSFER_PACKET NTAPI NewTransferPacket(PDEVICE_OBJECT Fdo);
+VOID NTAPI DestroyTransferPacket(PTRANSFER_PACKET Pkt);
+VOID NTAPI EnqueueFreeTransferPacket(PDEVICE_OBJECT Fdo, PTRANSFER_PACKET Pkt);
+PTRANSFER_PACKET NTAPI DequeueFreeTransferPacket(PDEVICE_OBJECT Fdo, BOOLEAN AllocIfNeeded);
+VOID NTAPI SetupReadWriteTransferPacket(PTRANSFER_PACKET pkt, PVOID Buf, ULONG Len, LARGE_INTEGER DiskLocation, PIRP OriginalIrp);
+VOID NTAPI SubmitTransferPacket(PTRANSFER_PACKET Pkt);
+NTSTATUS NTAPI TransferPktComplete(IN PDEVICE_OBJECT NullFdo, IN PIRP Irp, IN PVOID Context);
+VOID NTAPI ServiceTransferRequest(PDEVICE_OBJECT Fdo, PIRP Irp);
+VOID NTAPI TransferPacketRetryTimerDpc(IN PKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2);
+BOOLEAN NTAPI InterpretTransferPacketError(PTRANSFER_PACKET Pkt);
+BOOLEAN NTAPI RetryTransferPacket(PTRANSFER_PACKET Pkt);
+VOID NTAPI EnqueueDeferredClientIrp(PCLASS_PRIVATE_FDO_DATA FdoData, PIRP Irp);
+PIRP NTAPI DequeueDeferredClientIrp(PCLASS_PRIVATE_FDO_DATA FdoData);
+VOID NTAPI InitLowMemRetry(PTRANSFER_PACKET Pkt, PVOID BufPtr, ULONG Len, LARGE_INTEGER TargetLocation);
+BOOLEAN NTAPI StepLowMemRetry(PTRANSFER_PACKET Pkt);
+VOID NTAPI SetupEjectionTransferPacket(TRANSFER_PACKET *Pkt, BOOLEAN PreventMediaRemoval, PKEVENT SyncEventPtr, PIRP OriginalIrp);
+VOID NTAPI SetupModeSenseTransferPacket(TRANSFER_PACKET *Pkt, PKEVENT SyncEventPtr, PVOID ModeSenseBuffer, UCHAR ModeSenseBufferLen, UCHAR PageMode, PIRP OriginalIrp);
+VOID NTAPI SetupDriveCapacityTransferPacket(TRANSFER_PACKET *Pkt, PVOID ReadCapacityBuffer, ULONG ReadCapacityBufferLen, PKEVENT SyncEventPtr, PIRP OriginalIrp);
+PMDL NTAPI BuildDeviceInputMdl(PVOID Buffer, ULONG BufferLen);
+VOID NTAPI FreeDeviceInputMdl(PMDL Mdl);
+NTSTATUS NTAPI InitializeTransferPackets(PDEVICE_OBJECT Fdo);
+VOID NTAPI DestroyAllTransferPackets(PDEVICE_OBJECT Fdo);
+
+#include "debug.h"
+
+#endif /* _CLASSPNP_PCH_ */