Annotation of q_a/samples/ddk/portio/genport.h, revision 1.1.1.1

1.1       root        1: // genport.h    Include file for Generic Port I/O Example Driver
                      2: //
                      3: // Robert R. Howell         January 6, 1993
                      4: // Robert B. Nelson (MS)    January 12, 1993
                      5: //      Modified comments prior to posting to Compuserve
                      6: //      Changed Wkd* to Gpd*
                      7: // Robert B. Nelson (MS)    March 1, 1993
                      8: //      Cleanup and bug fixes for Beta 2
                      9: //
                     10: #include <ntddk.h>
                     11: #include <string.h>
                     12: #include <devioctl.h>
                     13: #include "gpioctl.h"        // Get IOCTL interface definitions
                     14: 
                     15: /* Default base port, and # of ports */
                     16: #define BASE_PORT       0x300
                     17: #define NUMBER_PORTS        4
                     18: 
                     19: // NT device name
                     20: #define GPD_DEVICE_NAME L"\\Device\\Gpd0"
                     21: 
                     22: // File system device name.   When you execute a CreateFile call to open the
                     23: // device, use "\\.\GpdDev", or, given C's conversion of \\ to \, use
                     24: // "\\\\.\\GpdDev"
                     25: 
                     26: #define DOS_DEVICE_NAME L"\\DosDevices\\GpdDev"
                     27: 
                     28: 
                     29: // driver local data structure specific to each device object
                     30: typedef struct _LOCAL_DEVICE_INFO {
                     31:     ULONG               DeviceType;     // Our private Device Type
                     32:     BOOLEAN             PortWasMapped;  // If TRUE, we have to unmap on unload
                     33:     PVOID               PortBase;       // base port address
                     34:     ULONG               PortCount;      // Count of I/O addresses used.
                     35:     ULONG               PortMemoryType; // HalTranslateBusAddress MemoryType
                     36:     PDEVICE_OBJECT      DeviceObject;   // The Gpd device object.
                     37: } LOCAL_DEVICE_INFO, *PLOCAL_DEVICE_INFO;
                     38: 
                     39: /********************* function prototypes ***********************************/
                     40: //
                     41: 
                     42: NTSTATUS    DriverEntry(       IN  PDRIVER_OBJECT DriverObject,
                     43:                                IN  PUNICODE_STRING RegistryPath );
                     44: 
                     45: NTSTATUS    GpdCreateDevice(   IN  PWSTR szPrototypeName,
                     46:                                IN  DEVICE_TYPE DeviceType,
                     47:                                IN  PDRIVER_OBJECT DriverObject,
                     48:                                OUT PDEVICE_OBJECT *ppDevObj     );
                     49: 
                     50: NTSTATUS    GpdDispatch(       IN  PDEVICE_OBJECT pDO,
                     51:                                IN  PIRP pIrp                    );
                     52: 
                     53: NTSTATUS    GpdIoctlReadPort(  IN  PLOCAL_DEVICE_INFO pLDI,
                     54:                                IN  PIRP pIrp,
                     55:                                IN  PIO_STACK_LOCATION IrpStack,
                     56:                                IN  ULONG IoctlCode              );
                     57: 
                     58: NTSTATUS    GpdIoctlWritePort( IN  PLOCAL_DEVICE_INFO pLDI,
                     59:                                IN  PIRP pIrp,
                     60:                                IN  PIO_STACK_LOCATION IrpStack,
                     61:                                IN  ULONG IoctlCode              );
                     62: 
                     63: VOID        GpdUnload(         IN  PDRIVER_OBJECT DriverObject );
                     64: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.