87 lines
2.4 KiB
C
87 lines
2.4 KiB
C
/*************************************************************************
|
|
*
|
|
* ctxdd.h
|
|
*
|
|
* Prototypes for functions to perform kernel level I/O using file object.
|
|
*
|
|
* Copyright Microsoft Corporation, 1998
|
|
*
|
|
*
|
|
*************************************************************************/
|
|
|
|
/*
|
|
* Read file using a FileObject instead of a handle.
|
|
* If the caller does not specify a wait KEVENT, then this is
|
|
* a synchronous read operation. Otherwise, it is the caller's
|
|
* responsibility to wait on the specified event if necessary.
|
|
*/
|
|
NTSTATUS
|
|
CtxReadFile(
|
|
IN PFILE_OBJECT fileObject,
|
|
IN PVOID Buffer,
|
|
IN ULONG Length,
|
|
IN PKEVENT pEvent OPTIONAL,
|
|
OUT PIO_STATUS_BLOCK pIosb OPTIONAL,
|
|
OUT PIRP *ppIrp OPTIONAL
|
|
);
|
|
|
|
|
|
/*
|
|
* Write file using a FileObject instead of a handle.
|
|
* If the caller does not specify a wait KEVENT, then this is
|
|
* a synchronous read operation. Otherwise, it is the caller's
|
|
* responsibility to wait on the specified event if necessary.
|
|
*/
|
|
NTSTATUS
|
|
CtxWriteFile(
|
|
IN PFILE_OBJECT fileObject,
|
|
IN PVOID Buffer,
|
|
IN ULONG Length,
|
|
IN PKEVENT pEvent OPTIONAL,
|
|
OUT PIO_STATUS_BLOCK pIosb OPTIONAL,
|
|
OUT PIRP *ppIrp OPTIONAL
|
|
);
|
|
|
|
|
|
/*
|
|
* DeviceIoControl using a FileObject instead of a handle.
|
|
* If the caller does not specify a wait KEVENT, then this is
|
|
* a synchronous read operation. Otherwise, it is the caller's
|
|
* responsibility to wait on the specified event if necessary.
|
|
*/
|
|
NTSTATUS
|
|
CtxDeviceIoControlFile(
|
|
IN PFILE_OBJECT fileObject,
|
|
IN ULONG IoControlCode,
|
|
IN PVOID InputBuffer OPTIONAL,
|
|
IN ULONG InputBufferLength,
|
|
OUT PVOID OutputBuffer OPTIONAL,
|
|
IN ULONG OutputBufferLength,
|
|
IN BOOLEAN InternalDeviceIoControl,
|
|
IN PKEVENT pEvent OPTIONAL,
|
|
OUT PIO_STATUS_BLOCK pIosb OPTIONAL,
|
|
OUT PIRP *ppIrp OPTIONAL
|
|
);
|
|
|
|
|
|
/*
|
|
* DeviceIoControl using a FileObject instead of a handle.
|
|
* If the caller does not specify a wait KEVENT, then this is
|
|
* a synchronous read operation. Otherwise, it is the caller's
|
|
* responsibility to wait on the specified event if necessary.
|
|
*/
|
|
NTSTATUS
|
|
CtxInternalDeviceIoControlFile(
|
|
IN PFILE_OBJECT FileObject,
|
|
IN PVOID IrpParameters,
|
|
IN ULONG IrpParametersLength,
|
|
IN PVOID MdlBuffer OPTIONAL,
|
|
IN ULONG MdlBufferLength,
|
|
IN UCHAR MinorFunction,
|
|
IN PKEVENT pEvent OPTIONAL,
|
|
OUT PIO_STATUS_BLOCK pIosb OPTIONAL,
|
|
OUT PIRP *ppIrp OPTIONAL
|
|
);
|
|
|
|
|