#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 --- */
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 (
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 (
* 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; \
FIELD_OFFSET(IO_STACK_LOCATION, CompletionRoutine)); \
NextIrpSp->Control = 0; }
+#define IoSkipCurrentIrpStackLocation(Irp) \
+ (Irp)->CurrentLocation++; \
+ (Irp)->Tail.Overlay.CurrentStackLocation++;
+
struct _EPROCESS*
STDCALL
IoGetCurrentProcess (
* 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
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 (
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
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
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