7 typedef struct tagACT_AUTHZ_STATE
{
10 } ACT_AUTHZ_STATE
, *PACT_AUTHZ_STATE
;
12 typedef struct tagSILO_COMMAND
{
15 ULONG cbCommandBuffer
;
16 UCHAR rgbCommandBuffer
[ANYSIZE_ARRAY
];
17 } SILO_COMMAND
, *PSILO_COMMAND
;
19 typedef enum _PDO_TYPE
{
20 PDO_TYPE_UNDEFINED
= 0,
27 typedef enum _PDO_STATE
{
28 PDO_STATE_UNDEFINED
= 0,
33 typedef enum _PDO_CAPS
{
34 PDO_CAPABILITY_UNDEFINED
= 0,
35 PDO_CAPABILITY_INC512_SET
= 1,
36 PDO_CAPABILITY_INC512_CLEAR
= 2
39 typedef struct _ENUM_PDO_ENTRY
{
44 UCHAR bSpecificationMajor
;
45 UCHAR bSpecificationMinor
;
46 UCHAR bImplementationMajor
;
47 UCHAR bImplementationMinor
;
48 WCHAR wszDeviceInstancePath
[(2 * MAX_PATH
) + 1];
49 } ENUM_PDO_ENTRY
, *PENUM_PDO_ENTRY
;
51 typedef struct _ENUM_PDO_RESULTS
{
53 ENUM_PDO_ENTRY rgEntries
[ANYSIZE_ARRAY
];
54 } ENUM_PDO_RESULTS
, *PENUM_PDO_RESULTS
;
56 #define SIZE_ENUM_PDO_RESULTS_HEADER (sizeof(ENUM_PDO_RESULTS) - sizeof(ENUM_PDO_ENTRY))
58 #define IOCTL_EHSTOR_DEVICE_SET_AUTHZ_STATE CTL_CODE(IOCTL_STORAGE_BASE, 0x501, METHOD_BUFFERED, FILE_ANY_ACCESS)
59 #define IOCTL_EHSTOR_DEVICE_GET_AUTHZ_STATE CTL_CODE(IOCTL_STORAGE_BASE, 0x502, METHOD_BUFFERED, FILE_ANY_ACCESS)
60 #define IOCTL_EHSTOR_DEVICE_SILO_COMMAND CTL_CODE(IOCTL_STORAGE_BASE, 0x503, METHOD_BUFFERED, FILE_ANY_ACCESS)
61 #define IOCTL_EHSTOR_DEVICE_ENUMERATE_PDOS CTL_CODE(IOCTL_STORAGE_BASE, 0x504, METHOD_BUFFERED, FILE_ANY_ACCESS)
63 DEFINE_GUID(GUID_USBSTOR_EHSTOR_SILO_INTERFACE
, 0x7c2bcf57, 0x2bea, 0x46da, 0xad, 0x26, 0x78, 0xfd, 0xc8, 0x3c, 0xee, 0x46);
64 DEFINE_GUID(GUID_USBSTOR_EHSTOR_CONTROL_INTERFACE
, 0x4f40006f, 0xb933, 0x4550, 0xb5, 0x32, 0x2b, 0x58, 0xce, 0xe6, 0x14, 0xd3);