/*++ Copyright (c) 2002 Microsoft Corporation Module Name: sdbuslib.h Abstract: This is the include file that defines all constants and types for interfacing to the SD bus driver. Author: Neil Sandlin Revision History: --*/ #ifndef _SDBUSLIBH_ #define _SDBUSLIBH_ #if _MSC_VER > 1000 #pragma once #endif NTSTATUS SdBusSendIoctl( IN ULONG IoControlCode, IN PDEVICE_OBJECT DeviceObject, IN PVOID InputBuffer OPTIONAL, IN ULONG InputBufferLength, OUT PVOID OutputBuffer OPTIONAL, IN ULONG OutputBufferLength ); // // Device Name - this string is the name of the device. It is the name // that should be passed to NtOpenFile when accessing the device. // // Note: For devices that support multiple units, it should be suffixed // with the Ascii representation of the unit number. // #define IOCTL_SDBUS_BASE FILE_DEVICE_CONTROLLER #define DD_SDBUS_DEVICE_NAME "\\\\.\\Sdbus" // // IoControlCode values for this device. // // Warning: Remember that the low two bits of the code specify how the // buffers are passed to the driver! // #define IOCTL_SD_READ_BLOCK CTL_CODE(IOCTL_SDBUS_BASE, 3020, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_SD_WRITE_BLOCK CTL_CODE(IOCTL_SDBUS_BASE, 3021, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_SD_GET_DEVICE_PARMS CTL_CODE(IOCTL_SDBUS_BASE, 3022, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_SD_INTERFACE_OPEN CTL_CODE(IOCTL_SDBUS_BASE, 3023, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_SD_IO_READ CTL_CODE(IOCTL_SDBUS_BASE, 3024, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_SD_IO_WRITE CTL_CODE(IOCTL_SDBUS_BASE, 3025, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_SD_ACKNOWLEDGE_CARD_IRQ CTL_CODE(IOCTL_SDBUS_BASE, 3026, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_SD_INTERFACE_CLOSE CTL_CODE(IOCTL_SDBUS_BASE, 3027, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_SD_SUBMIT_REQUEST CTL_CODE(IOCTL_SDBUS_BASE, 3028, METHOD_BUFFERED, FILE_ANY_ACCESS) typedef struct _SDBUS_READ_PARAMETERS { USHORT Size; USHORT Version; PVOID Buffer; ULONG Length; ULONGLONG ByteOffset; } SDBUS_READ_PARAMETERS, *PSDBUS_READ_PARAMETERS; typedef struct _SDBUS_WRITE_PARAMETERS { USHORT Size; USHORT Version; PVOID Buffer; ULONG Length; ULONGLONG ByteOffset; } SDBUS_WRITE_PARAMETERS, *PSDBUS_WRITE_PARAMETERS; typedef struct _SDBUS_IO_READ_PARAMETERS { USHORT Size; USHORT Version; UCHAR CmdType; PVOID Buffer; ULONG Length; ULONG Offset; } SDBUS_IO_READ_PARAMETERS, *PSDBUS_IO_READ_PARAMETERS; typedef struct _SDBUS_IO_WRITE_PARAMETERS { USHORT Size; USHORT Version; UCHAR CmdType; PVOID Buffer; ULONG Length; ULONG Offset; } SDBUS_IO_WRITE_PARAMETERS, *PSDBUS_IO_WRITE_PARAMETERS; #endif