Platform SDK: DLC/NetBIOS

LLC_CCB

The LLC_CCB structure represents a command control block. You pass a pointer to this structure to the AcsLan function.

typedef struct _LLC_CCB {
  UCHAR uchAdapterNumber; 
  UCHAR uchDlcCommand; 
  UCHAR uchDlcStatus; 
  UCHAR uchReserved1; 
  struct _LLC_CCB *pNext;
  ULONG ulCompletionFlag;
  CCB_PARMS u;
  HANDLE hCompletionEvent;
  UCHAR uchReserved2; 
  UCHAR uchReadFlag; 
  USHORT usReserved3
} LLC_CCB, *PLLC_CCB;

Members

uchAdapterNumber
Specifies adapter number 0 or 1.
uchDlcCommand
Specifies the command code. The following command codes are supported.
Code Meaning
LLC_BUFFER_CREATE Creates a new DLC buffer pool and returns its handle. The application must open at least one adapter before it can create the buffer pool.
LLC_BUFFER_FREE Returns one or more buffers to the adapter pool. The buffers must have been obtained with the LLC_BUFFER_GET command.
LLC_BUFFER_GET Returns the requested buffers. You can retrieve several buffers of the same size or an optimal set of buffers for the specified frame size.
LLC_DIR_
CLOSE_ADAPTER
Closes the adapter logically, releasing its resources and canceling any pending commands. Open SAPs or link stations are reset before the completion of this command. Canceled commands return the error code LLC_STATUS_CANCELLED_BY_SYSTEM_ACTION. Functional address bits are reset.

The pNext member receives the address of a queue of CCBs terminated by this command.

