- Add "fs" to npfs and msfs.
[reactos.git] / reactos / drivers / multimedia / ks / irp.c
diff --git a/reactos/drivers/multimedia/ks/irp.c b/reactos/drivers/multimedia/ks/irp.c
deleted file mode 100644 (file)
index 67306ac..0000000
+++ /dev/null
@@ -1,671 +0,0 @@
-/*
-    ReactOS Kernel Streaming
-    IRP Helpers
-*/
-
-#include <ks.h>
-
-#define TAG(A, B, C, D) (IN ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsAcquireResetValue(
-    IN  PIRP Irp,
-    OUT KSRESET* ResetValue)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI VOID NTAPI
-KsAddIrpToCancelableQueue(
-    IN  OUT PLIST_ENTRY QueueHead,
-    IN  PKSPIN_LOCK SpinLock,
-    IN  PIRP Irp,
-    IN  KSLIST_ENTRY_LOCATION ListLocation,
-    IN  PDRIVER_CANCEL DriverCancel OPTIONAL)
-{
-    UNIMPLEMENTED;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsAddObjectCreateItemToDeviceHeader(
-    IN  KSDEVICE_HEADER Header,
-    IN  PDRIVER_DISPATCH Create,
-    IN  PVOID Context,
-    IN  PWCHAR ObjectClass,
-    IN  PSECURITY_DESCRIPTOR SecurityDescriptor)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsAddObjectCreateItemToObjectHeader(
-    IN  KSOBJECT_HEADER Header,
-    IN  PDRIVER_DISPATCH Create,
-    IN  PVOID Context,
-    IN  PWCHAR ObjectClass,
-    IN  PSECURITY_DESCRIPTOR SecurityDescriptor)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsAllocateDeviceHeader(
-    OUT KSDEVICE_HEADER* Header,
-    IN  ULONG ItemsCount,
-    IN  PKSOBJECT_CREATE_ITEM ItemsList OPTIONAL)
-{
-    /* Allocates memory for the KSDEVICE_HEADER structure */
-
-    if ( ! Header )
-        return STATUS_INVALID_PARAMETER;
-
-    Header = ExAllocatePoolWithTag(PagedPool, sizeof(KSDEVICE_HEADER), TAG('H','D','S','K'));
-
-    if ( ! Header )
-        return STATUS_INSUFFICIENT_RESOURCES;
-
-    /* TODO: Actually do something with the header, perhaps? */
-
-    return STATUS_SUCCESS;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI VOID NTAPI
-KsFreeDeviceHeader(
-    IN  KSDEVICE_HEADER Header)
-{
-    if ( ! Header )
-        return;
-
-    /* TODO: Free content first */
-
-    ExFreePoolWithTag(Header, TAG('H','D','S','K'));
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsAllocateExtraData(
-    IN  PIRP Irp,
-    IN  ULONG ExtraSize,
-    OUT PVOID* ExtraBuffer)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-
-    http://www.osronline.com/DDKx/stream/ksfunc_3sc3.htm
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsAllocateObjectCreateItem(
-    IN  KSDEVICE_HEADER Header,
-    IN  PKSOBJECT_CREATE_ITEM CreateItem,
-    IN  BOOL AllocateEntry,
-    IN  PFNKSITEMFREECALLBACK ItemFreeCallback OPTIONAL)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-
-    Initialize the required file context header.
-    Allocates KSOBJECT_HEADER structure.
-    Irp is an IRP_MJ_CREATE structure.
-    Driver must allocate KSDISPATCH_TABLE and initialize it first.
-
-    http://www.osronline.com/DDKx/stream/ksfunc_0u2b.htm
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsAllocateObjectHeader(
-    OUT PVOID Header,
-    IN  ULONG ItemsCount,
-    IN  PKSOBJECT_CREATE_ITEM ItemsList OPTIONAL,
-    IN  PIRP Irp,
-    IN  KSDISPATCH_TABLE* Table)
-{
-    /* NOTE: PKSOBJECT_HEADER is not defined yet */
-#if 0
-    PKSOBJECT_HEADER object_header;
-
-    /* TODO: Validate parameters */
-
-    object_header = ExAllocatePoolWithTag(PagedPool, sizeof(KSOBJECT_HEADER), TAG('H','O','S','K'));
-
-    if ( ! object_header )
-    {
-        return STATUS_INSUFFICIENT_RESOURCES;
-    }
-
-    (PVOID)(*Header) = object_header;
-
-    /* TODO ... */
-#endif
-
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI VOID NTAPI
-KsFreeObjectHeader(
-    IN  PVOID Header)
-{
-    ExFreePoolWithTag(Header, TAG('H','O','S','K'));
-
-    /* TODO */
-
-    UNIMPLEMENTED;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI VOID NTAPI
-KsCancelIo(
-    IN  OUT PLIST_ENTRY QueueHead,
-    IN  PKSPIN_LOCK SpinLock)
-{
-    UNIMPLEMENTED;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI VOID NTAPI
-KsCancelRoutine(
-    IN  PDEVICE_OBJECT DeviceObject,
-    IN  PIRP Irp)
-{
-    UNIMPLEMENTED;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsDefaultDeviceIoCompletion(
-    IN  PDEVICE_OBJECT DeviceObject,
-    IN  PIRP Irp)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI BOOLEAN NTAPI
-KsDispatchFastIoDeviceControlFailure(
-    IN  PFILE_OBJECT FileObject,
-    IN  BOOLEAN Wait,
-    IN  PVOID InputBuffer  OPTIONAL,
-    IN  ULONG InputBufferLength,
-    OUT PVOID OutputBuffer  OPTIONAL,
-    IN  ULONG OutputBufferLength,
-    IN  ULONG IoControlCode,
-    OUT PIO_STATUS_BLOCK IoStatus,
-    IN  PDEVICE_OBJECT DeviceObject)   /* always return false */
-{
-    return FALSE;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI BOOLEAN NTAPI
-KsDispatchFastReadFailure(
-    IN  PFILE_OBJECT FileObject,
-    IN  PLARGE_INTEGER FileOffset,
-    IN  ULONG Length,
-    IN  BOOLEAN Wait,
-    IN  ULONG LockKey,
-    OUT PVOID Buffer,
-    OUT PIO_STATUS_BLOCK IoStatus,
-    IN  PDEVICE_OBJECT DeviceObject)   /* always return false */
-{
-    return FALSE;
-}
-
-/*
-    Used in dispatch table entries that aren't handled and need to return
-    STATUS_INVALID_DEVICE_REQUEST.
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsDispatchInvalidDeviceRequest(
-    IN  PDEVICE_OBJECT DeviceObject,
-    IN  PIRP Irp)
-{
-    Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST;
-    IoCompleteRequest(Irp, IO_NO_INCREMENT);
-
-    return STATUS_INVALID_DEVICE_REQUEST;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsDispatchIrp(
-    IN  PDEVICE_OBJECT DeviceObject,
-    IN  PIRP Irp)
-{
-    /* Calls a dispatch routine corresponding to the function code of the IRP */
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsDispatchSpecificMethod(
-    IN  PIRP Irp,
-    IN  PFNKSHANDLER Handler)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsDispatchSpecificProperty(
-    IN  PIRP Irp,
-    IN  PFNKSHANDLER Handler)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsForwardAndCatchIrp(
-    IN  PDEVICE_OBJECT DeviceObject,
-    IN  PIRP Irp,
-    IN  PFILE_OBJECT FileObject,
-    IN  KSSTACK_USE StackUse)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsForwardIrp(
-    IN  PIRP Irp,
-    IN  PFILE_OBJECT FileObject,
-    IN  BOOLEAN ReuseStackLocation)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsGetChildCreateParameter(
-    IN  PIRP Irp,
-    OUT PVOID* CreateParameter)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsMoveIrpsOnCancelableQueue(
-    IN  OUT PLIST_ENTRY SourceList,
-    IN  PKSPIN_LOCK SourceLock,
-    IN  OUT PLIST_ENTRY DestinationList,
-    IN  PKSPIN_LOCK DestinationLock OPTIONAL,
-    IN  KSLIST_ENTRY_LOCATION ListLocation,
-    IN  PFNKSIRPLISTCALLBACK ListCallback,
-    IN  PVOID Context)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsProbeStreamIrp(
-    IN  PIRP Irp,
-    IN  ULONG ProbeFlags,
-    IN  ULONG HeaderSize)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsQueryInformationFile(
-    IN  PFILE_OBJECT FileObject,
-    OUT PVOID FileInformation,
-    IN  ULONG Length,
-    IN  FILE_INFORMATION_CLASS FileInformationClass)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI ACCESS_MASK NTAPI
-KsQueryObjectAccessMask(
-    IN KSOBJECT_HEADER Header)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI PKSOBJECT_CREATE_ITEM NTAPI
-KsQueryObjectCreateItem(
-    IN KSOBJECT_HEADER Header)
-{
-    UNIMPLEMENTED;
-/*    return STATUS_UNSUCCESSFUL; */
-    return NULL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsReadFile(
-    IN  PFILE_OBJECT FileObject,
-    IN  PKEVENT Event OPTIONAL,
-    IN  PVOID PortContext OPTIONAL,
-    OUT PIO_STATUS_BLOCK IoStatusBlock,
-    OUT PVOID Buffer,
-    IN  ULONG Length,
-    IN  ULONG Key OPTIONAL,
-    IN  KPROCESSOR_MODE RequestorMode)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI VOID NTAPI
-KsReleaseIrpOnCancelableQueue(
-    IN  PIRP Irp,
-    IN  PDRIVER_CANCEL DriverCancel OPTIONAL)
-{
-    UNIMPLEMENTED;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI PIRP NTAPI
-KsRemoveIrpFromCancelableQueue(
-    IN  OUT PLIST_ENTRY QueueHead,
-    IN  PKSPIN_LOCK SpinLock,
-    IN  KSLIST_ENTRY_LOCATION ListLocation,
-    IN  KSIRP_REMOVAL_OPERATION RemovalOperation)
-{
-    UNIMPLEMENTED;
-    return NULL;
-    /*return STATUS_UNSUCCESSFUL; */
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI VOID NTAPI
-KsRemoveSpecificIrpFromCancelableQueue(
-    IN  PIRP Irp)
-{
-    UNIMPLEMENTED;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsSetInformationFile(
-    IN  PFILE_OBJECT FileObject,
-    IN  PVOID FileInformation,
-    IN  ULONG Length,
-    IN  FILE_INFORMATION_CLASS FileInformationClass)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-
-
-/*
-    IRP handlers
-    NOT USED
-*/
-#if 0
-static NTAPI
-NTSTATUS
-KsCreate(
-    IN  PDEVICE_OBJECT DeviceObject,
-    IN  PIRP Irp)
-{
-    DPRINT1("KS / Create\n");
-    return STATUS_UNSUCCESSFUL;
-}
-
-static NTAPI
-NTSTATUS
-KsClose(
-    IN  PDEVICE_OBJECT DeviceObject,
-    IN  PIRP Irp)
-{
-    DPRINT1("KS / Close\n");
-    return STATUS_UNSUCCESSFUL;
-}
-
-static NTAPI
-NTSTATUS
-KsDeviceControl(
-    IN  PDEVICE_OBJECT DeviceObject,
-    IN  PIRP Irp)
-{
-    DPRINT1("KS / DeviceControl\n");
-    return STATUS_UNSUCCESSFUL;
-}
-
-static NTAPI
-NTSTATUS
-KsRead(
-    IN  PDEVICE_OBJECT DeviceObject,
-    IN  PIRP Irp)
-{
-    DPRINT1("KS / Read\n");
-    return STATUS_UNSUCCESSFUL;
-}
-
-static NTAPI
-NTSTATUS
-KsWrite(
-    IN  PDEVICE_OBJECT DeviceObject,
-    IN  PIRP Irp)
-{
-    DPRINT1("KS / Write\n");
-    return STATUS_UNSUCCESSFUL;
-}
-
-static NTAPI
-NTSTATUS
-KsFlushBuffers(
-    IN  PDEVICE_OBJECT DeviceObject,
-    IN  PIRP Irp)
-{
-    DPRINT1("KS / FlushBuffers\n");
-    return STATUS_UNSUCCESSFUL;
-}
-
-static NTAPI
-NTSTATUS
-KsQuerySecurity(
-    IN  PDEVICE_OBJECT DeviceObject,
-    IN  PIRP Irp)
-{
-    DPRINT1("KS / QuerySecurity\n");
-    return STATUS_UNSUCCESSFUL;
-}
-
-static NTAPI
-NTSTATUS
-KsSetSecurity(
-    IN  PDEVICE_OBJECT DeviceObject,
-    IN  PIRP Irp)
-{
-    DPRINT1("KS / SetSecurity\n");
-    return STATUS_UNSUCCESSFUL;
-}
-#endif
-
-
-static NTAPI
-NTSTATUS
-KsInternalIrpDispatcher(
-    IN  PDEVICE_OBJECT DeviceObject,
-    IN  PIRP Irp)
-{
-    /* TODO - Nothing implemented really yet! */
-
-    DPRINT1("KS IRP dispatch function called\n");
-
-    //PKSDISPATCH_TABLE ks_dispatch_table = NULL;
-
-    /* ks_dispatch_table is the first element in a structure pointed to by FsContext */
-
-    switch ( IoGetCurrentIrpStackLocation(Irp)->MajorFunction )
-    {
-        case IRP_MJ_CREATE :
-/*            return ks_dispatch_table->Create(DeviceObject, Irp);*/
-
-        /* TODO ... */
-
-        default :
-            return STATUS_INVALID_PARAMETER;
-    };
-}
-
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsSetMajorFunctionHandler(
-    IN  PDRIVER_OBJECT DriverObject,
-    IN  ULONG MajorFunction)
-{
-    /*
-        Sets a DriverObject's major function handler to point to an internal
-        function we implement.
-
-        TODO: Deal with KSDISPATCH_FASTIO
-    */
-
-    switch ( MajorFunction )
-    {
-        case IRP_MJ_CREATE :
-        case IRP_MJ_CLOSE :
-        case IRP_MJ_DEVICE_CONTROL :
-        case IRP_MJ_READ :
-        case IRP_MJ_WRITE :
-        case IRP_MJ_FLUSH_BUFFERS :
-        case IRP_MJ_QUERY_SECURITY :
-        case IRP_MJ_SET_SECURITY :
-            DriverObject->MajorFunction[MajorFunction] = KsInternalIrpDispatcher;
-            break;
-
-        default :
-            return STATUS_INVALID_PARAMETER;    /* is this right? */
-    };
-
-    return STATUS_SUCCESS;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsStreamIo(
-    IN  PFILE_OBJECT FileObject,
-    IN  PKEVENT Event OPTIONAL,
-    IN  PVOID PortContext OPTIONAL,
-    IN  PIO_COMPLETION_ROUTINE CompletionRoutine OPTIONAL,
-    IN  PVOID CompletionContext OPTIONAL,
-    IN  KSCOMPLETION_INVOCATION CompletionInvocationFlags OPTIONAL,
-    OUT PIO_STATUS_BLOCK IoStatusBlock,
-    IN  OUT PVOID StreamHeaders,
-    IN  ULONG Length,
-    IN  ULONG Flags,
-    IN  KPROCESSOR_MODE RequestorMode)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}
-
-/*
-    @unimplemented
-*/
-KSDDKAPI NTSTATUS NTAPI
-KsWriteFile(
-    IN  PFILE_OBJECT FileObject,
-    IN  PKEVENT Event OPTIONAL,
-    IN  PVOID PortContext OPTIONAL,
-    OUT PIO_STATUS_BLOCK IoStatusBlock,
-    IN  PVOID Buffer,
-    IN  ULONG Length,
-    IN  ULONG Key OPTIONAL,
-    IN  KPROCESSOR_MODE RequestorMode)
-{
-    UNIMPLEMENTED;
-    return STATUS_UNSUCCESSFUL;
-}