#ifndef _INCLUDE_DDK_IOFUNCS_H
#define _INCLUDE_DDK_IOFUNCS_H
-/* $Id: iofuncs.h,v 1.14 2000/06/13 15:50:51 ekohl Exp $ */
+/* $Id: iofuncs.h,v 1.24 2001/06/08 15:06:51 ekohl Exp $ */
/* --- EXPORTED BY NTOSKRNL --- */
* PUNICODE_STRING DeviceName
* );
*/
-#define IoAssignArcName (ArcName, DeviceName) \
- (IoCreateSymbolicLink ((ArcName), (DeviceName)))
+#define IoAssignArcName(ArcName,DeviceName) \
+ (IoCreateSymbolicLink((ArcName),(DeviceName)))
/**********************************************************************
* NAME EXPORTED
KAFFINITY ProcessorEnableMask,
BOOLEAN FloatingSave
);
+
PCONTROLLER_OBJECT
STDCALL
IoCreateController (
);
PDEVICE_OBJECT
STDCALL
+IoGetAttachedDeviceReference (
+ PDEVICE_OBJECT DeviceObject
+ );
+PDEVICE_OBJECT
+STDCALL
IoGetBaseFileSystemDeviceObject (
IN PFILE_OBJECT FileObject
);
#define IoGetCurrentIrpStackLocation(Irp) \
((Irp)->Tail.Overlay.CurrentStackLocation)
*/
-PEPROCESS
+
+#define IoCopyCurrentIrpStackLocationToNext(Irp) { \
+ PIO_STACK_LOCATION IrpSp; \
+ PIO_STACK_LOCATION NextIrpSp; \
+ IrpSp = IoGetCurrentIrpStackLocation((Irp)); \
+ NextIrpSp = IoGetNextIrpStackLocation((Irp)); \
+ RtlCopyMemory(NextIrpSp, IrpSp, \
+ FIELD_OFFSET(IO_STACK_LOCATION, CompletionRoutine)); \
+ NextIrpSp->Control = 0; }
+
+struct _EPROCESS*
STDCALL
IoGetCurrentProcess (
VOID
PDEVICE_OBJECT
STDCALL
IoGetDeviceToVerify (
- PETHREAD Thread
+ struct _ETHREAD* Thread
);
PGENERIC_MAPPING
STDCALL
IoGetRelatedDeviceObject (
PFILE_OBJECT FileObject
);
-PEPROCESS
+struct _EPROCESS*
STDCALL
IoGetRequestorProcess (
IN PIRP Irp
);
+
VOID
STDCALL
IoGetStackLimits (
- PVOID * Minimum, /* guess */
- PVOID * Maximum /* guess */
+ PULONG LowLimit,
+ PULONG HighLimit
);
+
PIRP
STDCALL
IoGetTopLevelIrp (
VOID
);
-#define IoInitializeDpcRequest(DeviceObject, DpcRoutine) \
+#define IoInitializeDpcRequest(DeviceObject,DpcRoutine) \
(KeInitializeDpc(&(DeviceObject)->Dpc, \
(PKDEFERRED_ROUTINE)(DpcRoutine), \
(DeviceObject)))
);
NTSTATUS
STDCALL
-IoPageRead (
- PFILE_OBJECT FileObject,
- PMDL Mdl,
- PLARGE_INTEGER Offset,
- PIO_STATUS_BLOCK StatusBlock
- );
-NTSTATUS
-STDCALL
IoQueryDeviceDescription (
PINTERFACE_TYPE BusType,
PULONG BusNumber,
IoRaiseInformationalHardError (
NTSTATUS ErrorStatus,
PUNICODE_STRING String,
- PKTHREAD Thread
+ struct _KTHREAD* Thread
);
VOID
STDCALL
PBOOLEAN ConflictDetected
);
-#define IoRequestDpc(DeviceObject, Irp, Context) \
+#define IoRequestDpc(DeviceObject,Irp,Context) \
(KeInsertQueueDpc(&(DeviceObject)->Dpc,(Irp),(Context)))
-#define IoSetCancelRoutine(Irp, NewCancelRoutine) \
+#define IoSetCancelRoutine(Irp,NewCancelRoutine) \
((PDRIVER_CANCEL)InterlockedExchange((PULONG)&(Irp)->CancelRoutine, \
(ULONG)(NewCancelRoutine)));
-#define IoSetCompletionRoutine (Irp,Routine,Context,Success,Error,Cancel) \
+#define IoSetCompletionRoutine(Irp,Routine,Context,Success,Error,Cancel) \
{ \
PIO_STACK_LOCATION param; \
assert((Success)||(Error)||(Cancel)?(Routine)!=NULL:TRUE); \
param->Control |= SL_INVOKE_ON_CANCEL; \
}
-VOID
-STDCALL
-IoSetDeviceToVerify (
- DWORD Unknown0,
- DWORD Unknown1
- );
+VOID STDCALL
+IoSetDeviceToVerify (IN struct _ETHREAD* Thread,
+ IN PDEVICE_OBJECT DeviceObject);
VOID
STDCALL
IoSetHardErrorOrVerifyDevice (
- PIRP Irp,
- PDEVICE_OBJECT DeviceObject
+ IN PIRP Irp,
+ IN PDEVICE_OBJECT DeviceObject
);
NTSTATUS
STDCALL
DWORD Unknown3,
DWORD Unknown4
);
-PEPROCESS
-STDCALL
-IoThreadToProcess (
- IN PETHREAD Thread
- );
+struct _EPROCESS* STDCALL IoThreadToProcess (struct _ETHREAD* Thread);
VOID
STDCALL
IoUnregisterFileSystem (
VOID
STDCALL
IoAssignDriveLetters (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2,
- DWORD Unknown3
+ IN PLOADER_PARAMETER_BLOCK LoaderBlock,
+ IN PSTRING NtDeviceName,
+ OUT PUCHAR NtSystemPath,
+ OUT PSTRING NtSystemPathString
);
+
BOOLEAN
STDCALL
IoFlushAdapterBuffers (
ULONG Length,
BOOLEAN WriteToDevice
);
+
VOID
STDCALL
IoFreeAdapterChannel (
PADAPTER_OBJECT AdapterObject
);
+
VOID
STDCALL
IoFreeMapRegisters (
PVOID MapRegisterBase,
ULONG NumberOfMapRegisters
);
+
PHYSICAL_ADDRESS
STDCALL
IoMapTransfer (
PULONG Length,
BOOLEAN WriteToDevice
);
+
NTSTATUS
STDCALL
IoReadPartitionTable (
- PDEVICE_OBJECT DeviceObject,
- ULONG SectorSize,
- BOOLEAN ReturnedRecognizedPartitions,
- struct _DRIVE_LAYOUT_INFORMATION ** PBuffer
+ PDEVICE_OBJECT DeviceObject,
+ ULONG SectorSize,
+ BOOLEAN ReturnedRecognizedPartitions,
+ PDRIVE_LAYOUT_INFORMATION * PartitionBuffer
);
+
NTSTATUS
STDCALL
IoSetPartitionInformation (
ULONG PartitionNumber,
ULONG PartitionType
);
+
NTSTATUS
STDCALL
IoWritePartitionTable (
- PDEVICE_OBJECT DeviceObject,
- ULONG SectorSize,
- ULONG SectorsPerTrack,
- ULONG NumberOfHeads,
- struct _DRIVE_LAYOUT_INFORMATION* PBuffer
+ PDEVICE_OBJECT DeviceObject,
+ ULONG SectorSize,
+ ULONG SectorsPerTrack,
+ ULONG NumberOfHeads,
+ PDRIVE_LAYOUT_INFORMATION PartitionBuffer
);
/* --- --- --- INTERNAL or REACTOS ONLY --- --- --- */
-
-
/*
* FUNCTION: Registers the driver with WMI
* ARGUMENTS:
* Action = Action to take
* RETURNS: Status (?)
*/
-//NTSTATUS IoWMIRegistrationControl(DeviceObject, WMIREGACTION Action);
-
-
-/*
- * FUNCTION: Returns a pointer to the callers
- * stack location in the irp
- */
-/*
-PIO_STACK_LOCATION
-IoGetCurrentIrpStackLocation (
- IRP * irp
- );
-*/
-/*
-ULONG
-IoGetFunctionCodeFromCtlCode (
- ULONG ControlCode
- );
-*/
-/*
- * FUNCTION:
- */
-/*
-PIO_STACK_LOCATION
-IoGetNextIrpStackLocation (
- IRP * irp
- );
-*/
-/*
-VOID
-IoInitializeDpcRequest (
- PDEVICE_OBJECT DeviceObject,
- PIO_DPC_ROUTINE DpcRoutine
- );
-*/
/*
-BOOLEAN
-IoIsErrorUserInduced (
- NTSTATUS Status
- );
+NTSTATUS
+IoWMIRegistrationControl (
+ PDEVICE_OBJECT DeviceObject,
+ WMIREGACTION Action);
*/
+
BOOLEAN
IoIsTotalDeviceFailure (
NTSTATUS Status
);
-/*
- * FUNCTION: Marks an IRP as pending
- * ARGUMENTS:
- * Irp = Irp to mark
- * NOTE: If a driver doesn't complete the irp in its dispatch routine it
- * must mark it pending otherwise the I/O manager will complete it on
- * return from the dispatch routine.
- */
-/*
-VOID
-IoMarkIrpPending (
- PIRP Irp
- );
-*/
-/*
-VOID
-IoRequestDpc (
- PDEVICE_OBJECT DeviceObject,
- PIRP Irp,
- PVOID Context
- );
-*/
-/*
-PDRIVER_CANCEL
-IoSetCancelRoutine (
- PIRP Irp,
- PDRIVER_CANCEL CancelRoutine
- );
-*/
-/*
-VOID
-IoSetCompletionRoutine (
- PIRP Irp,
- PIO_COMPLETION_ROUTINE CompletionRoutine,
- PVOID Context,
- BOOLEAN InvokeOnSuccess,
- BOOLEAN InvokeOnError,
- BOOLEAN InvokeOnCancel
- );
-*/
-/*
-VOID
-IoSetNextIrpStackLocation (
- PIRP Irp
- );
-*/
-/*
- * FUNCTION: Determines the size of an IRP
- * ARGUMENTS:
- * StackSize = number of stack locations in the IRP
- * RETURNS: The size of the IRP in bytes
- */
-/*
-USHORT
-IoSizeOfIrp (
- CCHAR StackSize
- );
-*/
-#if 0
-// Preliminary guess
-NTKERNELAPI
-NTSTATUS
-IoQueryFileVolumeInformation (
- IN PFILE_OBJECT FileObject,
- IN FS_INFORMATION_CLASS FsInformationClass,
- IN ULONG Length,
- OUT PVOID FsInformation,
- OUT PULONG ReturnedLength
- );
-#endif
+
#endif /* ndef _INCLUDE_DDK_IOFUNCS_H */