From 6db1a5193f87b1192cd4ca6554c36de24aefff05 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Fri, 11 Aug 2000 12:49:11 +0000 Subject: [PATCH] Removed M$ driver svn path=/trunk/; revision=1294 --- reactos/drivers/dd/event/dirs | 2 - reactos/drivers/dd/event/exe/eventtes.c | 168 --------- reactos/drivers/dd/event/exe/makefile | 7 - reactos/drivers/dd/event/exe/sources | 10 - reactos/drivers/dd/event/readme.txt | 50 --- reactos/drivers/dd/event/sys/event.c | 447 ------------------------ reactos/drivers/dd/event/sys/event.h | 43 --- reactos/drivers/dd/event/sys/event.ini | 7 - reactos/drivers/dd/event/sys/event.rc | 11 - reactos/drivers/dd/event/sys/makefile | 7 - reactos/drivers/dd/event/sys/sources | 6 - 11 files changed, 758 deletions(-) delete mode 100644 reactos/drivers/dd/event/dirs delete mode 100644 reactos/drivers/dd/event/exe/eventtes.c delete mode 100644 reactos/drivers/dd/event/exe/makefile delete mode 100644 reactos/drivers/dd/event/exe/sources delete mode 100644 reactos/drivers/dd/event/readme.txt delete mode 100644 reactos/drivers/dd/event/sys/event.c delete mode 100644 reactos/drivers/dd/event/sys/event.h delete mode 100644 reactos/drivers/dd/event/sys/event.ini delete mode 100644 reactos/drivers/dd/event/sys/event.rc delete mode 100644 reactos/drivers/dd/event/sys/makefile delete mode 100644 reactos/drivers/dd/event/sys/sources diff --git a/reactos/drivers/dd/event/dirs b/reactos/drivers/dd/event/dirs deleted file mode 100644 index 13a6cb53e99..00000000000 --- a/reactos/drivers/dd/event/dirs +++ /dev/null @@ -1,2 +0,0 @@ -DIRS=exe \ - sys diff --git a/reactos/drivers/dd/event/exe/eventtes.c b/reactos/drivers/dd/event/exe/eventtes.c deleted file mode 100644 index a8926a9ddaf..00000000000 --- a/reactos/drivers/dd/event/exe/eventtes.c +++ /dev/null @@ -1,168 +0,0 @@ -/*++ - -Copyright (c) 1996 Microsoft Corporation - -Module Name: - - EventTest.c - -Abstract: - - Simple console test app demonstrating how a Win32 app can share - an event object with a kernel-mode driver. For more information - on using Event Objects at the application level see the Win32 SDK. - -Author: - - Jeff Midkiff (jeffmi) 23-Jul-96 - -Enviroment: - - User Mode - -Revision History: - ---*/ - - -// -// INCLUDES -// -#include -#include -#include -#include -#include - -#include "event.h" - - -// -// MAIN -// -void __cdecl -main( - int argc, - char ** argv - ) -{ - BOOL bStatus; - HANDLE hDevice; - ULONG ulReturnedLength; - - SET_EVENT setEvent; - FLOAT fDelay; - - - if ( (argc < 2) || (argv[1] == NULL) ) { - printf("event \n"); - printf("\twhere = time to delay the event signal in seconds.\n"); - exit(0); - } - sscanf( argv[1], "%f", &fDelay ); - - // - // open the device - // - hDevice = CreateFile( - "\\\\.\\EVENT", // lpFileName - GENERIC_READ | GENERIC_WRITE, // dwDesiredAccess - FILE_SHARE_READ | FILE_SHARE_WRITE, // dwShareMode - NULL, // lpSecurityAttributes - OPEN_EXISTING, // dwCreationDistribution - 0, // dwFlagsAndAttributes - NULL // hTemplateFile - ); - - if (hDevice == INVALID_HANDLE_VALUE) { - printf("CreateFile error = %d\n", GetLastError() ); - exit(0); - } - - - // - // set the event signal delay - // - setEvent.DueTime.QuadPart = -((LONGLONG)(fDelay * 10.0E6));// use relative time for this sample - - - // - // test the driver for bad event handles - // - setEvent.hEvent = NULL; - bStatus = DeviceIoControl( - hDevice, // Handle to device - IOCTL_SET_EVENT, // IO Control code - &setEvent, // Input Buffer to driver. - SIZEOF_SETEVENT, // Length of input buffer in bytes. - NULL, // Output Buffer from driver. - 0, // Length of output buffer in bytes. - &ulReturnedLength, // Bytes placed in buffer. - NULL // synchronous call - ); - if ( !bStatus ) { - printf("Bad handle TEST returned code %d.\n\n", GetLastError() ); - } else { - printf("we should never get here\n"); - exit(0); - } - - - // - // - // - setEvent.hEvent = CreateEvent( - NULL, // lpEventAttributes - TRUE, // bManualReset - FALSE, // bInitialState - NULL // lpName - ); - - - if ( !setEvent.hEvent ) { - printf("CreateEvent error = %d\n", GetLastError() ); - } else { - - printf("Event HANDLE = 0x%x\n", setEvent.hEvent ); - printf("Press any key to exit.\n"); - while( !_kbhit() ) { - bStatus = DeviceIoControl( - hDevice, // Handle to device - IOCTL_SET_EVENT, // IO Control code - &setEvent, // Input Buffer to driver. - SIZEOF_SETEVENT, // Length of input buffer in bytes. - NULL, // Output Buffer from driver. - 0, // Length of output buffer in bytes. - &ulReturnedLength, // Bytes placed in buffer. - NULL // synchronous call - ); - - if ( !bStatus ) { - printf("Ioctl failed with code %d\n", GetLastError() ); - break; - } else { - printf("Waiting for Event...\n"); - - WaitForSingleObject(setEvent.hEvent, - INFINITE ); - - printf("Event signalled.\n\n"); - - ResetEvent( setEvent.hEvent); - //printf("Event reset.\n"); - } - } - } - - // - // close the driver - // - if ( !CloseHandle(hDevice) ) { - printf("Failed to close device.\n"); - } - - exit(0); -} - - -// EOF diff --git a/reactos/drivers/dd/event/exe/makefile b/reactos/drivers/dd/event/exe/makefile deleted file mode 100644 index 58189757d61..00000000000 --- a/reactos/drivers/dd/event/exe/makefile +++ /dev/null @@ -1,7 +0,0 @@ -# -# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source -# file to this component. This file merely indirects to the real make file -# that is shared by all the driver components of the Windows NT DDK -# - -!INCLUDE $(NTMAKEENV)\makefile.def diff --git a/reactos/drivers/dd/event/exe/sources b/reactos/drivers/dd/event/exe/sources deleted file mode 100644 index 8bbdfe01ebd..00000000000 --- a/reactos/drivers/dd/event/exe/sources +++ /dev/null @@ -1,10 +0,0 @@ -TARGETNAME=event -TARGETPATH=$(BASEDIR)\lib -TARGETTYPE=PROGRAM - -INCLUDES=..\sys - -SOURCES=eventtest.c - -UMTYPE=console -UMBASE=0x100000 diff --git a/reactos/drivers/dd/event/readme.txt b/reactos/drivers/dd/event/readme.txt deleted file mode 100644 index c6451aa3aff..00000000000 --- a/reactos/drivers/dd/event/readme.txt +++ /dev/null @@ -1,50 +0,0 @@ - -This sample demonstrates one way that a Windows NT kernel-mode device driver -can share and explicitly signal an Event Object with a Win32 application. -It is composed of two parts, a Windows NT kernel-mode device driver and a Win32 -console test application. Both are built using the Windows NT DDK. - - -Instructions: -------------- - -1) Build the driver and test application in either the FREE or CHECKED build environment: - - BLD - - Both the driver and application are put in %NTDDK%\LIB\*\FREE | CHECKED on your build machine. - - -2) Copy the newly built driver to your Target machine's %SystemRoot%\system32\drivers -directory. Copy the newly built application to your target machine. -Also copy the EVENT.INI file to your Target machine. - - -3) Update the Target machine's Registry by running REGINI.EXE on the EVENT.INI file, i.e.: - - REGINI EVENT.INI - - This adds a driver key under the - HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services tree in the Registry. - You can verify this by running REGEDIT32.EXE and looking at the \Event key. - - -4) Reboot the Target machine for the Registry changes to take effect. -Your driver will not load until you reboot. - - -5) Load the driver from the command line: - - NET START EVENT - - -6) Run the test app from the command line: - - EVENT - - where DELAY = time to delay the Event signal in seconds. - - -7) Unload the driver from the command line: - - NET STOP EVENT diff --git a/reactos/drivers/dd/event/sys/event.c b/reactos/drivers/dd/event/sys/event.c deleted file mode 100644 index bac8b154e43..00000000000 --- a/reactos/drivers/dd/event/sys/event.c +++ /dev/null @@ -1,447 +0,0 @@ -/*++ - -Copyright (c) 1996 Microsoft Corporation - -Module Name: - - Event.c - -Abstract: - - This sample demonstrates one way that a Windows NT kernel-mode driver - can share and explicitly signal an Event Object with a Win32 application. - - This sample uses the following method: - The application creates an event object using CreateEvent(). - The app passes the event handle to the driver in a private IOCTL. - The driver is running in the app's thread context during the IOCTL so - there is a valid user-mode handle at that time. - The driver dereferences the user-mode handle into system space & saves - the new system handle for later use. - The driver signals the event via KeSetEvent() at IRQL <= DISPATCH_LEVEL. - The driver MUST delete any driver references to the event object at - Unload time. - - An alternative method would be to create a named event in the driver via - IoCreateNotificationEvent and then open the event in user mode. This API - however is new to Windows NT 4.0 so you can not use this method in your - NT 3.5x drivers. - - Note that this sample's event can be signalled (almost) at will from within - the driver. A different event signal can be set when the driver is setup to - do asynchronous I/O, and it is opened with FILE_FLAG_OVERLAPPED, and an - event handle is passed down in an OVERLAPPED struct from the app's Read, - Write, or DeviceIoControl. This different event signal is set by the I/O - Manager when the driver calls IoCompleteRequest on a pending Irp. This type - of Irp completion signal is not the purpose of this sample, hence the lack of - Irp queing. - -Author: - - Jeff Midkiff (jeffmi) 23-Jul-96 - -Enviroment: - - Kernel Mode Only - -Revision History: - ---*/ - - -// -// INCLUDES -// -#include "ntddk.h" -#include "event.h" - -// -// DEFINES -// -#define USER_NAME L"\\DosDevices\\EVENT" -#define SYSTEM_NAME L"\\Device\\EVENT" - -// -// DATA -// -typedef struct _DEVICE_EXTENSION { - KDPC Dpc; - KTIMER Timer; - HANDLE hEvent; - -} DEVICE_EXTENSION, *PDEVICE_EXTENSION; - - -// -// PROTOS -// -NTSTATUS -DriverEntry( - IN PDRIVER_OBJECT DriverObject, - IN PUNICODE_STRING RegistryPath - ); - -NTSTATUS -Unload( - IN PDRIVER_OBJECT DriverObject - ); - -NTSTATUS -Dispatch( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp - ); - -VOID -CustomTimerDPC( - IN PKDPC Dpc, - IN PVOID DeferredContext, - IN PVOID SystemArgument1, - IN PVOID SystemArgument2 - ); - - -NTSTATUS -DriverEntry( - IN PDRIVER_OBJECT DriverObject, - IN PUNICODE_STRING RegistryPath - ) - -/*++ - -Routine Description: - - This routine gets called by the system to initialize the driver. - -Arguments: - - DriverObject - the system supplied driver object. - RegistryPath - the system supplied registry path for this driver. - -Return Value: - - NTSTATUS - ---*/ - -{ - - PDEVICE_OBJECT pDeviceObject; - PDEVICE_EXTENSION pDeviceExtension; - - UNICODE_STRING usSystemName; - UNICODE_STRING usUserName; - - NTSTATUS status; - - - KdPrint(("Event!DriverEntry - IN\n")); - - // - // create the device object - // - RtlInitUnicodeString( &usSystemName, SYSTEM_NAME ); - - status = IoCreateDevice( - DriverObject, // DriverObject - sizeof( DEVICE_EXTENSION ), // DeviceExtensionSize - &usSystemName, // DeviceName - FILE_DEVICE_UNKNOWN, // DeviceType - 0, // DeviceCharacteristics - TRUE, // Exclusive - &pDeviceObject // DeviceObject - ); - - if ( !NT_SUCCESS(status) ) { - KdPrint(("\tIoCreateDevice returned 0x%x\n", status)); - - return( status ); - } - - // - // Set up dispatch entry points for the driver. - // - DriverObject->MajorFunction[IRP_MJ_CREATE] = - DriverObject->MajorFunction[IRP_MJ_CLOSE] = - DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = Dispatch; - DriverObject->DriverUnload = Unload; - - // - // Create a symbolic link into user mode for the driver. - // - RtlInitUnicodeString( &usUserName, USER_NAME ); - status = IoCreateSymbolicLink( &usUserName, &usSystemName ); - - if ( !NT_SUCCESS(status) ) { - IoDeleteDevice( pDeviceObject ); - KdPrint(("\tIoCreateSymbolicLink returned 0x%x\n", status)); - - return( status ); - } - - // - // establish user-buffer access method - // - pDeviceObject->Flags |= DO_BUFFERED_IO; - - - // - // setup the device extension - // - pDeviceExtension = pDeviceObject->DeviceExtension; - - KeInitializeDpc( - &pDeviceExtension->Dpc, // Dpc - CustomTimerDPC, // DeferredRoutine - pDeviceObject // DeferredContext - ); - - KeInitializeTimer( - &pDeviceExtension->Timer // Timer - ); - - pDeviceExtension->hEvent = NULL; - - KdPrint(("Event!DriverEntry - OUT\n")); - - return( status ); -} - - - -NTSTATUS -Unload( - IN PDRIVER_OBJECT DriverObject - ) - -/*++ - -Routine Description: - - This routine gets called to remove the driver from the system. - -Arguments: - - DriverObject - the system supplied driver object. - -Return Value: - - NTSTATUS - ---*/ - -{ - - PDEVICE_OBJECT pDeviceObject = DriverObject->DeviceObject; - PDEVICE_EXTENSION pDeviceExtension = pDeviceObject->DeviceExtension; - UNICODE_STRING usUserName; - - - KdPrint(("Event!Unload\n")); - - // - // dereference the event object or it will NEVER go away until reboot - // - if ( pDeviceExtension->hEvent ) - ObDereferenceObject( pDeviceExtension->hEvent ); - - // Delete the user-mode symbolic link. - RtlInitUnicodeString( &usUserName, USER_NAME ); - IoDeleteSymbolicLink( &usUserName ); - - // Delete the DeviceObject - IoDeleteDevice( pDeviceObject ); - - return( STATUS_SUCCESS ); -} - - - -NTSTATUS -Dispatch( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp - ) - -/*++ - -Routine Description: - - This device control dispatcher handles IOCTLs. - -Arguments: - - DeviceObject - Context for the activity. - Irp - The device control argument block. - -Return Value: - - NTSTATUS - ---*/ - -{ - - PDEVICE_EXTENSION pDeviceExtension; - PIO_STACK_LOCATION pIrpStack; - PSET_EVENT pSetEvent; - - ULONG ulInformation = 0L; - NTSTATUS status = STATUS_NOT_IMPLEMENTED; - - - KdPrint(("Event!Dispatch - IN\n")); - - pDeviceExtension = (PDEVICE_EXTENSION)DeviceObject->DeviceExtension; - pIrpStack = IoGetCurrentIrpStackLocation( Irp ); - - switch( pIrpStack->MajorFunction ) - { - case IRP_MJ_CREATE: - case IRP_MJ_CLOSE: - KdPrint(("\t%s\n", (IRP_MJ_CREATE == pIrpStack->MajorFunction) ? "IRP_MJ_CREATE" : "IRP_MJ_CLOSE")); - - status = STATUS_SUCCESS; - break; - - case IRP_MJ_DEVICE_CONTROL: - switch( pIrpStack->Parameters.DeviceIoControl.IoControlCode ) - { - case IOCTL_SET_EVENT: - KdPrint(("\tIOCTL_SET_EVENT\n")); - - if ( pIrpStack->Parameters.DeviceIoControl.InputBufferLength < SIZEOF_SETEVENT ) { - // Parameters are invalid - KdPrint(("\tSTATUS_INVALID_PARAMETER\n")); - - status = STATUS_INVALID_PARAMETER; - } else { - pSetEvent = (PSET_EVENT)Irp->AssociatedIrp.SystemBuffer; - KdPrint(("\tuser-mode HANDLE = 0x%x\n", pSetEvent->hEvent )); - - status = ObReferenceObjectByHandle( pSetEvent->hEvent, - SYNCHRONIZE, - NULL, - KernelMode, - &pDeviceExtension->hEvent, - NULL - ); - if ( !NT_SUCCESS(status) ) { - - KdPrint(("\tUnable to reference User-Mode Event object, Error = 0x%x\n", status)); - - } else { - - KdPrint(("\tkernel-mode HANDLE = 0x%x\n", pDeviceExtension->hEvent )); - - // - // Start the timer to run the CustomTimerDPC in DueTime seconds to - // simulate an interrupt (which would queue a DPC). - // The user's event object is signaled in the DPC. - // - - // ensure relative time for this sample - if ( pSetEvent->DueTime.QuadPart > 0 ) - pSetEvent->DueTime.QuadPart = -(pSetEvent->DueTime.QuadPart); - KdPrint(("\tDueTime = %d\n", pSetEvent->DueTime.QuadPart )); - - KeSetTimer( - &pDeviceExtension->Timer, // Timer - pSetEvent->DueTime, // DueTime - &pDeviceExtension->Dpc // Dpc - ); - - status = STATUS_SUCCESS; - } - } - break; - - default: - // should never hit this - ASSERT(0); - status = STATUS_NOT_IMPLEMENTED; - break; - - } // switch IoControlCode - break; - - default: - // should never hit this - ASSERT(0); - status = STATUS_NOT_IMPLEMENTED; - break; - - } // switch MajorFunction - - - // - // complete the Irp - // - Irp->IoStatus.Status = status; - Irp->IoStatus.Information = ulInformation; - IoCompleteRequest( Irp, IO_NO_INCREMENT ); - - KdPrint(("Event!Dispatch - OUT\n")); - return status; -} - - - -VOID -CustomTimerDPC( - IN PKDPC Dpc, - IN PVOID DeferredContext, - IN PVOID SystemArgument1, - IN PVOID SystemArgument2 - ) - -/*++ - -Routine Description: - - This is the DPC associated with this drivers Timer object setup in DriverEntry. - -Arguments: - - Dpc - our DPC object associated with our Timer - DeferredContext - Context for the DPC that we setup in DriverEntry - SystemArgument1 - - SystemArgument2 - - -Return Value: - - Nothing. - ---*/ - -{ - - PDEVICE_OBJECT pDeviceObject = DeferredContext; - PDEVICE_EXTENSION pDeviceExtension = pDeviceObject->DeviceExtension; - - - KdPrint(("Event!CustomTimerDPC - IN\n")); - - // - // Signal the Event created user-mode - // - // Note: - // Do not call KeSetEvent from your ISR; - // you must call it at IRQL <= DISPATCH_LEVEL. - // Your ISR should queue a DPC and the DPC can - // then call KeSetEvent on the ISR's behalf. - // - KeSetEvent((PKEVENT)pDeviceExtension->hEvent,// Event - 0, // Increment - FALSE // Wait - ); - - // there is no Irp to complete here - - KdPrint(("Event!CustomTimerDPC - OUT\n")); - - return; -} - - -// EOF diff --git a/reactos/drivers/dd/event/sys/event.h b/reactos/drivers/dd/event/sys/event.h deleted file mode 100644 index e4c4fd97897..00000000000 --- a/reactos/drivers/dd/event/sys/event.h +++ /dev/null @@ -1,43 +0,0 @@ -/*++ - -Copyright (c) 1996 Microsoft Corporation - -Module Name: - - Event.h - -Abstract: - - -Author: - - Jeff Midkiff (jeffmi) 23-Jul-96 - -Enviroment: - - -Revision History: - ---*/ - -#ifndef __EVENT__ -#define __EVENT__ - - -#include "devioctl.h" - -typedef struct _SET_EVENT -{ - HANDLE hEvent; - LARGE_INTEGER DueTime; // requested DueTime in 100-nanosecond units - -} SET_EVENT, *PSET_EVENT; - -#define SIZEOF_SETEVENT sizeof(SET_EVENT) - - -#define IOCTL_SET_EVENT \ - CTL_CODE( FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED, FILE_ANY_ACCESS ) - - -#endif // __EVENT__ diff --git a/reactos/drivers/dd/event/sys/event.ini b/reactos/drivers/dd/event/sys/event.ini deleted file mode 100644 index 5f430d61a8e..00000000000 --- a/reactos/drivers/dd/event/sys/event.ini +++ /dev/null @@ -1,7 +0,0 @@ -; note - the service name matches the driver's file (.sys) name - -\Registry\Machine\System\CurrentControlSet\Services\Event - Type = REG_DWORD 0x00000001 - Start = REG_DWORD 0x00000003 - Group = Extended Base - ErrorControl = REG_DWORD 0x00000001 diff --git a/reactos/drivers/dd/event/sys/event.rc b/reactos/drivers/dd/event/sys/event.rc deleted file mode 100644 index 5ffe2ea7889..00000000000 --- a/reactos/drivers/dd/event/sys/event.rc +++ /dev/null @@ -1,11 +0,0 @@ -#include - -#include - -#define VER_FILETYPE VFT_DRV -#define VER_FILESUBTYPE VFT2_DRV_SYSTEM -#define VER_FILEDESCRIPTION_STR "Sample Event Driver" -#define VER_INTERNALNAME_STR "event.sys" - -#include "common.ver" - diff --git a/reactos/drivers/dd/event/sys/makefile b/reactos/drivers/dd/event/sys/makefile deleted file mode 100644 index 58189757d61..00000000000 --- a/reactos/drivers/dd/event/sys/makefile +++ /dev/null @@ -1,7 +0,0 @@ -# -# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source -# file to this component. This file merely indirects to the real make file -# that is shared by all the driver components of the Windows NT DDK -# - -!INCLUDE $(NTMAKEENV)\makefile.def diff --git a/reactos/drivers/dd/event/sys/sources b/reactos/drivers/dd/event/sys/sources deleted file mode 100644 index 41d1c44ccc2..00000000000 --- a/reactos/drivers/dd/event/sys/sources +++ /dev/null @@ -1,6 +0,0 @@ -TARGETNAME=event -TARGETPATH=$(BASEDIR)\lib -TARGETTYPE=DRIVER - -SOURCES=event.c \ - event.rc