LLC_DIR_CLOSE_DIRECT Releases ownership of all direct stations. If you use an LLC_READ command to post this command, the system returns the buffers from the direct buffer pool in the parameter table.
LLC_DIR_INITIALIZE Resets the network adapter, returns any pending commands, and releases buffer resources. For security reasons, the command resets the adapter physically only if it was not functioning normally when you issued the command.
LLC_DIR_INTERRUPT This command does not do anything. No parameter table is required.
LLC_DIR_OPEN_ADAPTER Prepares the protocol drivers for network communication. The adapter must be in a logically closed state for this command to succeed.
LLC_DIR_OPEN_DIRECT Gives the application ownership of the direct station and enables it to receive frames using the LLC_RECEIVE command.
LLC_DIR_READ_LOG Reads and resets the adapter logs. The system transfers the log data to the buffer in the parameter table.
LLC_DIR_SET_EXCEPTION_FLAGS Defines user-notification flags so the system notifies the application of exception conditions.
LLC_DIR_SET_FUNCTIONAL_ADDRESS Sets or resets the functional addresses for the adapter to receive messages.
LLC_DIR_SET_GROUP_ADDRESS Sets or resets the group address for which the adapter will receive messages. Only one application can set a group address for a Token-Ring adapter. This command can fail if the Ethernet adapter does not have an available multicast address.
LLC_DIR_SET_MULTICAST_ADDRESS Sets a 48-bit multicast address for the current DLC adapter context. The application must issue this command before it can receive multicasts. This command is supported only on Ethernet networks and is an alternative to the LLC_DIR_SET_GROUP_ADDRESS command. This command can fail if the Ethernet adapter does not have an available multicast address. A value of zero removes the previous multicast address.
LLC_DIR_STATUS Reads the general status information. You can issue this command before the LLC_DIR_OPEN_ADAPTER command, but after the LLC_DIR_INITIALIZE command.
LLC_DIR_TIMER_CANCEL Cancels a timer that was previously initiated by an LLC_DIR_TIMER_SET command.
LLC_DIR_TIMER_CANCEL_GROUP Cancels a group of timer commands that were previously initiated by the LLC_DIR_TIMER_SET command.
LLC_DIR_TIMER_SET Initiates a programmable timer to expire after a designated interval.
LLC_DLC_CLOSE_SAP Closes a SAP. The SAP cannot close unless all link stations are closed.
LLC_DLC_CLOSE_STATION Closes a link station.
LLC_DLC_CONNECT_STATION Starts or completes a connection between the local and remote link stations. Both the local station and the remote station must issue the command to establish the connection.
LLC_DLC_FLOW_CONTROL Controls the flow of data across a single link station on a SAP or across every link station on a SAP. You should issue this command immediately after a link station enters a local busy state. The driver clears the busy state when there are enough free buffers to receive more frames.
LLC_DLC_MODIFY Modifies the work values of an open link station or the default values of a SAP.
LLC_DLC_OPEN_SAP Activates a SAP and reserves a number of link stations for the SAP.
LLC_DLC_OPEN_STATION Allocates resources for a link station.
LLC_DLC_REALLOCATE_STATIONS Reallocates the number of link stations allocated to a SAP. When reducing the number of stations, the command returns the deallocated stations to the adapter pool. When increasing the number of stations, the command assigns new stations from the adapter pool.
LLC_DLC_RESET Resets the SAPs and their associated link stations. Affected resources are freed, and pending commands are terminated.
LLC_DLC_SET_THRESHOLD Sets a threshold for the SAP or direct station's buffer pool. The application is notified whenever the number of buffers in the pool falls below this threshold.
LLC_DLC_STATISTICS Reads and optionally resets the DLC log. The log is transferred to the buffer indicated by the parameter table.
LLC_READ Performs a read operation. The operation is complete when the system sets the uchDlcStatus member and the sets the hCompletionEvent event to the signaled state. The data and optional header begin at offset 64.
LLC_READ_CANCEL Cancels a pending LLC_READ command for the application.
LLC_RECEIVE Receives data. The command fails if the application has not created a buffer pool.
LLC_RECEIVE_CANCEL Cancels a pending LLC_RECEIVE command.
LLC_RECEIVE_MODIFY Receives data and puts some of it into a user buffer.
LLC_TRANSMIT_DIR_FRAME Transmits data to the direct station.
LLC_TRANSMIT_I_FRAME Transmits information data to a link station.
LLC_TRANSMIT_TEST_CMD Requests the adapter to transmit a test command frame with the poll bit set. You can only use this command with a SAP.
LLC_TRANSMIT_UI_FRAME Transmits unnumbered information data for a SAP. You can use this command only with a SAP.
LLC_TRANSMIT_XID_CMD Transmits an XID command with the poll bit set on. You can use this command only with a SAP.
LLC_TRANSMIT_XID_RESP_FINAL Transmits an XID response with the final bit on. You can only use this command with a SAP opened with SAP options specifying that the application will handle XID commands.
LLC_TRANSMIT_XID_RESP_NOT_FINAL Transmits an XID response with the final bit off. You can only use this command with a SAP opened with SAP options specifying that the application will handle XID commands.

uchDlcStatus
Receives the command completion code. This value is set to LLC_STATUS_PENDING when the command is received. It is set to an appropriate code when the command is completed. For a list of the command completion codes, see the following Remarks section.
uchReserved1
Reserved.
pNext
Specifies the next command control block in the chain. Otherwise, set this parameter to NULL.
ulCompletionFlag
An optional flag set when an LLC_READ command is completed. If you set this parameter to zero before the command is issued, it is not used.
u
Specifies the address of a CCB_PARMS structure representing the parameter table.
hCompletionEvent
Specifies a handle to an event that you can use to check for command completion. Otherwise, set this parameter to zero. When the command is completed, it sets the event to the signaled state.
uchReserved2
Windows NT/ 2000: Not used.

Windows 95/98: The identifier of the application issuing the command. This value is returned by the LLC_DIR_OPEN_ADAPTER command and is used for all subsequent commands.

uchReadFlag
Specifies that an LLC_READ command control block is chained in this command. Otherwise, set this parameter to zero.
usReserved3
Reserved.

Remarks

