Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenmcd.h
Go to the documentation of this file.
00001 /* 00002 * mcd.h 00003 * 00004 * Media changer driver interface 00005 * 00006 * This file is part of the w32api package. 00007 * 00008 * Contributors: 00009 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 00010 * 00011 * THIS SOFTWARE IS NOT COPYRIGHTED 00012 * 00013 * This source code is offered for use in the public domain. You may 00014 * use, modify or distribute it freely. 00015 * 00016 * This code is distributed in the hope that it will be useful but 00017 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00018 * DISCLAIMED. This includes but is not limited to warranties of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 * 00021 */ 00022 00023 #ifndef __MCD_H 00024 #define __MCD_H 00025 00026 #include "srb.h" 00027 #include "scsi.h" 00028 #include "ntddchgr.h" 00029 00030 #ifdef __cplusplus 00031 extern "C" { 00032 #endif 00033 00034 #if defined(_MCD_) 00035 #define CHANGERAPI 00036 #else 00037 #define CHANGERAPI DECLSPEC_IMPORT 00038 #endif 00039 00040 #ifdef DebugPrint 00041 #undef DebugPrint 00042 #endif 00043 00044 #if DBG 00045 #define DebugPrint(x) ChangerClassDebugPrint x 00046 #else 00047 #define DebugPrint(x) 00048 #endif 00049 00050 #define MAXIMUM_CHANGER_INQUIRY_DATA 252 00051 00052 CHANGERAPI 00053 PVOID 00054 NTAPI 00055 ChangerClassAllocatePool( 00056 IN POOL_TYPE PoolType, 00057 IN ULONG NumberOfBytes); 00058 00059 VOID 00060 ChangerClassDebugPrint( 00061 ULONG DebugPrintLevel, 00062 PCCHAR DebugMessage, 00063 ...); 00064 00065 CHANGERAPI 00066 PVOID 00067 NTAPI 00068 ChangerClassFreePool( 00069 IN PVOID PoolToFree); 00070 00071 CHANGERAPI 00072 NTSTATUS 00073 NTAPI 00074 ChangerClassSendSrbSynchronous( 00075 IN PDEVICE_OBJECT DeviceObject, 00076 IN PSCSI_REQUEST_BLOCK Srb, 00077 IN PVOID Buffer, 00078 IN ULONG BufferSize, 00079 IN BOOLEAN WriteToDevice); 00080 00081 00082 typedef NTSTATUS NTAPI 00083 (*CHANGER_INITIALIZE)( 00084 IN PDEVICE_OBJECT DeviceObject); 00085 00086 typedef ULONG NTAPI 00087 (*CHANGER_EXTENSION_SIZE)( 00088 VOID); 00089 00090 typedef VOID NTAPI 00091 (*CHANGER_ERROR_ROUTINE)( 00092 PDEVICE_OBJECT DeviceObject, 00093 PSCSI_REQUEST_BLOCK Srb, 00094 NTSTATUS *Status, 00095 BOOLEAN *Retry); 00096 00097 typedef NTSTATUS NTAPI 00098 (*CHANGER_COMMAND_ROUTINE)( 00099 IN PDEVICE_OBJECT DeviceObject, 00100 IN PIRP Irp); 00101 00102 typedef NTSTATUS NTAPI 00103 (*CHANGER_PERFORM_DIAGNOSTICS)( 00104 IN PDEVICE_OBJECT DeviceObject, 00105 OUT PWMI_CHANGER_PROBLEM_DEVICE_ERROR ChangerDeviceError); 00106 00107 typedef struct _MCD_INIT_DATA { 00108 ULONG InitDataSize; 00109 CHANGER_EXTENSION_SIZE ChangerAdditionalExtensionSize; 00110 CHANGER_INITIALIZE ChangerInitialize; 00111 CHANGER_ERROR_ROUTINE ChangerError; 00112 CHANGER_PERFORM_DIAGNOSTICS ChangerPerformDiagnostics; 00113 CHANGER_COMMAND_ROUTINE ChangerGetParameters; 00114 CHANGER_COMMAND_ROUTINE ChangerGetStatus; 00115 CHANGER_COMMAND_ROUTINE ChangerGetProductData; 00116 CHANGER_COMMAND_ROUTINE ChangerSetAccess; 00117 CHANGER_COMMAND_ROUTINE ChangerGetElementStatus; 00118 CHANGER_COMMAND_ROUTINE ChangerInitializeElementStatus; 00119 CHANGER_COMMAND_ROUTINE ChangerSetPosition; 00120 CHANGER_COMMAND_ROUTINE ChangerExchangeMedium; 00121 CHANGER_COMMAND_ROUTINE ChangerMoveMedium; 00122 CHANGER_COMMAND_ROUTINE ChangerReinitializeUnit; 00123 CHANGER_COMMAND_ROUTINE ChangerQueryVolumeTags; 00124 } MCD_INIT_DATA, *PMCD_INIT_DATA; 00125 00126 CHANGERAPI 00127 NTSTATUS 00128 NTAPI 00129 ChangerClassInitialize( 00130 IN PDRIVER_OBJECT DriverObject, 00131 IN PUNICODE_STRING RegistryPath, 00132 IN PMCD_INIT_DATA MCDInitData); 00133 00134 #ifdef __cplusplus 00135 } 00136 #endif 00137 00138 #endif /* __MCD_H */ Generated on Fri May 25 2012 04:28:32 for ReactOS by
1.7.6.1
|