windows-nt/Source/XPSP1/NT/public/sdk/inc/ntddsbp2.h
2020-09-26 16:20:57 +08:00

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_