The uchDlcStatus member receives an LLC_STATUS value representing the command completion code. LLC_STATUS is an enumerated type. The following completion codes are defined:

Code Name
1 LLC_STATUS_INVALID_COMMAND
2 LLC_STATUS_DUPLICATE_COMMAND
3 LLC_STATUS_ADAPTER_OPEN
4 LLC_STATUS_ADAPTER_CLOSED
5 LLC_STATUS_PARAMETER_MISSING
6 LLC_STATUS_INVALID_OPTION
7 LLC_STATUS_COMMAND_CANCELLED_FAILURE
10 LLC_STATUS_CANCELLED_BY_USER
12 LLC_STATUS_SUCCESS_NOT_OPEN
17 LLC_STATUS_TIMER_ERROR
18 LLC_STATUS_NO_MEMORY
21 LLC_STATUS_LOST_LOG_DATA
22 LLC_STATUS_BUFFER_SIZE_EXCEEDED
24 LLC_STATUS_INVALID_BUFFER_LENGTH
25 LLC_STATUS_INADEQUATE_BUFFERS
26 LLC_STATUS_USER_LENGTH_TOO_LARGE
27 LLC_STATUS_INVALID_PARAMETER_TABLE
28 LLC_STATUS_INVALID_POINTER_IN_CCB
29 LLC_STATUS_INVALID_ADAPTER
32 LLC_STATUS_LOST_DATA_NO_BUFFERS
33 LLC_STATUS_LOST_DATA_INADEQUATE_SPACE
34 LLC_STATUS_TRANSMIT_ERROR_FS
35 LLC_STATUS_TRANSMIT_ERROR
39 LLC_STATUS_LINK_NOT_TRANSMITTING
40 LLC_STATUS_INVALID_FRAME_LENGTH
50 LLC_STATUS_INVALID_NODE_ADDRESS
51 LLC_STATUS_INVALID_RCV_BUFFER_LENGTH
52 LLC_STATUS_INVALID_XMIT_BUFFER_LENGTH
64 LLC_STATUS_INVALID_STATION_ID
65 LLC_STATUS_LINK_PROTOCOL_ERROR
66 LLC_STATUS_PARMETERS_EXCEEDED_MAX
67 LLC_STATUS_INVALID_SAP_VALUE
68 LLC_STATUS_INVALID_ROUTING_INFO
71 LLC_STATUS_LINK_STATIONS_OPEN
74 LLC_STATUS_INCOMPATIBLE_COMMANDS
77 LLC_STATUS_CONNECT_FAILED
79 LLC_STATUS_INVALID_REMOTE_ADDRESS
80 LLC_STATUS_CCB_POINTER_FIELD
87 LLC_STATUS_INADEQUATE_LINKS
88 LLC_STATUS_INVALID_PARAMETER_1
92 LLC_STATUS_DIRECT_STATIONS_NOT_ASSIGNED
93 LLC_STATUS_DEVICE_DRIVER_NOT_INSTALLED
94 LLC_STATUS_ADAPTER_NOT_INSTALLED
95 LLC_STATUS_CHAINED_DIFFERENT_ADAPTERS
96 LLC_STATUS_INIT_COMMAND_STARTED
98 LLC_STATUS_CANCELLED_BY_SYSTEM_ACTION
101 LLC_STATUS_NO_GDT_SELECTORS
105 LLC_STATUS_MEMORY_LOCK_FAILED
128 LLC_STATUS_INVALID_BUFFER_ADDRESS
129 LLC_STATUS_BUFFER_ALREADY_RELEASED
161 LLC_STATUS_INVALID_VERSION
162 LLC_STATUS_NT_ERROR_STATUS
255 LLC_STATUS_PENDING

Requirements

  Windows NT/2000: Requires Windows NT 3.1 or later.
  Windows 95/98: Requires Windows 95 or later.
  Header: Declared in Dlcapi.h.

See Also

The DLC Interface Overview, DLC Structures, AcsLan, CCB_PARMS