31#define SMBCLASSAPI DECLSPEC_IMPORT
36#define SMB_BUS_REQUEST \
37 CTL_CODE(FILE_DEVICE_UNKNOWN, 0, METHOD_NEITHER, FILE_ANY_ACCESS)
39#define SMB_DEREGISTER_ALARM_NOTIFY \
40 CTL_CODE(FILE_DEVICE_UNKNOWN, 2, METHOD_NEITHER, FILE_ANY_ACCESS)
42#define SMB_REGISTER_ALARM_NOTIFY \
43 CTL_CODE(FILE_DEVICE_UNKNOWN, 1, METHOD_NEITHER, FILE_ANY_ACCESS)
48#define SMB_MAX_DATA_SIZE 32
51#define SMB_STATUS_OK 0x00
52#define SMB_UNKNOWN_FAILURE 0x07
53#define SMB_ADDRESS_NOT_ACKNOWLEDGED 0x10
54#define SMB_DEVICE_ERROR 0x11
55#define SMB_COMMAND_ACCESS_DENIED 0x12
56#define SMB_UNKNOWN_ERROR 0x13
57#define SMB_DEVICE_ACCESS_DENIED 0x17
58#define SMB_TIMEOUT 0x18
59#define SMB_UNSUPPORTED_PROTOCOL 0x19
60#define SMB_BUS_BUSY 0x1A
63#define SMB_WRITE_QUICK 0x00
64#define SMB_READ_QUICK 0x01
65#define SMB_SEND_BYTE 0x02
66#define SMB_RECEIVE_BYTE 0x03
67#define SMB_WRITE_BYTE 0x04
68#define SMB_READ_BYTE 0x05
69#define SMB_WRITE_WORD 0x06
70#define SMB_READ_WORD 0x07
71#define SMB_WRITE_BLOCK 0x08
72#define SMB_READ_BLOCK 0x09
73#define SMB_PROCESS_CALL 0x0A
74#define SMB_MAXIMUM_PROTOCOL 0x0A
99#define SMB_CLASS_MAJOR_VERSION 0x0001
100#define SMB_CLASS_MINOR_VERSION 0x0000
157 IN ULONG MiniportExtensionSize,
NDIS_STATUS NTAPI MiniportInitialize(OUT PNDIS_STATUS OpenErrorStatus, OUT PUINT SelectedMediumIndex, IN PNDIS_MEDIUM MediumArray, IN UINT MediumArraySize, IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_HANDLE WrapperConfigurationContext)
NTSTATUS(NTAPI * PSMB_INITIALIZE_MINIPORT)(IN PSMB_CLASS SmbClass, IN PVOID MiniportExtension, IN PVOID MiniportContext)
SMBCLASSAPI VOID NTAPI SmbClassAlarm(IN PSMB_CLASS SmbClass, IN UCHAR Address, IN USHORT Data)
struct _SMB_REQUEST SMB_REQUEST
struct _SMB_REGISTER_ALARM * PSMB_REGISTER_ALARM
VOID(NTAPI * SMB_START_IO)(IN struct _SMB_CLASS *SmbClass, IN PVOID SmbMiniport)
struct _SMB_CLASS SMB_CLASS
struct _SMB_REQUEST * PSMB_REQUEST
NTSTATUS(NTAPI * SMB_RESET_DEVICE)(IN struct _SMB_CLASS *SmbClass, IN PVOID SmbMiniport)
SMBCLASSAPI VOID NTAPI SmbClassUnlockDevice(IN PSMB_CLASS SmbClass)
#define SMB_MAX_DATA_SIZE
SMBCLASSAPI NTSTATUS NTAPI SmbClassInitializeDevice(IN ULONG MajorVersion, IN ULONG MinorVersion, IN PDRIVER_OBJECT DriverObject)
SMBCLASSAPI NTSTATUS NTAPI SmbClassCreateFdo(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT PDO, IN ULONG MiniportExtensionSize, IN PSMB_INITIALIZE_MINIPORT MiniportInitialize, IN PVOID MiniportContext, OUT PDEVICE_OBJECT *FDO)
struct _SMB_CLASS * PSMB_CLASS
VOID(NTAPI * SMB_ALARM_NOTIFY)(PVOID Context, UCHAR Address, USHORT Data)
struct _SMB_REGISTER_ALARM SMB_REGISTER_ALARM
NTSTATUS(NTAPI * SMB_STOP_DEVICE)(IN struct _SMB_CLASS *SmbClass, IN PVOID SmbMiniport)
SMBCLASSAPI VOID NTAPI SmbClassCompleteRequest(IN PSMB_CLASS SmbClass)
SMBCLASSAPI VOID NTAPI SmbClassLockDevice(IN PSMB_CLASS SmbClass)
PDEVICE_OBJECT LowerDeviceObject
PDEVICE_OBJECT DeviceObject
SMB_STOP_DEVICE StopDevice
SMB_RESET_DEVICE ResetDevice
SMB_ALARM_NOTIFY NotifyFunction
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject