Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

386 lines
5.8 KiB

/***************************************************************************
Copyright (c) 2000 Microsoft Corporation
Module Name:
Dot4Usb.sys - Lower Filter Driver for Dot4.sys for USB connected
IEEE 1284.4 devices.
File Name:
FuncDecl.h
Abstract:
Function Prototype Declarations
Environment:
Kernel mode only
Notes:
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
PURPOSE.
Copyright (c) 2000 Microsoft Corporation. All Rights Reserved.
Revision History:
01/18/2000 : created
Author(s):
Joby Lafky (JobyL)
Doug Fritz (DFritz)
****************************************************************************/
//
// AddDev.c
//
NTSTATUS
AddDevice(
IN PDRIVER_OBJECT DriverObject,
IN PDEVICE_OBJECT Pdo
);
//
// InitUnld.c
//
NTSTATUS
DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
);
VOID
DriverUnload(
IN PDRIVER_OBJECT DriverObject
);
//
// Ioctl.c
//
NTSTATUS
DispatchDeviceControl(
IN PDEVICE_OBJECT DevObj,
IN PIRP Irp
);
NTSTATUS
DispatchInternalDeviceControl(
IN PDEVICE_OBJECT DevObj,
IN PIRP Irp
);
//
// OpenClos.c
//
NTSTATUS
DispatchCreate(
IN PDEVICE_OBJECT DevObj,
IN PIRP Irp
);
NTSTATUS
DispatchClose(
IN PDEVICE_OBJECT DevObj,
IN PIRP Irp
);
//
// PnP.c
//
NTSTATUS
DispatchPnp(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
PnpDefaultHandler(
IN PDEVICE_EXTENSION DevExt,
IN PIRP Irp
);
NTSTATUS
PnpHandleStart(
IN PDEVICE_EXTENSION DevExt,
IN PIRP Irp
);
NTSTATUS
PnpHandleQueryRemove(
IN PDEVICE_EXTENSION DevExt,
IN PIRP Irp
);
NTSTATUS
PnpHandleRemove(
IN PDEVICE_EXTENSION DevExt,
IN PIRP Irp
);
NTSTATUS
PnpHandleCancelRemove(
IN PDEVICE_EXTENSION DevExt,
IN PIRP Irp
);
NTSTATUS
PnpHandleStop(
IN PDEVICE_EXTENSION DevExt,
IN PIRP Irp
);
NTSTATUS
PnpHandleQueryStop(
IN PDEVICE_EXTENSION DevExt,
IN PIRP Irp
);
NTSTATUS
PnpHandleCancelStop(
IN PDEVICE_EXTENSION DevExt,
IN PIRP Irp
);
NTSTATUS
PnpHandleQueryDeviceRelations(
IN PDEVICE_EXTENSION DevExt,
IN PIRP Irp
);
NTSTATUS
PnpHandleQueryCapabilities(
IN PDEVICE_EXTENSION DevExt,
IN PIRP Irp
);
NTSTATUS
PnpHandleSurpriseRemoval(
IN PDEVICE_EXTENSION DevExt,
IN PIRP Irp
);
NTSTATUS
VA_PnP(
IN PDEVICE_EXTENSION devExt,
PIRP irp
);
NTSTATUS
GetDeviceCapabilities(
IN PDEVICE_EXTENSION DevExt
);
// power.c
NTSTATUS
DispatchPower(
IN PDEVICE_OBJECT DevObj,
IN PIRP Irp
);
NTSTATUS
PowerComplete(
IN PDEVICE_OBJECT DevObj,
IN PIRP Irp,
IN PVOID Context
);
//
// Registry.c
//
NTSTATUS
RegGetDword(
IN PCWSTR KeyPath,
IN PCWSTR ValueName,
IN OUT PULONG Value
);
NTSTATUS
RegGetDeviceParameterDword(
IN PDEVICE_OBJECT Pdo,
IN PCWSTR ValueName,
IN OUT PULONG Value
);
//
// ReadWrit.c
//
NTSTATUS
DispatchRead(
IN PDEVICE_OBJECT DevObj,
IN PIRP Irp
);
NTSTATUS
DispatchWrite(
IN PDEVICE_OBJECT DevObj,
IN PIRP Irp
);
//
// Test.c
//
VOID
TestEventLog(
IN PDEVICE_OBJECT DevObj
);
//
// Usb.c
//
NTSTATUS
UsbResetPipe(
IN PDEVICE_OBJECT DeviceObject,
IN PUSBD_PIPE_INFORMATION Pipe,
IN BOOLEAN IsoClearStall
);
NTSTATUS DOT4USB_ResetWorkItem(
IN PDEVICE_OBJECT deviceObject,
IN PVOID Context);
NTSTATUS
UsbBuildPipeList(
IN PDEVICE_OBJECT DeviceObject
);
LONG
UsbGet1284Id(
IN PDEVICE_OBJECT DevObj,
PVOID Buffer,
LONG BufferLength
);
NTSTATUS
UsbBulkWrite(
IN PDEVICE_OBJECT DevObj,
IN PIRP Irp
);
NTSTATUS
UsbBulkRead(
IN PDEVICE_OBJECT DevObj,
IN PIRP Irp
);
NTSTATUS
UsbCallUsbd(
IN PDEVICE_OBJECT DeviceObject,
IN PURB Urb,
IN PLARGE_INTEGER pTimeout
);
NTSTATUS
UsbGetDescriptor(
IN PDEVICE_EXTENSION DevExt
);
NTSTATUS
UsbConfigureDevice(
IN PDEVICE_EXTENSION DevExt
);
NTSTATUS
UsbSelectInterface(
IN PDEVICE_OBJECT DevObj,
IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor
);
NTSTATUS
UsbReadWrite(
IN PDEVICE_OBJECT DevObj,
IN PIRP Irp,
PUSBD_PIPE_INFORMATION Pipe,
USB_REQUEST_TYPE RequestType
);
NTSTATUS
UsbReadInterruptPipeLoopCompletionRoutine(
IN PDEVICE_OBJECT DevObj,
IN PIRP Irp,
IN PDEVICE_EXTENSION devExt
);
NTSTATUS
UsbStartReadInterruptPipeLoop(
IN PDEVICE_OBJECT DevObj
);
VOID
UsbStopReadInterruptPipeLoop(
IN PDEVICE_OBJECT DevObj
);
PURB
UsbBuildAsyncRequest(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PUSBD_PIPE_INFORMATION PipeHandle,
IN BOOLEAN Read
);
NTSTATUS
UsbAsyncReadWriteComplete(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PVOID Context
);
//
// Util.c
//
NTSTATUS
DispatchPassThrough(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
CallLowerDriverSync(
IN PDEVICE_OBJECT DevObj,
IN PIRP Irp
);
NTSTATUS
CallLowerDriverSyncCompletion(
IN PDEVICE_OBJECT DevObjOrNULL,
IN PIRP Irp,
IN PVOID Context
);
//
// Wmi.c
//
NTSTATUS
DispatchWmi(
IN PDEVICE_OBJECT DevObj,
IN PIRP Irp
);