136 lines
3 KiB
C
136 lines
3 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
sbp2api.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Definitions for the 1394 Sbp2 transport/protocol driver api
|
||
|
|
||
|
Author:
|
||
|
|
||
|
George Chrysanthakopoulos (georgioc) 2/12/99
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
Kernel mode only
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef _NTDDSBP2_H_
|
||
|
#define _NTDDSBP2_H_
|
||
|
|
||
|
#if (_MSC_VER >= 1020)
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
//
|
||
|
// Various definitions
|
||
|
//
|
||
|
#define IOCTL_SBP2_REQUEST CTL_CODE( \
|
||
|
FILE_DEVICE_UNKNOWN, \
|
||
|
0x200, \
|
||
|
METHOD_IN_DIRECT, \
|
||
|
FILE_ANY_ACCESS \
|
||
|
)
|
||
|
|
||
|
//
|
||
|
// IEEE 1394 Sbp2 Request packet. It is how other
|
||
|
// device drivers communicate with the 1sbp2 trasnport.
|
||
|
//
|
||
|
|
||
|
typedef struct _SBP2_REQUEST {
|
||
|
|
||
|
//
|
||
|
// Holds the zero based Function number that corresponds to the request
|
||
|
// that device drivers are asking the sbp2 port driver to carry out.
|
||
|
//
|
||
|
|
||
|
ULONG RequestNumber;
|
||
|
|
||
|
//
|
||
|
// Holds Flags that may be unique to this particular operation
|
||
|
//
|
||
|
|
||
|
ULONG Flags;
|
||
|
|
||
|
//
|
||
|
// Holds the structures used in performing the various 1394 APIs
|
||
|
//
|
||
|
|
||
|
union {
|
||
|
|
||
|
//
|
||
|
// Fields necessary in order for the 1394 stack to carry out an
|
||
|
// ParseTextLeaf request.
|
||
|
//
|
||
|
|
||
|
struct {
|
||
|
ULONG fulFlags;
|
||
|
ULONG Key; // quadlet direct value to search for
|
||
|
ULONG ulLength;
|
||
|
PVOID Buffer; // mdl to store the retrieved text leaf
|
||
|
} RetrieveTextLeaf;
|
||
|
|
||
|
struct {
|
||
|
ULONG fulFlags;
|
||
|
ULONG Parameter;
|
||
|
ULONG Value;
|
||
|
} AccessTransportSettings;
|
||
|
|
||
|
struct {
|
||
|
ULONG fulFlags;
|
||
|
} SetPassword;
|
||
|
} u;
|
||
|
|
||
|
} SBP2_REQUEST, *PSBP2_REQUEST;
|
||
|
|
||
|
#define SBP2REQ_FLAG_RETRIEVE_VALUE 0x1
|
||
|
#define SBP2REQ_FLAG_MODIFY_VALUE 0x2
|
||
|
|
||
|
//
|
||
|
// sbp2 requests
|
||
|
//
|
||
|
|
||
|
#define SBP2_REQUEST_RETRIEVE_TEXT_LEAFS 1
|
||
|
#define SBP2_REQUEST_ACCESS_TRANSPORT_SETTINGS 2
|
||
|
#define SBP2_REQUEST_SET_PASSWORD 3
|
||
|
|
||
|
//
|
||
|
// values required for the SBP2_REQUEST_RETRIEVE_TEXT_LEAFS call
|
||
|
//
|
||
|
|
||
|
#define SBP2REQ_RETRIEVE_TEXT_LEAF_DIRECT 0x00000001
|
||
|
#define SBP2REQ_RETRIEVE_TEXT_LEAF_INDIRECT 0x00000002
|
||
|
#define SBP2REQ_RETRIEVE_TEXT_LEAF_FROM_UNIT_DIR 0x00000004
|
||
|
#define SBP2REQ_RETRIEVE_TEXT_LEAF_FROM_LU_DIR 0x00000008
|
||
|
|
||
|
//
|
||
|
// values required for the parameter in SBP2_REQUEST_ACCESS_TRANSPORT_SETTINGS call
|
||
|
//
|
||
|
|
||
|
#define SBP2REQ_ACCESS_SETTINGS_QUEUE_SIZE 0x00000001
|
||
|
|
||
|
//
|
||
|
// values required for SBP2_REQUEST_SET_PASSWORD
|
||
|
//
|
||
|
|
||
|
#define SBP2REQ_SET_PASSWORD_CLEAR 0x00000001
|
||
|
#define SBP2REQ_SET_PASSWORD_EXCLUSIVE 0x00000002
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif // _NTDDSBP2_H_
|