Added required defines and typedefs for ntoskrnl/io modules.
[reactos.git] / reactos / include / ddk / iofuncs.h
index 3482c49..d3dd51e 100644 (file)
@@ -1,6 +1,6 @@
 #ifndef _INCLUDE_DDK_IOFUNCS_H
 #define _INCLUDE_DDK_IOFUNCS_H
-/* $Id: iofuncs.h,v 1.24 2001/06/08 15:06:51 ekohl Exp $ */
+/* $Id: iofuncs.h,v 1.34 2002/10/03 19:26:46 robd Exp $ */
 
 /* --- EXPORTED BY NTOSKRNL --- */
 
@@ -376,29 +376,24 @@ STDCALL
 IoCancelIrp (
        PIRP    Irp
        );
-VOID
-STDCALL
-IoCheckDesiredAccess (
-       DWORD   Unknown0,
-       DWORD   Unknown1
-       );
-NTSTATUS
-STDCALL
-IoCheckEaBufferValidity (
-       DWORD   Unknown0,
-       DWORD   Unknown1,
-       DWORD   Unknown2
-       );
-NTSTATUS
-STDCALL
-IoCheckFunctionAccess (
-       DWORD   Unknown0,
-       DWORD   Unknown1,
-       DWORD   Unknown2,
-       DWORD   Unknown3,
-       DWORD   Unknown4,
-       DWORD   Unknown5
-       );
+
+NTSTATUS STDCALL
+IoCheckDesiredAccess(IN OUT PACCESS_MASK DesiredAccess,
+                    IN ACCESS_MASK GrantedAccess);
+
+NTSTATUS STDCALL
+IoCheckEaBufferValidity(IN PFILE_FULL_EA_INFORMATION EaBuffer,
+                       IN ULONG EaLength,
+                       OUT PULONG ErrorOffset);
+
+NTSTATUS STDCALL
+IoCheckFunctionAccess(IN ACCESS_MASK GrantedAccess,
+                     IN UCHAR MajorFunction,
+                     IN UCHAR MinorFunction,
+                     IN ULONG IoControlCode,
+                     IN PFILE_INFORMATION_CLASS FileInformationClass OPTIONAL,
+                     IN PFS_INFORMATION_CLASS FsInformationClass OPTIONAL);
+
 NTSTATUS
 STDCALL
 IoCheckShareAccess (
@@ -560,15 +555,14 @@ STDCALL
 IoEnqueueIrp (
        PIRP    Irp
        );
-VOID
-STDCALL
-IoFastQueryNetworkAttributes (
-       DWORD   Unknown0,
-       DWORD   Unknown1,
-       DWORD   Unknown2,
-       DWORD   Unknown3,
-       DWORD   Unknown4
-       );
+
+BOOLEAN STDCALL
+IoFastQueryNetworkAttributes(IN POBJECT_ATTRIBUTES ObjectAttributes,
+                            IN ACCESS_MASK DesiredAccess,
+                            IN ULONG OpenOptions,
+                            OUT PIO_STATUS_BLOCK IoStatus,
+                            OUT PFILE_NETWORK_OPEN_INFORMATION Buffer);
+
 VOID
 STDCALL
 IoFreeController (
@@ -616,14 +610,12 @@ IoGetConfigurationInformation (
  *      PIO_STACK_LOCATION
  *      IoGetCurrentIrpStackLocation (PIRP Irp)
  */
-#define IoGetCurrentIrpStackLocation(Irp) \
-       (&(Irp)->Stack[(ULONG)((Irp)->CurrentLocation)])
-
-/* original macro */
-/*
 #define IoGetCurrentIrpStackLocation(Irp) \
        ((Irp)->Tail.Overlay.CurrentStackLocation)
-*/
+
+#define IoSetNextIrpStackLocation(Irp) { \
+  (Irp)->CurrentLocation--; \
+  (Irp)->Tail.Overlay.CurrentStackLocation--; }
 
 #define IoCopyCurrentIrpStackLocationToNext(Irp) { \
   PIO_STACK_LOCATION IrpSp; \
@@ -634,6 +626,10 @@ IoGetConfigurationInformation (
     FIELD_OFFSET(IO_STACK_LOCATION, CompletionRoutine)); \
   NextIrpSp->Control = 0; }
 
+#define IoSkipCurrentIrpStackLocation(Irp) \
+  (Irp)->CurrentLocation++; \
+  (Irp)->Tail.Overlay.CurrentStackLocation++;
+
 struct _EPROCESS*
 STDCALL
 IoGetCurrentProcess (
@@ -678,14 +674,9 @@ IoGetInitialStack (
  *      PIO_STACK_LOCATION
  *      IoGetNextIrpStackLocation (PIRP Irp)
  */
-#define IoGetNextIrpStackLocation(Irp) \
-       (&(Irp)->Stack[(Irp)->CurrentLocation-1])
-
-/* original macro */
-/*
 #define IoGetNextIrpStackLocation(Irp) \
        ((Irp)->Tail.Overlay.CurrentStackLocation-1)
-*/
+
 
 PDEVICE_OBJECT
 STDCALL
@@ -831,8 +822,33 @@ IoQueryVolumeInformation (
 VOID
 STDCALL
 IoQueueThreadIrp (
-       PVOID   Unknown0
+       IN      PIRP    Irp
+       );
+
+typedef struct _IO_WORKITEM *PIO_WORKITEM;
+typedef VOID (*PIO_WORKITEM_ROUTINE)(IN PDEVICE_OBJECT DeviceObject, IN PVOID Context);
+
+VOID
+STDCALL
+IoQueueWorkItem(
+    IN PIO_WORKITEM IoWorkItem, 
+       IN PIO_WORKITEM_ROUTINE WorkerRoutine, 
+       IN WORK_QUEUE_TYPE QueueType, 
+       IN PVOID Context
+       );
+
+VOID
+STDCALL
+IoFreeWorkItem(
+    PIO_WORKITEM IoWorkItem
+       );
+
+PIO_WORKITEM
+STDCALL
+IoAllocateWorkItem(
+       PDEVICE_OBJECT DeviceObject
        );
+
 VOID
 STDCALL
 IoRaiseHardError (
@@ -891,10 +907,10 @@ IoRemoveShareAccess (
 NTSTATUS
 STDCALL
 IoReportHalResourceUsage (
-       PUNICODE_STRING HalDescription,
-       ULONG           Unknown1,
-       ULONG           Unknown2,
-       ULONG           Unknown3
+       IN      PUNICODE_STRING         HalDescription,
+       IN      PCM_RESOURCE_LIST       RawList,
+       IN      PCM_RESOURCE_LIST       TranslatedList,
+       IN      ULONG                   ListSize
        );
 NTSTATUS
 STDCALL
@@ -1040,15 +1056,21 @@ STDCALL
 IoStopTimer (
        PDEVICE_OBJECT  DeviceObject
        );
-NTSTATUS
-STDCALL
-IoSynchronousPageWrite (
-       DWORD   Unknown0,
-       DWORD   Unknown1,
-       DWORD   Unknown2,
-       DWORD   Unknown3,
-       DWORD   Unknown4
-       );
+
+NTSTATUS STDCALL
+IoPageRead(PFILE_OBJECT                FileObject,
+          PMDL                 Mdl,
+          PLARGE_INTEGER       Offset,
+          PKEVENT              Event,
+          PIO_STATUS_BLOCK     StatusBlock);
+
+NTSTATUS STDCALL 
+IoSynchronousPageWrite (PFILE_OBJECT       FileObject,
+                       PMDL                Mdl,
+                       PLARGE_INTEGER      Offset,
+                       PKEVENT             Event,
+                       PIO_STATUS_BLOCK    StatusBlock);
+
 struct _EPROCESS* STDCALL IoThreadToProcess (struct _ETHREAD*  Thread);
 VOID
 STDCALL
@@ -1059,14 +1081,14 @@ IoUnregisterFileSystem (
 VOID
 STDCALL
 IoUnregisterFsRegistrationChange (
-       DWORD   Unknown0,
-       DWORD   Unknown1
+       IN      PDRIVER_OBJECT          DriverObject,
+       IN      PFSDNOTIFICATIONPROC    FSDNotificationProc
        );
 #endif // (_WIN32_WINNT >= 0x0400)
 VOID
 STDCALL
 IoUnregisterShutdownNotification (
-       PDEVICE_OBJECT  DeviceObject
+       IN      PDEVICE_OBJECT  DeviceObject
        );
 VOID
 STDCALL