ReactOS 0.4.15-dev-7677-g8209aa5
mcd.h
Go to the documentation of this file.
1/*
2 * mcd.h
3 *
4 * Media changer driver interface
5 *
6 * This file is part of the w32api package.
7 *
8 * Contributors:
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 */
22
23#ifndef __MCD_H
24#define __MCD_H
25
26#include "srb.h"
27#include "scsi.h"
28#include "ntddchgr.h"
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34#if defined(_MCD_)
35#define CHANGERAPI
36#else
37#define CHANGERAPI DECLSPEC_IMPORT
38#endif
39
40#ifdef DebugPrint
41#undef DebugPrint
42#endif
43
44#if DBG
45#define DebugPrint(x) ChangerClassDebugPrint x
46#else
47#define DebugPrint(x)
48#endif
49
50#define MAXIMUM_CHANGER_INQUIRY_DATA 252
51
58
59VOID
61 ULONG DebugPrintLevel,
62 PCCHAR DebugMessage,
63 ...);
64
69 IN PVOID PoolToFree);
70
80
81
85
86typedef ULONG NTAPI
88 VOID);
89
90typedef VOID NTAPI
95 BOOLEAN *Retry);
96
100 IN PIRP Irp);
101
105 OUT PWMI_CHANGER_PROBLEM_DEVICE_ERROR ChangerDeviceError);
106
107typedef struct _MCD_INIT_DATA {
125
128NTAPI
132 IN PMCD_INIT_DATA MCDInitData);
133
134#ifdef __cplusplus
135}
136#endif
137
138#endif /* __MCD_H */
unsigned char BOOLEAN
#define VOID
Definition: acefi.h:82
LONG NTSTATUS
Definition: precomp.h:26
_In_ PSCSI_REQUEST_BLOCK Srb
Definition: cdrom.h:989
_In_ PSCSI_REQUEST_BLOCK _In_opt_ PVOID _In_ ULONG _In_ BOOLEAN WriteToDevice
Definition: cdrom.h:992
Definition: bufpool.h:45
_In_ PSCSI_REQUEST_BLOCK _Out_ NTSTATUS _Inout_ BOOLEAN * Retry
Definition: classpnp.h:312
_In_ PIRP Irp
Definition: csq.h:116
Status
Definition: gdiplustypes.h:25
NTSTATUS NTAPI(* CHANGER_INITIALIZE)(IN PDEVICE_OBJECT DeviceObject)
Definition: mcd.h:83
NTSTATUS NTAPI(* CHANGER_COMMAND_ROUTINE)(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: mcd.h:98
VOID ChangerClassDebugPrint(ULONG DebugPrintLevel, PCCHAR DebugMessage,...)
#define CHANGERAPI
Definition: mcd.h:37
CHANGERAPI PVOID NTAPI ChangerClassFreePool(IN PVOID PoolToFree)
struct _MCD_INIT_DATA MCD_INIT_DATA
struct _MCD_INIT_DATA * PMCD_INIT_DATA
CHANGERAPI NTSTATUS NTAPI ChangerClassSendSrbSynchronous(IN PDEVICE_OBJECT DeviceObject, IN PSCSI_REQUEST_BLOCK Srb, IN PVOID Buffer, IN ULONG BufferSize, IN BOOLEAN WriteToDevice)
ULONG NTAPI(* CHANGER_EXTENSION_SIZE)(VOID)
Definition: mcd.h:87
CHANGERAPI PVOID NTAPI ChangerClassAllocatePool(IN POOL_TYPE PoolType, IN ULONG NumberOfBytes)
CHANGERAPI NTSTATUS NTAPI ChangerClassInitialize(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath, IN PMCD_INIT_DATA MCDInitData)
VOID NTAPI(* CHANGER_ERROR_ROUTINE)(PDEVICE_OBJECT DeviceObject, PSCSI_REQUEST_BLOCK Srb, NTSTATUS *Status, BOOLEAN *Retry)
Definition: mcd.h:91
NTSTATUS NTAPI(* CHANGER_PERFORM_DIAGNOSTICS)(IN PDEVICE_OBJECT DeviceObject, OUT PWMI_CHANGER_PROBLEM_DEVICE_ERROR ChangerDeviceError)
Definition: mcd.h:103
CHANGER_ERROR_ROUTINE ChangerError
Definition: mcd.h:111
CHANGER_COMMAND_ROUTINE ChangerReinitializeUnit
Definition: mcd.h:122
CHANGER_COMMAND_ROUTINE ChangerExchangeMedium
Definition: mcd.h:120
CHANGER_COMMAND_ROUTINE ChangerGetProductData
Definition: mcd.h:115
CHANGER_COMMAND_ROUTINE ChangerGetElementStatus
Definition: mcd.h:117
CHANGER_INITIALIZE ChangerInitialize
Definition: mcd.h:110
CHANGER_COMMAND_ROUTINE ChangerInitializeElementStatus
Definition: mcd.h:118
CHANGER_PERFORM_DIAGNOSTICS ChangerPerformDiagnostics
Definition: mcd.h:112
CHANGER_COMMAND_ROUTINE ChangerMoveMedium
Definition: mcd.h:121
ULONG InitDataSize
Definition: mcd.h:108
CHANGER_COMMAND_ROUTINE ChangerGetStatus
Definition: mcd.h:114
CHANGER_COMMAND_ROUTINE ChangerSetPosition
Definition: mcd.h:119
CHANGER_COMMAND_ROUTINE ChangerQueryVolumeTags
Definition: mcd.h:123
CHANGER_COMMAND_ROUTINE ChangerSetAccess
Definition: mcd.h:116
CHANGER_COMMAND_ROUTINE ChangerGetParameters
Definition: mcd.h:113
CHANGER_EXTENSION_SIZE ChangerAdditionalExtensionSize
Definition: mcd.h:109
INT POOL_TYPE
Definition: typedefs.h:78
#define NTAPI
Definition: typedefs.h:36
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdfdevice.h:3815
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
Definition: wdfdriver.h:215
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
Definition: wdfmemory.h:254
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
Definition: iotypes.h:1036