IRP详解

IRP详解
IRP详解

操作IRP: 所有驱动开发人员都要知道的知识(Draft)

翻译:Puffel

2007-8-3

概要

在微软的Windows操作系统家族中,都通过发送I/O请求包(IRP, I/o R equest P ackets)来进行和驱动程序的通讯。用来封装IRP的数据结构不仅仅用来描述一个I/O操作的请求本身的内容,还要用来维护这一请求在一系列驱动程序中传递的过程中的相关状态信息

....。实现这一数据结构其实是为了两重目的,也就是说IRP可以被定义[理解]为:

l一个放置I/O请求的容器

或者

l一个与线程无关的调用栈

从以上这两个角度来考虑IRP,将有助于驱动开发人员理解作为驱动,程序应该如何去正确响应发来的I/O请求。

本文中关于例程(routines)和问题的讨论,请参考最新的微软Windows驱动开发包(WDK, Microsoft W indows D river K it)。

第一重定义:IRP是一个放置I/O请求的容器

操作系统以IRP的形式进行绝大多数发给驱动程序的I/O操作请求。因为下列特点,使得IRP 非常适合于这一目的:

l IRP设计来可以被异步操作

l IRP可以被在完成前取消

l IRP设计来适合于需要多驱动协同完成的输入输出操作

IRP数据结构封装了一个被请求

...的驱动所需要的,用来回复这一请求的[全部]信息。而请求则可能来自于用户模式或者内核模式。其实不论请求来自那里,对于被请求的驱动程序,所需要的信息是一样的。

所有的IRP都包含有下“表一”中的两个部分:

l一个用来描述主要I/O请求的头部

l一组用来描述下级请求(有时就被称作子请求,sub-requests)的参数

表一: IRP的结构

其中,头部的数据尺寸是固定,且对所有IRP都相同的。而下级请求数组的尺寸则依赖于会有多少个驱动要来操作这一请求。

IRP头部的内容:

一个IRP通常会被某个由一些驱动程序组成的栈来执行。每个IRP的头部信息,都各自包含着每个要操作这个IRP的驱动程序会要使用的数据。当一个给定的驱动正在处理一个IRP 时,这个驱动就被定义为此IRP的当前拥有者(the current owner)。

每一个IRP的头部,都包含有以下的指针(Pointer):

l指向针对这一IRP的用以读取输入以及写回输出的缓冲区

l指向当前拥有这一IRP的驱动程序的内存区域

l指向一个由当前拥有这一IRP的驱动提供的例程。这一例程将由系统在IRP被取消时[后]调用。

l指向当前的子请求的参数

另外,除了这些指针,IRP头部还包含有其它数据,用来描述请求的状态和其它内在信息(微软未开放的信息)。

IRP参数组:

在IRP头部之后是子请求数组。一个IRP可以有不只一个子请求,这是由于IRP通常会是被由多个[一些]驱动程序组成的栈来操作。每一个IRP都被分配了一个固定数量的,这样的子请求,通常是对应于设备栈中的每一个驱动程序有一个。这个编号恰好与相应栈最顶端设备的StackSize相匹配[一致],虽然在栈中间的驱动其实可以被分配的小一点。还有,如果一个驱动程序需要把请求发送到一个不同的设备栈处理,这个驱动程序就必须重新分配[创建]一个新的IRP。

每一个子请求都表示一个对应的I/O栈的位置(一个类型为IO_STACK_LOCATION的结构),并且特定的IRP通常[典型的]为每一个其被发送到的目的设备栈上的每个驱动仅维持[包含]一个这样的栈位置信息。在IRP头部的一个域中还包含有标识当前正在被使用的I/O栈位置信息。这个域的值被称作IRP栈指针(IRP stack pointer)或者当前栈位置(current stack

location)。

对于特定的IO_STACK_LOCA TION结构,会包含有以下内容:

l对于特定IRP的主要以及次要的方法代码

l针对这些代码的参数

l一个指向相应驱动的设备对象(device object)的指针

l一个指向IoCompletion例程的指针,如果驱动有过设定

l一个指向和这一请求相关联的文件对象的指针

l一些可变标志以及上下文[关联]区域

特定的IO_STACK_LOCATION结构并不包含有指针标识[指向]输入和输出位置,这些(输入、输出)指针本身就由IRP自身所包含。所有的子请求操作都使用同一缓冲区进行。

第二重定义:IRP作为一个线程无关的调用栈

进行一个设备的I/O操作通常[典型的]需要调用这一设备相关的不止一个驱动。每一个和这一设备相关的驱动都会创建一个设备对象(device object),并且这些设备对象会垂直压入(排列进)一个设备栈(device stack)中。IRP会在设备栈中从上到下的一个个被传递过去(进去)。对于栈中的每一个驱动,IRP都会用(包含)一个指针标识一个栈位置。由于驱动可以异步的处理请求,因此IRP就像是一个线程无关的调用栈一样,就像表二中所表示的:

表二:IRP作为线程无关的调用栈

在表二中,左侧,线程栈表示了驱动程序A,B和C的参数和返回值地址是如何在调用栈(call stack)中被组织的;而右侧,图表展示了这些参数和返回值地址是如何在一个IRP中对应到I/O栈位置以及IoCompletion例程上的。

IRP操作所具有的异步特质对于操作系统和Windows驱动模型(WDM, Windows Driver Model)是非常关键的。在一个同步的,单线程的I/O结构设计中,发送了请求的应用程序以及传递请求的驱动程序都要在更低层的组件完成请求任务之前处于等待中。这样的设计对于运用系统资源是很没有效率的,会降低整个系统的性能。

IRP的结构提供了一种可被继承的异步方式的设计,使得应用程序能够将一个或多个I/O请求排入队列,而不必等待。在I/O请求被处理的过程中,这个应用程序被解放出来可以进行其他的计算,或者向队列里排入更多的I/O请求。由于所有被用来处理请求的信息都被以IRP 的形式封装起来了,所以请求线程的调用栈可以从I/O请求中分离出去。

将IRP传递到下一级的驱动程序

将IRP传递到下一级驱动程序(又被称作为转发IRP)是指IRP等价于一个子例程调用。当驱动转发一个IRP,它(驱动程序)必须向IRP参数组增加下一个I/O栈位置,告知这一IRP 栈的指针,然后调用下一驱动的分发例程(dispatch routine)。基本说来,就是驱动向下调用IRP栈(calling down the IRP stack)。

传递一个IRP,驱动通常(典型的)会采取以下几个步骤:

1.建立下一个I/O栈位置的参数。驱动程序可以采取:

l调用IoGetNextIrpStackLocation例程来得到一个指针指向下一个I/O栈位置,然后将请求参数组复制到那个得到的位置。

l调用IoCopyCurrentIrpStackLocationToNext例程(如果驱动按第二步设置了IoCompletion例程),或者IoSkioCurrentIrpStackLocation例程(如果没有在第二

步设置IoCompletion例程)来传递当前位置所使用的同样的参数组。

注意:驱动程序不能够使用RtlCopyMemory例程来复制当前的参数组。这个

例程把指针复制到当前驱动的IoCompletion例程,而且这样会导致

IoCompletion例程被调用不止一次(重入?)。

2.如果需要的话,调用IoSetCompletionRoutine例程,为后期处理(post-porcessing)设

置一个IoCompletion例程。如果驱动设置了IpCompletion例程,那么他在上一步(第一步)中必须使用IoCopyCurrentIrpStackLocationToNext。

3.通过调用IoCallDriver例程将请求传递到下一个驱动。这个例程会自动通告IRP栈

指针,并且调用下一个驱动的分发例程。

在驱动程序将IRP传递个下一个驱动之后,就不再拥有这个IRP,并且不能试图再去访问这个它。否则会导致系统崩溃。那个IRP会被其它的驱动或者线程释放或完成。如果驱动需要访问一个已经在栈里传下去的IRP,这个驱动必须实现(设置)IoCompletion例程。当I/O 管理器(I/O Manager)调用IoCompletion例程时,这个驱动就能够在IoCompletion例程执行期间重新获得对这一IRP的所有权。如此,IoCompletion例程就能够访问IRP中的域。

若是驱动的分发例程也还须在IRP被后面的驱动处理完成之后再处理它,这个IoCompletion 例程必须返回STA TUS_MORE_PROCESSING_REQUIRED,以将IRP的所有权返回给分发例程。如此一来,I/O管理器会停止IRP的处理,将最终完成IRP的任务留给分发例程。分发例程能够在之后调用ICompleteRequest来完成这个IRP,或者还能将这个IRP标记为等候进一步处理。

完成(齐整)一个IRP

当输入、输出操作(I/O)完成时,完成这个I/O操作的驱动会调用IoCompleteRequest例程。这个例程将IRP栈指针移到指向IRP栈中的前一个(更上面)的位置,如表三所示。

表三:IRP的完成过程及栈指针

表三表示出了在驱动C调用IoCompleteRequest后的当前栈位置。左侧的实线箭头表示出栈指针现在指向了驱动B的参数组和回调函数。点虚线箭头表示出前一个栈位置。右侧的中空箭头表示出IoCompletion例程被调用的顺序。

注意:为了解释上的方便,本文把IRP中I/O栈位置的顺序表示成“倒置”的,就是说,是从A到C的反向顺序,而不是从C到A。用这样的倒置图表是为了更直观用“向下”将调用在栈中沿向下的方向进行表现出来。

如果一个驱动在设备栈中向下传递IRP时设定了IoCompletion例程,I/O管理器就会在IRP 栈指针再次指向这一驱动的这个I/O栈位置时调用此例程。如此一来,IoCompletion例程就表现成为,当IRP在设备栈中传递时,操作IRP的那些驱动的返回地址。

一个IoCompletion例程能够返回两个状态值中的任一个:

l STATUS_CONTINUE_COMPLETION – 继续向上完成特定IRP。I/O管理器提升IRP栈指针,并且调用上一个驱动的IoCompletion例程。

l STATUS_MORE_PROCESSING_REQUIRED – 中断向上完成特定IRP的过程,并且把IRP栈指针留在当前位置。返回这一状态的驱动通常会在过后调用

IoCompleteRequest例程来重新开始向上完成特定IRP的过程。

当每一个驱动都完成了它对应的子请求,I/O请求就完成了。I/O管理器从Irp->IoStatus.Status 域取回请求的状态信息,并且从Irp->https://www.360docs.net/doc/a212877556.html,rmation域取回传输的字节数。

同步(化)I/O响应

虽然Windows操作系统是为异步I/O设计的,大多数应用程序还是发送同步I/O请求。驱动程序也能够即发送同步又发送异步请求,同时也能响应不论是同步还是异步请求。

要判断一个请求是异步完成的还是同步的,驱动需要检查由IoCallDriver返回的状态,如下面的例程序所示:

KEVENT event;

KeInitializeEvent(&event, NotificationEvent, FALSE);

IoCopyCurrentIrpStackLocationToNext(Irp);

IoSetCompletionRoutine(Irp,

CatchIrpRoutine,

&event,

TRUE,

TRUE,

TRUE

);

status = IoCallDriver(DeviceObject, Irp);

//

// Check for synchronous or asynchronous completion.

//

if (status == STATUS_PENDING) {

// Code to handle asynchronous response

// omitted for now.

}

return status;

驱动程序初始化一个事件,设置I/O栈位置,设置一个IoCompletion例程,再调用IoCallDriver 去转发IRP。由IoCallDriver返回来的状态标示了后面(底下)的驱动是否在同步操作这个IRP,还是异步的。如果请求是被异步方式操作的,IoCallDriver返回STA TUS_PENDING。如果后面的驱动以同步方式响应,IoCallDriver会返回一个由更后面(下面)一驱动返回的完成状态信息。如同例程序所示,驱动只是简单的返回同一个完成状态。

当一个IRP被同步的完成,则驱动由它的分发例程返回这个IRP的完成状态。在它上面的那些驱动可以通过下列两种方法得到这个状态:

l在分发例程中,由IoCallDriver返回的值获得。

l在IoCompletion例程中,由IRP的IoStatus.Status域获得。

当I/O管理器调用某个驱动的IoCompletion例程,这个驱动就拥有了相应(特定)的IRP,从而能够访问到IoStatus.Status域。如果驱动没有设置IoCompletion例程,它就不会在调用IoCallDriver后拥有相应的IRP,因此决不能访问IRP中的域。

表四展现了驱动程序或者应用程序能够获得IRP状态的两种方法。为了解释的方便,表中将那些IoCompletion例程以及他们所调用(被调用?)的参数组放在了同一个I/O栈位置,而不是一个跟低的位置。

Status=IoCallDriver(?;Status=Irp->IoStatus.Status;

表四:由IoCallDriver例程返回的状态,以及对IoCompletion例程的可用性

在表四的左侧,IoCallDriver例程返回了由后面(下面?)一个驱动报告上来的完成状态。在右侧,IoCompletion例程由IRP的IoStatus.Status域读出那个状态。若是IRP以同步方式完成,每一个驱动的IoCompletion例程都会在IoCallDriver之前返回,从而使得IoCompletion 例程比分发例程更早得到状态的值。

表四所示驱动C返回ST ATUS_SUCCESS,驱动B返回STATUS_RETRY,而驱动A返回STATUS_ERROR。那个IRP的最终状态只能够由初始的请求发出者得到,其他的驱动只能够读到由后面一个驱动返回的状态。

异步(化)IO响应

驱动程序应该在当它无法以一个时间区间(Timely manner)以同步方式完成一个IO请求时,由分发例程返回ST ATUS_PENDING状态。理解何时该返回ST ATUS_PENDING对很多驱动开发者都是一个问题。

一个驱动程序,因该在以下的情况返回ST ATUS_PENDING:

l当它的分发例程有可能会在一个IRP被完成以前就返回

l它会在另外一个线程中完成特定的IRP

l它的分发线程在返回之前无法判断某个IRP是否完成

这个驱动程序必须在它释放对特定IRP的控制,以及在它返回ST ATUS_PENDING之前,调用IoMarkIrpPending宏。IoMarkIrpPending会在当前的IO栈位置的Control域,置

SL_PENDING_RETURNED位(bit)。每当一个IO栈位置被完成,IO管理器都会将此位的值复制给特定IRP头部的Irp->PendingReturned域,如表五所示:

表五:准备待处理(Pending)位

在表五中,驱动C对IoMarkIrpPending宏的调用将驱动C的IO栈位置中的Control域上的SL_PENDING_RETURNED置位。当驱动C完成了对特定IRP的处理,IO管理器就改变IRP 栈指针使之指向驱动B,并且复制(propagates)SL_PENDING_RETURNED位的值给IRP 头部的PendingReturned域。

IoCompletion例程与异步IO响应

如果一个驱动为某个IRP设置了IoCompletion例程,这个IoCompletion例程就能够通过检查Irp->PendingReturned域来判断这个IRP是否要被异步完成。

若Irp->PendingReturned域的值为TRUE,这个IoCompletion例程就将(或者已经)返回STATUS_PENDING。如果Irp->PendingReturned域的值为FALSE,IoCallDriver此刻已经以Irp->IoStatus.Status域上的值返回了。中间驱动的IoCompletion例程能够仅仅简单地通过测试Irp->PendingReturned就判断出有他们转发的请求的结果是如何被操作的。

那些以异步方式完成IO请求的驱动,有时还必需要在IRP从设备栈中向上移回时再进行一些附加的处理。下面的代码在它向下层驱动转发一个IRP时设置了一个IoCompletion例程,然后等待一个事件(event)。如此一来,它就以和同步相同的方式(manner)来处理异步响应:

KEVENT event;

KeInitializeEvent(&event, NotificationEvent, FALSE);

IoCopyCurrentIrpStackLocationToNext(Irp);

IoSetCompletionRoutine(Irp,

CatchIrpRoutine,

&event,

TRUE,

TRUE,

TRUE

);

status = IoCallDriver(DeviceObject, Irp);

//

// Wait for lower drivers to be done with the Irp.

// It’s important to note here that when you allocate

// memory for an event on the stack you must do a

// KernelMode wait instead of UserMode to prevent

// the stack from being paged out.

//

if (status == STATUS_PENDING) {

status = KeWaitForSingleObject(&event,

Executive,

KernelMode,

FALSE,

NULL

);

ASSERT(NT_SUCCESS(status));

status = Irp->IoStatus.Status;

}

return status;

在这种情况下,驱动等待一个由它的IoCompletion例程所设值的事件。由于事件是被分配到堆栈空间的,所以这个驱动必须在内核模式中等待。出于性能的考虑,驱动只有在IRP 异步完成时才需要等候事件(events)的到达。特定的KeWaitForSingleObject例程使用系统范围的分配锁(dispatcher lock)。这个锁保护了事件的信号状态(signal state)、信号(semaphores)、以及互斥体(mutexes),从而在操作系统中被频繁和广泛的用到。如果要求每个同步的IO操作也使用这个锁,将会导致对性能无法容忍的干扰。

下面的代码表示了程序片段上IoCompletion例程的设置:

NTSTATUS

CatchIrpRoutine(

IN PDEVICE_OBJECT DeviceObject,

IN PIRP Irp,

IN PKEVENT Event

)

{

if (IrpàPendingReturned) {

// Release waiting thread

KeSetEvent( Event, IO_NO_INCREMENT, FALSE );

}

return STATUS_MORE_PROCESSING_REQUIRED;

}

IoCompletion例程测试Irp->PendingReturened域的值。它基于这个值,仅当

STATUS_PENDING已经或将要被返回给调用者的时候,设置一个事件。这样就避免一次对会使用系统范围的分发者锁(dispatcher lock)的KeSetEvent例程调用。

这个IoCompletion例程会返回STATUS_MORE_PROCESSING_REQUIRED。这一状态告知(指示)IO管理器,当前的驱动当获得IRP时还需进行额外的操作。IO管理器会停止IRP 向上完成(upward completion)的过程,将IO栈位置就留在当前位置。当前的驱动就仍然拥有这个IRP,并且能够继续在其它例程中处理它。

IRP的所有权(Ownership)非常重要,因为它判定(determine)特定的驱动是否能够访问这个IRP。一旦驱动放弃了对特定IRP的所有权,这个IRP就可以由其他的线程完成或者释放,而这个驱动之后任何企图对这一IRP进行的访问都能够导致系统崩溃。

传播(Propagating)待处理位

任何时候当一个驱动处理一个由下一层驱动(next-lower driver)返回的IO请求,在它的IO 栈位置上的待处理位(IO_STACK_LOCATION结构中Control域上的

SL_PENDING_RETURNED)的值都必须和那个下一层驱动保持一致。如果某个驱动没有设置IoCompletion例程,IO管理器就会自动的传播那一位的值,而不需要驱动再负责此事了。然而,一旦驱动设置了一个IoCompletion例程,并且下一层的驱动返回了

STATUS_PENDING,当前的驱动就必须把自己的IO栈位置标为待处理(pending),例如:// Forward request to next driver

IoCopyCurrentIrpStackLocationToNext( Irp );

// Send the IRP down

status = IoCallDriver( nextDevice, Irp );

// Return the lower driver’s status

return status;

由于这个例子里没有设置IoCompletion例程,驱动程序必须避免调用IoMarkIrpPending宏。驱动只是简单的返回与下一层的驱动的返回一致的状态,由IO管理器复制待处理位的值。

然而,一旦驱动设置了一个IoCompletion例程,这个代码就不足以处理下一级驱动返回STATUS_PENDING的情况了。在这种情况下,驱动必须调用IoMarkIrpPending宏来为自己的IO栈位置上的SL_PENDING_RETURNED置位;驱动不能够在分发例程上调用这个宏。因此,下面的代码是不正确的:

// Forward request to next driver

IoCopyCurrentIrpStackLocationToNext( Irp );

// Send the IRP down

status = IoCallDriver( nextDevice, Irp );

// The following is an error because this driver

// no longer owns the IRP.

If (status == STATUS_PENDING) {

IoMarkIrpPending( Irp );

}

// Return the lower driver’s status

return status;

这里由于IoMarkIrpPending操作在当前的IO栈位置上进行,所以这样的处理是不正确的。当IoCallDriver将某个IRP传递到下一级驱动之后,当前的驱动此刻已经不再拥有这个IRP 了。如此一来,当对IoMarkIrpPending被调用时,就已经没有“当前IO栈位置”了;实际

上,如果下级驱动完成了IRP,那么这个指针就不再合法了。为了避免这样的问题,这个驱动必须从IoCompletion例程中调用IoMarkIrpPending。例如:

NTSTATUS

CompletionRoutine( ... )

{

if (IrpàPendingReturned) {

// Return the lower driver’s result. If the

// lower driver marked its stack location pending,

// so do we.

IoMarkIrpPending( Irp );

}

… //additional processing in IoCompletion routine

return STATUS_CONTINUE_COMPLETION;

}

驱动应该仅在返回和下级驱动一致的状态时使用这样的代码序列(code sequence)。如果驱动程序没有设置IoCompletion例程,IO管理器会自动向上级IO栈位置传递

SL_PENDING_RETURNED标志位的值。驱动程序并不必仅仅为了调用IoMarkIrpPending

而设置IoCompletion例程;然而一旦驱动程序确实有IoCompletion例程,并且下级驱动会返回STA TUS_PENDING,在IoCompletion例程中就必须要调用IoMarkIrpPending。

关于待处理IRP(Pending IRPs)的指导(Guidelines)的总结

当驱动作者处理会返回STA TUS_PENDING的IRP时,必须遵从特定的指导(guidelines)。忽略这些指导可能会导致后期处理(post-processing)的重复(双重)发生,造成系统崩溃;或者阻止了后期处理的发成,造成系统死锁。

以下是对于返回ST ATUS_PENDING的基础指导:

l如果一个驱动返回ST ATUS_PENDING,它必须首先调用IoMarkIrpPending宏来把特定的IO栈位置标记为待处理(pending)

l反而言之,如果一个驱动调用了IoMarkIrpPending,它就必须返回

STATUS_PENDING。

另外:

l如果一个驱动设置了IoCompletion例程,并且返回和下级驱动一致的状态,这个IoCompletion例程就必须在Irp->PendingReturned域的值为真(TRUE)时调用

IoMarkIrpPending。

l如果一个IO请求在一个驱动接收到它的线程之外的其他线程上完成,这个驱动的分发例程或者IoCompletion例程必须调用IoMarkIrpPending,并且分发例程必须返

回STATUS_PENDING。

优化

一个驱动可以通过对Irp->PendingReturned域上值进行测试,来从待处理标志位上获得优化对IO请求的后期处理的益处。例如,驱动可以有效的使用处理器的高速缓存,从而通过在

IoCallDriver例程返回一个同步的回复之后的IRP的后期处理来提高吞吐量。进行这样的优化的逻辑遵从:

l在一个同步IO请求中,发起特定IO请求的进程能够在IoCallDriver不返回STATUS_PENDING的情况下进行后期操作。在这样的情况下,这个IRP在

IoCallDriver返回时被完成,从而使得分发例程能够进行任何需要的操作。

l在一个异步IO请求中,如果IoCallDriver返回STATUS_PENDING,就需要由IoCompletion例程来进行后期处理。这个IoCompletion例程必须如本文前面

“IoCompletion例程与异步IO响应”说描述的,测试Irp->PendingReturned的值。

如果Irp->PendingReturned的值为真(TRUE),IoCompletion例程就进行需要的后

期处理。

操作系统正是使用这样的技术来处理读请求、写请求以及一些IO控制代码(IOCTRLs)。因此,如果驱动没有遵从本文前面的“关于待处理IRP(Pending IRPs)的指导(Guidelines)的总结”,操作系统就会重复(双重,twice)进行后期处理,或者根本不处理。

一个文件对象的生命周期

每当一个设备被打开,一个文件对象就被建立了。每一个文件对象都体现了对一个独立文件的单重使用,并且维护当次使用的的状态信息(如当前的文件偏移)。当IO管理器创建并打开一个文件对象,它同时创建一个指向(refer)这一对象的句柄。IRP_MJ_CREA TE、IRP_MJ_CLEANUP以及IRP_MJ_CLOSE请求定义了一个文件对象的生命周期。

IRP_MJ_CREATE请求:

一个IRP_MJ_CREA TE请求告知特定的驱动:一个新的文件对象被创建出来了。IO管理器典型的做法(通常)是在用户模式的应用程序调用CreateFile函数或者内核模式驱动调用ZwCreateFile例程时发送出一个IRP_MJ_CREA TE请求。

在一个IRP_MJ_CREA TE请求中,当前IO栈位置包含了一个FileObject结构,用以标示(identify)要被打开的文件对象。这个FileObject结构列明了:

l要打开的文件的名称,在FileObject->FileName域

l两个提供给驱动程序使用的指针,在FileObject->FsContext以及

FileObject->FsContext2域。

注意:在一个WDM设备栈中,只有功能设备对象才能够使用上述两个上下文(context)指针。文件系统驱动使用特别的函数来在多个驱动中共享这些域。

IRP_MJ_CREA TE请求到达特定线程的上下文并且对它进行了处理,就打开或者创建了特定的文件。驱动能够在需要时记录下每个调用者的信息(per-caller information)。

在响应一个创建请求时,操作系统会依下面的描述检查相应的访问权限:

l如果请求没有包含文件名称,操作系统依照ACL检查通过名称打开的设备对象的权限。

l如果请求包含有文件名称,则操作系统仅在DeviceObject->Characteristics域中的FILE_DEVICE_SECURE_OPEN特性(characteristic)被设置时检查安全性。否则,

就由驱动程序负责对安全性的检查。

一旦请求成功,操作系统就将得到的权限保存在对象句柄中供后续的IO请求使用。关于驱动安全性的具体信息,参见WDK文档。

IRP_MJ_CLEANUP请求

一个IRP_MJ_CLEANUP请求通告驱动程序:一个文件对象的上个(last)的句柄被关闭了。这一请求并不表示那个文件对象已经被删除了。

IO管理器在一个文件对象的最近一个句柄被关闭后为之发送一个IRP_MJ_CLEANUP请求。当一个驱动收到一个IRP_MJ_CLEANUP请求,这个驱动就必须完成这一特定文件的所有待处理的IRP。当这些IRP被完成之时,IO管理器就将文件对象销毁。当这些IRP还在等待处理时,IO管理器是不能删除那个对象的。

IRP_MJ_CLEANUP请求到达调用者(caller)的上下文,以尝试关闭最近的句柄。一旦驱动在IRP_MJ_CLEANUP请求到达时记录着(了)任何关于调用者的信息,它就应该在处理IRP_MJ_CLEANUP请求时将这些信息释放。然而,如果文件句柄被复制了,

IRP_MJ_CLEANUP请求的上下文就有可能不再和相应的IRP_MJ_CREA TE请求相一致。因此,驱动的作者必须在进行清理(cleanup)造作中使用到处理信息(process information)时小心的判定合适的上下文。

例如,一个应用程序能够调用DuplicateHandle()函数来将文件句柄复制到另一个进程中。如果这个新的句柄最近被关闭,而且是在原进程中所有的句柄之后,驱动程序就会收到一个在新进程上下文中的句柄上传来的IRP_MJ_CLEANUP请求。这个上下问依然代表了调用者,但已经不是同一个创建文件对象的原调用者了。

IRP_MJ_CLOSE请求

一个IRP_MJ_CLOSE请求通告驱动程序:一个文件对象被删除了。

IO管理器在以下两种情况都为真时,为相应的文件对象发送IRP_MJ_CLOSE请求:l文件对象所有的句柄都被关闭了

l没有显著的联系(参考,reference)指向这一对象,例如由遗留的待处的IRP产生的

与IRP_MJ_CREA TE和IRP_MJ_CLEANUP请求所不同,一个IRP_MJ_CLOSE请求并不是随着调用者的上下文到达。

在对IRP_MJ_CLOSE请求的响应中,驱动程序需要进行所有在响应相对应的

IRP_MJ_CREA TE请求时的动作的逆操作(reverse)。附加的任务就要看驱动的设计和它所支持的硬件类型了。

数据传输的机制

Windows操作系统家族支持三种数据传输机制:

l缓存IO(Buffered I/O)在内核模式上操作对用户数据的拷贝

l直接IO(Direct I/O)通过内存描述元列表(MDL, M emory D escriptor L ist)以及内核模式的指针直接访问用户数据

l非上述方法IO(Method neither I/O,既非缓存,也非直接IO)通过用户模式的指针访问用户数据

对于标准的IO请求,例如IRP_MJ_READ和IRP_MJ_WRITE,由驱动在设备刚创建后,马上通过修改DeviceObject->Flags域的值来指定支持那一种传输机制。

缓存IO

为了以缓存IO的方式接收读、写的请求,驱动会在初始化时在DeviceObject->Flags域上设置DO_BUFFERED_IO

..............标志。当驱动收到了一个缓存IO的请求,在特定的

Irp->AssociatedIrp.SystemBuffer域中会放有驱动应该操作的内核模式缓冲区的地址。IO..管理

..器.在进行读请求时将数据由内核模式缓冲区拷贝到用户模式缓冲区,或者在进行写请求时从用户模式缓冲区向内核模式缓冲区拷贝数据。

直接IO

为了以直接IO的方式接收读、写请求,驱动会在初始化时在DeviceObject->Flags域上设置

DO_DIRECT_IO

............标志。当驱动接收到一个直接IO请求,特定的Irp->MdlAddress域中会放有一个用来描述请求缓冲区的MDL的地址。这个MDL列出了缓冲区的虚拟地址和尺寸,连同相应缓冲区中的物理页表(physical pages)。IO管理器会在将请求发送给驱动之前锁定这些物理页,并在(请求)完成的过程中解锁。驱动千万不能使用MDL中列举的用户模式缓冲区地址,而必须通过调用MmGetSystemAddressForMdlSafe宏来得到一个内核模式的地址。

非缓存非直接IO

为了接收非缓存非直接IO的方式的请求,驱动初始化时在DeviceObject->Flags域上既不设置DO_BUFFERED_IO标志,也不设置DO_DIRECT_IO标志。当驱动接收到这样的请求,相应的Irp->UserBuffer域会放有附属于这个请求的数据地址。因为这个缓冲区在用户地址空间上,驱动程序必须在用之前使相应的地址合法化。驱动程序在try/except块里调用ProbeForRead或者ProbeForWrite函数来合法化特定的指针。驱动还必须完全在try/except 块里处理所有对这一缓冲区的访问。

另外,驱动还必须在应用(manipulating)数据之前将它拷贝到池(the pool)或堆栈里一个安全的内核模式地址。将数据拷贝到内核模式缓冲区确保了用户模式的调用者不会在驱动已

经合法化数据之后再修改它。

注意:关于探测(probing)和驱动IO路径中常见错误的信息,请参阅白皮书“Common Driver Reliability Issues”

输入、输出控制码(IOCTLs, I/O Control Codes)

IO管理器将一个IO控制码(IOCTL)作为IRP的部分将请求发送出去,而不同于读、写的请求。一个IOCTL是一个32位的控制码,用来标识一个IO或设备操作。对那些特定IOCTL 的请会同时有输入和输出的缓冲区。

操作系统支持两种类型的IOCTL,它们被放在两样不同的IRP中发送:

l IRP_MJ_DEVICE_CONTROL请求,能够被从用户模式或者内核模式发出。这些请求有时候被称作公共IOCTL(public IOCTLs)

l IRP_MJ_INTERNAL_DEVICE_CONTROL请求,只能够由内核模式的组件发出。

这些请求典型的用途是驱动到驱动的通讯,有时被称作私有IOCTL(private

IOCTLs)

对于一个IOCTL,传输机制是在控制码的Method域指定的。IOCTL支持以下的传输机制:l METHOD_BUFFERED

l METHOD_OUT_DIRECT

l METHOD_IN_DIRECT

l METHOD_NEITHER

METHOD_BUFFERED IOCTLs

在一个METHOD_BUFFERED IOCTL中,如同一个缓存类型的读或者写请求,数据传输是通过对Irp->AssociatedIrp.SystemBuffer域上传递的用户缓冲区的一个副本(拷贝)进行的。输入及输出缓冲区的长度,由Parameters.DeviceIoControl.InputBufferLength域和Parameters.DeviceIoControl.OutputBufferLength域传递给驱动的IO_STACK_LOCATION结构。这些值体现了驱动在相应对应的IOCTL时所允许(应该)读取或写入的最大字节数。

应为缓冲区指针是被确保合法并被排列(aligned)在处理器正常(natural)边界范围内,加之缓冲区中的数据是不能改变的,所以说METHOD_BUFFERED IOCTL是最为安全的IOCTL。

IO管理器并不会在发出请求前对输出缓冲区做清零初始化。驱动程序要负责,以其在

Irp->https://www.360docs.net/doc/a212877556.html,rmation域中指定的返回字节技术为上限,向输出缓冲区写入合法的数据或清零。如果不能正确写入合法数据或清零会导致将内核模式的私有数据返回给用户模式的应用程序。由于这一数据有可能属于另外的用户,这样的错误被认为是对系统安全性的破坏。

METHOD_OUT_DIRECT IOCTLs

一个指定了METHOD_OUT_DIRECT或者MTHOD_DIRECT_FROM_HARDWARE的IOCTL体现了一个对硬件发出的读操作。METHOD_OUT_DIRECT和

MTHOD_DIRECT_FROM_HARDWARE是可以互换的(interchangeably)。

在METHOD_OUT_DIRECT请求中,Irp->AssociatedIrp.SystemBuffer域容纳了一个请求发出者的输入缓冲区的内核模式拷贝。Irp->MdlAddress域放着一个MDL用来描述请求者的输出缓冲区。IO管理器读取这个缓冲区给驱动去写。在读和写的操作中,驱动程序必须调用MmGetSystemAddrssForMdlSafe宏来得到MDL所描述的缓冲区的内核指针。

请求者的输入缓冲区通常包含有一个指针指向一个应该由驱动发送或转译给硬件设备的命令。请求者的输出缓冲区通常是一个应该用于驱动传输操作结果的位置。

METHOD_IN_DIRECT IOCTLs

一个指定了MTHOD_IN_DIRECT或者METHOD_DIRECT_TO_HARDWARE的IOCTL请求了一个对硬件的写操作。MTHOD_IN_DIRECT和METHOD_DIRECT_TO_HARDWARE 的IOCTL也是可以互换的。

在METHOD_IN_DIRECT请求中,Irp->AssociatedIrp.SystemBuffer域容纳了一个请求者的输入(???原文如此)缓冲区的内核模式拷贝。Irp->MdlAddress域放着一个MDL用来描述请求者的输出缓冲区。IO管理器读取这个缓冲区给驱动去读。在读和写的操作中,驱动程序必须调用MmGetSystemAddrssForMdlSafe宏来得到MDL所描述的缓冲区的内核指针。

输入和输出缓冲区对METHOD_OUT_DIRECT和METHOD_IN_DIRECT IOCTL通常的使用是相似的方法。请求者的输入缓冲区包含一条给驱动或设备的命令。请求者的输出缓冲区包含有要驱动传输给设备的数据。本质上,它其实是第二个输入缓冲区。

METHOD_NEITHER IOCTLs

驱动可以定义IOCTL使用既非直接(direct)也非缓冲(buffered)的输入输出方式。METHOD_NEITHER IOCTL拥有分离的用户模式指针提供给输入及输出缓冲区:l IrpSp->Parameters.DeviceIoControl.Type3InputBuffer指向相应输入缓冲区

l Irp->UserBuffer指向相应输出缓冲区

相应的输入和输出缓冲区的地址是用户模式指针。因此,驱动必须在使用它们之前,通过在try/except块中调用ProbeForRead以及ProbeForWrite例程来合法化这些指针。另外,驱动还必须在合法化操作之前将所有的参数复制到内核模式的内存中(可以是池或者栈)。

注意:关于探测(probing)和驱动IO路径中常见错误的信息,请参阅白皮书“Common Driver Reliability Issues”

IRP完成的成功(Success),出错(Error)和警告(Warning)状态

当一个驱动以成功或警告状态完成了一个IRP,IO管理器会:

l如果IRP指定了METHOD_BUFFERED IO,就将数据从IRP中指出的缓冲区拷贝回用户缓冲区。驱动在Irp->IoStatusInformation域中指出要拷贝的字节数。

l将结果从IRP的状态块,Irp->IoStatus.Status以及Irp->https://www.360docs.net/doc/a212877556.html,rmation,拷贝到调用者的原始请求块中。

l发出由调用者在初始化请求是指定的事件信号。

并非所有这些动作在各种情况下都会发生。例如,如果一个驱动以错误的状态完成了一个IRP,IO管理器就不会向用户缓冲区复制任何数据,并且仅仅拷贝Irp->IoStatus.Status域的值,而不拷贝https://www.360docs.net/doc/a212877556.html,rmation域的值。如果一个驱动同步完成了一个IRP,IO管理器不会发送事件信号。如果驱动异步完成一个IRP,IO管理器则可能会也可能不会发送事件信号。因此,一个调用ZwReadFile、ZwDeviceIoControl或者类似ZwXxx例程的驱动仅当相应的ZwXxx例程返回ST ATUS_PENDING时才应该等待事件信号。

下列值指示了错误和警告的状态码范围:

l NTSTA TUS代码0xC0000000 到0xFFFFFFFF是错误

l NTSTA TUS代码0x80000000 到0xBFFFFFFF是警告

如果Irp->IoStatus.Status域上的值是一个错误代码,操作系统就不返回任何数据,从而

Irp->https://www.360docs.net/doc/a212877556.html,rmation域应该总是为零。如果Irp->IoStatus.Status域上的值是一个警告代码,操作系统能够返回数据,从而Irp->https://www.360docs.net/doc/a212877556.html,rmation域上的内容可以是非零。

一个简单的想定可以帮助我们解释这个情况。假设一IRP请求某个驱动返回由下列两个域所定义出的缓冲区里的数据:

ULONG Length;

UCHAR Data []; // 可变长度数组

其中Length域指定了需要得到数据的尺寸。应用程序发送一个ULONG请求以得到相应的Length,接着发送一个“第二”(second)请求伴随一个大一点儿的缓冲区,已接受所有的数据。驱动,轮流着,总是预期缓冲区的至少是一个ULONG数据的尺寸。

如果缓冲区足够大,驱动会以ST ATUS_SUCCESS完成相应的IRP,并且由Length以及

Irp->https://www.360docs.net/doc/a212877556.html,rmation接收被传输的字节数。

如果缓冲区不足以保存那些数据,驱动会以警告ST ATUS_BUFFER_OVERFLOW完成IRP。在这种情况下,数据对于缓冲区来说就太大了。驱动会用需要的尺寸更新相应的Length并且将sizeof(ULONG)写入Irp->https://www.360docs.net/doc/a212877556.html,rmation。

如果缓冲区太小而无法写入需要的长度(就是说,缓冲区比sizeof(ULONG)还要小),这个驱动就会以ST ATUS_BUFFER_TOO_SMALL的错误完成IRP,并且将

Irp->https://www.360docs.net/doc/a212877556.html,rmation设置为0.

创建IRP

驱动程序可以建立两种类型的IRP:

l线性(线程化?)IRP,也称作同步请求。

l非线性(非线程化?)IRP,也称作异步请求。

线性化的IRP

线性IRP在被创建时,被绑定在执行体的当前线程上。当相应的线程终止,所有与之关联的线性IRP既自动被取消了。

驱动通过调用下述例程之一来建立线性IRP:

l IoBuildSynchronousFsdRequest

l IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest为读、写请求分配并建立起一个线性IRP。IoBuildDeviceIoControlRequest分配并建立起一个线性IRP以发送一个IOCTL。

当创建一个线性IRP时,驱动指明一个事件作为这个IRP完成时的信号,并且提供指向用以返回被请求数据的缓冲区的指针。当IRP中每一个的子请求都被完成时(就是说,当所有被请求的驱动都将相应的IRP完成了),整个请求就被完成了。这时,IO管理器就接着进行下述的后期处理:

l将内核模式中的数据拷贝到要被返回给调用者的缓冲区中。例如,ZwReadFile,IoBuildDeviceIoControlRequest,和类似的系统支持的例程会传递用户模式缓冲区。

l如果响应是异步的,则发送事件信号。一旦IoCallDriver例程返回了

STATUS_PENDING,相应的调用者就应该等待特定的事件(信号)。

l如果响应是异步的,则将Irp->IoStatus.Status域上的值复制给相应用户IO状态块的Irp->Userlosb.Status域。如果IoCallDriver返回STATUS_PENDING,调用者能

够在特定事件被以信号形式发出后读取这个域。

l如果相应是异步的,并且IO请求得以成功,则复制Irp->https://www.360docs.net/doc/a212877556.html,rmation域上的值给用户状态块中的Irp->https://www.360docs.net/doc/a212877556.html,rmation域。同样,如果IoCallDriver返回

了STATUS_PENDING,调用者能够在特定事件被以信号形式发出后读取这个域。

如果特定的请求返回一个错误的状态,IO管理器不会传输任何数据到用户缓冲区,则调用者应该将Irp->https://www.360docs.net/doc/a212877556.html,rmation的值当作零对待;有些驱动作者可能宁

愿零初始化(zero-initialize)这个域作为一个附加的防范措施。

l释放IRP

未线性化的IRP

未线性化IRP不和任何线程关联。初始化一个未线性化IRP的驱动程序必须设定一个完成例程来在相应IRP完成时“捕捉”它。IO管理器不会释放未线性化的IRP;初始化这个IRP 的驱动必须负责释放它。未线性化的IRP是为了驱动与驱动之间相互通讯而设计的。

驱动通过调用下列进程之一来创建未线性化IRP:

l IoBuildAsynchronousFsdRequest

l IoAllocateIrp

IoBuildAsynchronousFsdRequest为读或写请求分配并创建一个未线性化IRP。IoAllocateIrp

为驱动分配一个IRP用以发送到同一设备栈的下层驱动或者其他的设备栈中。

IRP的取消

IRP可以被取消(有时也被描述为“召回(recalled)”)。一旦某个IRP被取消了,当前拥有这个IRP的驱动必须立即完成它。

驱动要求特殊的处理以取消一个IRP必须:

l提供一个IoCancel例程,以在处理过程中的不同时间里等待取消事件发生的通报以及测试IRP中的Cancel标记,用以判断这个IRP是否被取消

l使用新的“取消-安全”(cancel-safe)IRP排列例程(IoCsqXxx)

正确编码IRP的取消会是有困难的,这是应为取消本身固有的异步性以及竞争(race condition)的多发性(会发生在很多点)。取消-安全的IRP队列很大程度上简化了取消的逻辑,因而被强烈建议使用在所有的新驱动上。IRP的取消在WDK和白皮书“Cancel Logic in Windows Drivers”中有相关内容。

调试输入、输出中的问题

驱动作者可以使用驱动验证器(Driver V erifier)以及微软调试器(MS debugger)的扩展来调试处理IRP过程中的问题。

驱动验证器能够捕获IRP处理中各个方面的错误。驱动验证器随各个版本的操作系统提供。驱动验证器在附有调试器一同运行时效果最好。然而,所有的驱动作者仍然必须提供并使用那些用以检验(exercise)他们的驱动的测试工具以使得驱动验证器能够检测到错误。使用驱动验证器以及驱动专用的测试工具应当是调试和开发过程中的一个标准部分。

!irp以及!irpfind调试器扩展能够帮助在调试过程中跟踪IRP。!irp扩展用于显示关于一个指定IRP的详细信息,而!irpfind扩展用于显示系统里的全部IRP之信息或者关于一个或多个符合特定标准的IRP。要得到关于这些扩展的详细信息,参看Debugging Tools for Windows 包中的相关文档。你可以从WHDC的Web站点下载到这个包,就在本文中“行为准则(Call to Action)和资源”中所列的地址下。

行为准则(Call to Action)和资源

为驱动开发人员的行为准则:

l从所有的IoCompletion例程中返回STATUS_CONTINUE_COMPLETION或STATUS_MORE_PROCESSING_REQUIRED

l理解何时该为一个IRP返回STA TUS_PENDING。仅当你为某个IRP调用了IoMarkIrpPending宏;反之,仅当你打算返回STA TUS_PENDING时,才为一个IRP

调用IoMarkIrpPending。

l在IoCompletion例程中测试Irp->PendingReturned标志的值,以优化IRP的后期处理。

l理解错误状态和警告状态的不同,以及每种类型的状态下IRP中包含的数据。

l使用驱动验证器来捕获IRP处理中的错误,并且使用调试器扩展来理解独立的IRP 是如何被处理的。

资源:

WHDC Web site

https://www.360docs.net/doc/a212877556.html,/whdc/default.mspx

Current White Papers

I/O Completion/Cancellation Guidelines

https://www.360docs.net/doc/a212877556.html,/whdc/driver/kernel/Iocancel.mspx

Cancel Logic in Windows Drivers

https://www.360docs.net/doc/a212877556.html,/whdc/driver/kernel/cancel_logic.mspx

Scheduling, Thread Context, and IRQL

https://www.360docs.net/doc/a212877556.html,/whdc/driver/kernel/IRQL.mspx

Locks, Deadlocks, and Synchronization

https://www.360docs.net/doc/a212877556.html,/whdc/driver/kernel/locks.mspx

Common Driver Reliability Issues

https://www.360docs.net/doc/a212877556.html,/whdc/driver/security/drvqa.mspx

Debugging Tools for Windows

https://www.360docs.net/doc/a212877556.html,/whdc/DevTools/Debugging/default.mspx

Microsoft Knowledge Base

https://www.360docs.net/doc/a212877556.html,/

Knowledge Base Article 320275, “Different Ways of Handling IRPs—Cheat Sheet (Part

1 of 2)”

Knowledge Base Article 326315, “Different Ways of Handling IRPs—Cheat Sheet (Part

2 of 2)”

Microsoft Windows Driver Kit (WDK)

https://www.360docs.net/doc/a212877556.html,/whdc/driver/WDK/default.mspx

Microsoft Platform Software Development Kit (SDK)

https://www.360docs.net/doc/a212877556.html,/downloads/details.aspx?FamilyId=484269E2-3B89-47E3-8E B7-1F2BE6D7123A&displaylang=en

基础施工流程及要点

基础施工流程及要点 一、施工准备及施工要点 1、混凝土灌桩施工方案已编写完成。 2、分级技术交底已层层执行,并书面签字。 3、各种原材料检验合格,各种机具设备及材料配备齐全,并检修待用。 4、测量放线 准确测量桩位,桩位用Φ20mm,长度为35-40cm钢筋打入地面30cm,作为桩的中心点,然后在钢筋头周围画上白灰记号,既便于寻找,又可防止机械移位时破坏桩位。 5、埋设护筒 护筒的主要作用是保持孔口稳定和定位。埋设时顶面高出地面0.3m。埋设护筒时,其周围用粘土分层夯实,采用挖坑埋设,开挖前用十字交叉法将桩中心引至开挖区外,放四个护桩,埋设时将中心引回,使护筒中心与桩位中心重合,并严格控制其垂直度,要求不大于0.1%。埋设深度控制在杂填土层以下,约4~6m左右,必须保证人工下挖至管线的埋置深度以下。当护筒长度不足时,采取夹板带螺丝的方法将护筒接长。 6、挖孔 (1)钻机就位 旋挖钻机利用行走系统自行就位,钻机就位后钻机桅杆中心要与桩中心对准,钻机调平,使钻桅垂直,旋挖钻机调平可以通过自动控制系统完成。 (2)注入泥浆 泥浆符合要求,钻机就位准确后,用泥浆泵向护筒内注入泥浆,泥浆注到旋挖时不外溢为止。在旋挖过程中每挖一斗向孔内注一次泥浆,使孔内始终保持一定水头和泥浆质量稳定。 (3)旋挖 根据地质情况,采用相应的合适钻头。护筒内注入泥浆达到要求后开始旋挖。钻机刚开始起动时旋挖速度要慢,防止扰动护筒。在孔口段5~8m旋挖过程中特别要注意通过控制盘来监控垂直度和孔径,如有偏差及时进行纠正。在全部挖孔过程中做好钻进记录,随时根据不同地质情况调整泥浆指标和旋挖速度。旋挖过程中孔内要始终保持一定水头,每挖一斗都要及时向孔中补充泥浆。注入泥浆和旋挖要相配合,以保证成孔质量。

2017专业技术人员标准化的理论方法与实践答案

2017年专业技术人员标准化的理论、方法与实践 1、标准化是人类社会发展的必然产物。共同的语言、文字、历法、生产工具是人类社会发展和进步最基本和初级的需求,这些都是最早出现的具有()特征的事物,而且多是以实物的形态呈现的。 A:标准化 答案:A 2、惠特尼是实行()生产的创始者。 B:标准化 3、1906年英国颁布了()BS27。此后,螺纹、各种零件和材料等也先后实现了标准化,成百倍地提高了劳动生产率。 D:国家公差标准 4、()管理体系建立是以“泰罗制”和“福特制”为标志的。 C:现代标准化 5、由于工业化和交通运输业的进一步发展,迫切需要解决同样的零部件在更大的范围 内实现统一和互换问题,要解决这些问题,需要建立一个协调性组织来统一这些零部

件的标准,从而推动世界上第一个()——英国工程标准委员会于1901年诞生,它标志着标准化从此步入了一个新的发展阶段。此后不久,约有25个国家相继成立了国家标准化组织。 A:国家标准化组织 6、1928年又创立了国际标准协会国际联合会(ISA),1946年10月14日在ISA的基础上成立(),代表联合国负责国际间标准化工作的协调统一工作。 A:国际标准化组织(ISO) 7、标准是()。 D:为了在一定的范围之内获得最 佳秩序,经过协商一致制定且由公认机构批准,共同使用和重复使用的一种规范性文件8、标准化是()。 B:为了在一定范围内获得最佳秩序, 对潜在问题或现实问题制定重复使用和共 同使用的条款的活动 9、简化原理是()。 A:在一定范围内缩减标准化对象的类 型和数目

10、统一化原理是()。 D:把同类事物两种或两种以上的表 现形态归并为一种或限定在一个范围的标准化形式 11、通用化原理是()。 C:在互相独立的系统中,最大 限度地扩大具有功能互换和尺寸互换的功能单元使用范围的一种标准化形 式 12、系列化原理是() B:根据同一类产品的发展规律和使 用要求,将其性能参数按一定数列作合理安排和规划,并对其形式和结构进行规划或统一,从而有目的地指导同类产品发展的一种标准化形式 13、组合化原理是()。 A:按照标准化原则,设计并制造出一 系列通用性很强且能多次重复应用的单元,根据需要拼合成不同用途的产品的一种标准化形式 14、模块化原理是()。

荣成规划设计方案参考

荣成xxx生产项目规划设计方案 模板范文

荣成xxx生产项目规划设计方案 荣成市为山东省威海市下辖县级市,地处山东半岛最东端,三面环海,海岸线长500公里,是中国大陆距离韩国最近的地方。介于东经122°08’一122°42’、北纬36°45’—37°27’之间,北、东、南三面濒临黄海,海岸线曲长达491.9公里;属暖温带大陆性季风型湿润气候;辖3个区、 12个镇、10个街道,面积1526平方公里。2016年户籍总人口66.7万人。早在新石器时代,荣成就有人类聚居。西汉始置不夜县,属东莱郡。据史 书记载,秦始皇先后两次来荣筑桥立祠、观海祀日,汉武帝也曾前来拜日主。截至2016年底,拥有国家4A级景区3处、3A级景区11处、2A级景 区1处。2018年1月,荣成入选首批社会信用体系建设示范城市。2019年 7月,入选国家知识产权强县工程试点县(区)。2019年10月8日,被评 为2019年度全国综合实力百强县市。入选2019年度全国新型城镇化质量 百强县市、2019全国营商环境百强县、第二批节水型社会建设达标县(区)。2020年山东省四星级新型智慧城市建设预试点城市。2019年,荣 成市实现生产总值930.8亿元,按可比价计算,比上年增长3.6%。 该xxx项目计划总投资4117.98万元,其中:固定资产投资2791.44 万元,占项目总投资的67.79%;流动资金1326.54万元,占项目总投资的32.21%。

达产年营业收入9805.00万元,总成本费用7825.85万元,税金及附 加71.18万元,利润总额1979.15万元,利税总额2323.32万元,税后净 利润1484.36万元,达产年纳税总额838.96万元;达产年投资利润率 48.06%,投资利税率56.42%,投资回报率36.05%,全部投资回收期4.27年,提供就业职位187个。 报告依据国家产业发展政策和有关部门的行业发展规划以及项目承办 单位的实际情况,按照项目的建设要求,对项目的实施在技术、经济、社 会和环境保护、安全生产等领域的科学性、合理性和可行性进行研究论证;本报告通过对项目进行技术化和经济化比较和分析,阐述投资项目的市场 必要性、技术可行性与经济合理性。 ...... CMOS摄像头模组(CMOSCameraModules,CCM)已经成为重要的传感技术,并且该市场竞争越来越激烈。据麦姆斯咨询报道,摄像头模组产业已 经发展到了一个新阶段,Yole预测2018年全球摄像头模组市场规模达到 271亿美元,未来五年将保持9.1%的复合年增长率(CAGR),预计2024年 将达到457亿美元。摄像头模组产业涵盖图像传感器、镜头、音圈电机、 照明器和其它摄像头组件。该产业的主要驱动因素为智能手机和汽车等产 品中的摄像头数量不断增加,因此CMOS摄像头模组市场仍具很强的吸引力。

2017 专技天下标准化理论方法实践复习资料整理

标准化理论方法实践 判断 1、人类发展史某种意义上就是一部标准化史。语言文字就是最基本的“ 标准” ,否则人们无法沟通。正确 2、由于生产和生活的需要,人们要对大小、多少、长短、早晚等进行计量,从而产生了… 结绳记事?、… 布手知尺?、… 布指知寸?、… 一手之盛谓之掬,两手谓之溢?、… 迈步立田?等一些最简单的计量标准。正确 3、人类的生产工具,生活用具的制作,都会有“ 操作规程” ,各个部落都会有自己的“ 行为准则” , “ 宗教信仰” , “ 图腾崇拜” , “ 神话传说” ,这些都是长期实践过程中,人们在对世界和自身的探索中形成的。正确 4、谈到现代标准,则更多人会认为那是工业革命之后的事情,是要通过规模化生产以解决“ 短缺” 的问题。零部件标准化为大规模机械化生产奠定了基础, “ 福特制” 为适应这种生产方式的管理制定了基本规范。错误 5、“ 标准” 作为一种“ 产品和服务” 需要遵从市场规律,在如何处理政府—市场—社会三者的关系上,各国政府开始意识到, “ 标准化” 是一个具有需要政府引导,社会力量参与和尊重市场配置资源的决定性作用的有机系统,任何违背其中基本规律的“ 标准化” 都难于取得实效。正确 6、世界各国越来越意识到,标准对于提升本国竞争力的重大意义, “ 规则的制定权和话语权” 往往决定着市场的走向。这是一个进步。但, “ 标准的双刃剑” 性质往往会使得一些“ 具有竞争优势” 的国家和地区,以“ 标准” 为手段,谋取“ 超额利润” ,加大对发展中国家和不发达国家的盘剥。从大的方面说,这个世界的政治、经济秩序和规则的制定(也是一种标准)更多掌握在发达国家手中, “ 协商一致” 愈加困难。不过, “ 多赢” 理念, 已经为更多有理性的人们所接受。正确 7、如果说“ 现代标准” 是为了适应机械化大规模生产,以解决“ 短缺” 问题的话,那么“ 后现代标准” 就是为了适应“ 智能制造” 、“ 小批量、多品种、个性化” 生产方式以解决“ 过剩” 的问题,或者说在“ 统一之中的多样性问题” 。用标准引领人类高质量全面发展已经成为全人类的共识。正确 8、第三次工业革命后,标准化领域最重要的拓展一是在服务领域,二是在社会责任领域。正确 9、从ISO 的角度看, ISO26000的制定促进了社会责任领域共识的形成,包括对社会责任定义、理解、原则、核心主题等的理解和认识,并开创了ISO 标准制定史上新的篇章,将标准从技术领域扩展到人权、劳动标准等社会领域,为统一全球社会责任的定义及其理解搭建平台,并扩大其在社会责任领域标准制定的影响力。正确 10、标准化工作改革,要紧紧围绕使市场在资源配置中起决定性作用和更好发挥政府作用,着力解决标准体系不完善、管理体制不顺畅、与社会主义市场经济发展不适应问题。正确 11、在标准体系上,逐步将现行强制性国家标准、行业标准和地方标准整合为强制性国家标准。 正确12、标准系统建成之后不能一劳永逸,需要通过人对它进行管理和调整,才能使它保持同环境的适应,离开了人的管理,标准系统是不可能存在和发展的。正确 13、标准系统的管理主要应用以下几个原理:系统效用、结构优化、有序原理、反馈控制、PDCA 循环、持续改进等。正确 14、英国标准化专家桑德斯认真总结了标准化活动的过程,将其概括为制定、实施、修订、再实施标准的过程,同时 提炼了标准化的7项原理。正确 15、桑德斯原理明确地提出了标准化的目的是促进社会秩序规范有序。错误 16、松浦四郎在1972年出版的《工业标准化原理》一书中,全面阐述了他的理论观点,提出了19条标准化原理。正确 17、标准化不仅是经济活动,更需要政府主导。错误 18、我国标准化专家提出了四项标准系统的管理原理, 即系统效应原理、结构优化原理、有序发展原理和反馈控制原理。正确 19、标准系统的生命力就在于持续改进, 不管是系统优先、优化结构、发展有序还是循环控制, 都不是一劳永逸的, 都需要根据变化了的情况及时进行调整。正确20、PDCA 循环又叫质量环,是管理学中的一个通用模型,最早由休哈特于1930年构想,后来被日本质量管理专家戴明博士在1950年再度挖掘出来,并加以广泛宣传和运用于标准化管理,即按照计划(P )、执行(D )、检查(C )和行动(A )这样的顺序进行质量管理,并且不停顿地周而复始地运转下去的科学程序。错误

设计方案讲解参考话术

设计方案讲解ppt参考话术 第一页(开场) 客套开场,我们的设计师对您的设计方案进行了再三考虑才加班完成的,所以非常高兴陈先生能在百忙之中抽出宝贵的时间来过来研究我们的个性家居方案。而且我们相信,一份好的设计方案是在不断的否定与修改中碰撞出来的,所以希望陈先生在方案讲解完后可以提出给我们的建议。 第二页(设计工作室介绍) 在尚品,业主的设计方案从来不是一位设计师完成的,负责陈先生您家居设计的是我们疯狂设计工作室,我们擅长于研究生活与家居设计的关系,当然里面包括我们的主卧设计师***,书房设计师***和主讲设计师***。 第三页(公司实力) 尚品在成立9年来,一直为业主们提供优质的家居设计服务。而正是因为这样,所以我们已经连续受到三位共和国总理的高度关注了。同时也因为这些荣誉,我们也一直以实现业主家居梦想作为己任,坚持回馈设计界和社会。 第四页(服务理念) 相信陈先生也很清楚:在中国,房价在持续上涨。所以像陈先生这样提前购入的消费者是比较明智的。正是因为现在房价不断上涨,所以我们一直致力于研究如何非常优雅美观地利用好家里面的每一寸空间。因为浪费了一平方就等于浪费了1万多元。但是在房子里面,格局是相对固定的,而我们可以转换一下思维,房子不可变,家具可以变,我们可以根据您的生活需求而进行家居设计。我们希望通过我们的努力为您完成您的个性家居梦想。而对于设计方案,我们重点考虑的因素有生活行为、空间文化和习惯定制三个方面。 第五页(第一户型分析) 事不宜迟,先来看看陈先生您的第一个主卧空间。从主卧来看,陈先生选房子的眼光非常不错,主卧非常方正实用,而且我最喜欢的就是阳台外面正对的就是中心花园,风景一流。(称赞户型的常用词语:空间方正实用,开间开阔,采光充足,南北对流,冬暖夏凉,户型紧凑,特别适合······)陈先生在这个空间里面主要考虑有休息、储物、影视、休闲的功能。(注意:请用功能代替产品) 第六页(第一平面布局) 先来看看我们设计方案中生活行为的设计部分,根据陈先生您公司主管的工作背景和功能需求分析,我们设计了以下平面布局方案。我们把整个空间划分为以下几个功能区域,分别是休息区、储衣区、视听区,剩下的非常宽广的区域就是活动区,从分区的比率来看,在空间的生活行为活动将会得到充分的保障。如果在平面布局方面没什么问题的话我们就来看看空间设计的文化信息。 第七页(第一风格文化陈述) 在空间设计文化方面的考虑,我们根据陈先生您的性格特点(需求特点)特意为您的空间规划出一种来自米兰的设计文化格调。米兰作为世界时尚之都,米兰黑白经典的形象已经深入人心,好像就是特别为您这种个性分明具有敏锐时尚触觉的前卫潮流一代打造的一样。 第八页(第一风格文化体现) 现代人对卧室的追求不再是睡眠的地方,更是作为与家人进行感情交流的摇篮。典雅的格调,将成为主人情感交流的催化剂,这才是“家”。米兰剪影典雅的格调来自于低调的米兰灰橡主材和精致的牵藤花面板的搭配,从主色调上把整个空间定格在黑白上。当然在空间设计的装饰上面,考虑到空间单纯的黑白两色会显得有点单调,所以墙面采用波斯米亚紫色花纹装饰,配合浅木色地板,优雅闲适。

标准化的理论 方法与实践试题与答案

2017年公需课计划 标准化的理论、方法与实践 1、标准化是人类社会发展的必然产物。共同的语言、文字、历法、生产工具是人类社会发展和进步最基本和初级的需求,这些都是最早出现的具有()特征的事物,而且多是以实物的形态呈现的。 A:标准化 2、惠特尼是实行()生产的创始者。 B:标准化 3、1906年英国颁布了()BS27。此后,螺纹、各种零件和材料等也先后实现了标准化,成百倍地提高了劳动生产率。 D:国家公差标准 4、()管理体系建立是以“泰罗制”和“福特制”为标志的。 C:现代标准化 5、由于工业化和交通运输业的进一步发展,迫切需要解决同样的零部件在更大的范围内实现统一和互换问题,要解决这些问题,需要建立一个协调性组织来统一这些零部件的标准,从而推动世界上第一个()——英国工程标准委员会于1901年诞生,它标志着标准化从此步入了一个新的发展阶段。此后不久,约有25个国家相继成立了国家标准化组织。 A:国家标准化组织 6、1928年又创立了国际标准协会国际联合会(ISA),1946年10月14日在ISA的基础上成立(),代表联合国负责国际间标准化工作的协调统一工作。 A:国际标准化组织(ISO) 7、标准是()。 D:为了在一定的范围之内获得最佳秩序,经过协商一致制定且由公认机构批准,共同使用和重复使用的一种规范性文件 8、标准化是()。 B:为了在一定范围内获得最佳秩序,对潜在问题或现实问题制定重复使用和共同使用的条款的活动 9、简化原理是()。 A:在一定范围内缩减标准化对象的类型和数目 10、统一化原理是()。 D:把同类事物两种或两种以上的表现形态归并为一种或限定在一个范围的标准化形式11、通用化原理是()。 C:在互相独立的系统中,最大限度地扩大具有功能互换和尺寸互换的功能单元使用范围的一种标准化形式 12、系列化原理是() B:根据同一类产品的发展规律和使用要求,将其性能参数按一定数列作合理安排和规划,并对其形式和结构进行规划或统一,从而有目的地指导同类产品发展的一种标准化形式13、组合化原理是()。 A:按照标准化原则,设计并制造出一系列通用性很强且能多次重复应用的单元,根据需要拼合成不同用途的产品的一种标准化形式 14、模块化原理是()。 C:在对一定范围内的不同产品进行功能分析和分解的基础上,划分并设计、生产出一系列通用模块或标准模块,然后,从这些模块中选取相应的模块并补充新设计的专用模块和零部件一起进行相应的组合,以构成满足各种不同需要的产品的一种标准化形式 15、采标是()。 D:将国际标准或国际先进标准的内容,经过分析研究,不同程度地转化为我国标准并贯彻实施 16、采标的原则是()。 B:凡已有国际标准,应当以其为基础制定我国标准。凡尚无国际标准或国际标准不能适应需要,应当积极采用国外先进标准 17、质量功能展开法是() C:是把顾客或市场的要求转化为设计要求、零部件特性、工艺要求、生产要求的多层次演绎分析方法和质量工程工具,用来指导产品的设计和质量保证 18、正交试验设计法是()。 A:是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐整可比”的特点,是一种高效率、快速、经济的实验设计方法 19、三次设计法是()。D:包括系统设计(第一次设计)、参数设计(第二次设计)和容差设计(第三次设计)。它是一种优化设计,主要用于质量管理前期的技术开发、产品开发、工艺开发,从而可提高产品设计质量,降低成本,缩短设计开发周期 20、数据统计标准体系主要有()个方面的标准。 C:6 21、标准体系表是()。B:一定范围内的标准体系内的标准按其内在的联系排列起来的图表 22、标准体系表的编制原则是()。C:目标明确、全面成套、层次适当、划分清楚

工具使用规范及管理制度

工具使用规范及管理制度 一使用规范 1 时刻保持工具整洁干净 2 保持工具摆放整齐有序,不得随意凌乱乱放 3 工具在使用过程中不得使用蛮力、粗暴等手段施加破坏性作业防止对工具造成永久性损毁 4对于像改锥、钳子等不耐受力工具禁止用其他方法给其加力或敲击5工具在使用过程中随用随取,用过后不得随意摆放在作业车辆上面,不用的工具要摆放到工具车上方,待中途使用。 6作业完毕后要及时对使用过的工具进行清理脏污、归类、归位以便下次使用 7对借用的专用工具在使用过程中一定要爱护,规范使用,不得违规操作。 8 工具在借用前一定要检查其完好性,用完后要保持其完好可靠性 9对待精密仪器和脆弱性专用工具更要仔细小心,确保工具的持续可用性 10 对于像电脑检测仪等精密电子仪器必要时请技术总监陪同知道作业,不得盲目操作 二管理制度 为规范公司各类工具的保管、领用、移交收回等程序,避免工具的丢失和离职交接没收回等现象,特制定此管理制度。 A、工具的发放及领用事项: 1专用工具由公司统一购置,由专人保管,公司所有维修人员在使用专用工具时,必须在保管员处签字领取,工具使用完毕交还时,由保管员签字确认工具已回收(完好无损); 2除专用工具外,公司还为每位维修人员配备一套一汽大众专用个人

工具,个人工具由维修工本人在保管员处签字领取并由本人保管,公司随时安排专人对工具的完整性和有序性进行抽查。 B、工具丢失赔偿事项: 1、维修人员所签字领取的专用工具,在使用完毕后没有及时交回而导致丢失的,由签字领用工具的本人按所遗失工具的原价进行赔偿; 2、维修人员领取的个人工具发生丢失情况的,领用人本人应及时申报补缺,所丢工具由公司代为购买,购买费用由其本人承担;如丢失工具后不及时申报的,公司检查时一经发现,由领用人按所丢失工具价格的2倍进行赔偿。 C、关于维修人员离职时工具交还事项: 维修人员在离职时,由本人在离职前将所领用工具如数且无损坏交回保管员处,如有缺失或损坏的,由本人按原价进行赔偿。 D、维修人员存在主观故意或恶意损坏工具的事项: 如有个别维修人员存在故意或恶意损毁工具的行为发生,公司一经发现,由损坏人本人按损坏工具价格的3倍进行赔偿。 E、其它事项: 专用工具及离职人员所交回的个人工具由保管员统一保管,如无其它情况发生而导致工具丢失的,由保管员本人照价赔偿。 一汽大众孝义德众售后

方案设计参考

太阳能道路照明装置的方案设计参考 目前太阳能路灯作为一种新型能源,有着光明的前景。 一、太阳能路灯照明的参考标准 太阳能路灯的照明由于系统各方面的限制,不可能按照市电的照明标准来要求,目前可以借鉴的主要是一些地方标准,如北京市的地方标准《太阳能光伏室外照明装置技术要求》(DB11/T542-2008),其中对于照明标准方面规定:乡村街道、道路维持水平平均照度在3-4lx,水平照度均匀度0.1~0.2,灯具的类型采用半截光型灯具。 二、太阳能路灯设计 (1)现场勘查 太阳能路灯由于采用太阳能辐射进行发电,对于路灯安装的具体地点具有特殊的要求,太阳能路灯安装前必须对安装地点进行现场勘查。勘查的内容主要有: 1、察看安装路段道路两侧(主要是南侧或东、西两侧)是否有树木、建筑等遮挡,有树木或者建筑物遮挡可能影响采光的,测量其高度以及与安装地点的距离,计算确定其是否影响太阳能电池组件采光;对太阳能光照的一般要求是太阳能光照至少能保证上午9:00至下午3:00之间不能有影响采光的遮挡。 2、观察太阳能灯具安装位置上空是否有电缆、电线或其它影响灯具安装的设施(注意:严禁在高压线下方安装太阳能灯具); 3、了解太阳能路灯基础及电池舱部位地下是否有电缆、光缆、管道或其它影响施工的设施,是否有禁止施工的标志等。安装时尽量避开以上设施,确实无法避开时,请与相关部门联系,协商同意后方可进行施工。 4、避免在低洼或容易造成积水的地段安装; 5、对安装地段进行现场拍照; 6、测量路段的宽度、长度、遮挡物高度和距离等参数,记录路向并和照片等资料一起提供给方案设计者供参考。 (2)安装布置 1、根据道路的宽度、照明要求,选择安装布灯方式: a、单侧布置 b、双侧对称布置; c、双侧交错布置

2017年公需课标准化的理论、方法与实践答案

1)单选题,共10题,每题3.0分,共30.0分 1单选题(3.0分) 2008年出版社的《标准化与经济增长——理论、实证与案例》:近30年来,我国标准数量每增加1%,经济增长()%。 A. 0.1 B. 0.5 C. 1.79 D. 1.8 答案C解析 2单选题(3.0分) 标准化是人类社会发展的必然产物。共同的语言、文字、历法、生产工具是人类社会发展和进步最基本和初级的需求,这些都是最早出现的具有()特征的事物,而且多是以实物的形态呈现的。 A. 标准化 B. 标志性 C. 标准 D. 文化 答案A解析 3单选题(3.0分) 参与国际标准化活动能力进一步增强,承担国际标准化技术机构数量持续增长,参与和主导制定国际标准数量达到年度国际标准制修订总数的()。 A. 0.4 B. 0.5 C. 0.45 D. 1.6 答案B解析 4单选题(3.0分) 《深圳市知识产权与标准化战略纲要(2011-2015年)》,这是国内首部标准化与()结合的战略纲要。该纲要明确了下一阶段实施知识产权战略和标准化战略的各项任务和措施。 A. 科技 B. 知识产权 C. 技术创新 D. 专利

答案B解析 5单选题(3.0分) 职业能力倾向是()。 A. 职业性向 B. 潜能 C. 职业人格 D. 从业人员在学习和掌握必备的职业知识和技能时所需具备的基本能力和潜力 答案D解析 6单选题(3.0分) 三次设计法是()。 A. 是一种优化设计,主要用于质量管理前期的技术开发、产品开发、工艺开发 B. 是在20世纪70年代由日本质量管理专家田口玄一提出的一种质量管理方法 C. 是把顾客或市场的要求转化为设计要求、工艺要求、生产要求的质量工程工具,用来指导产品的设计和质量保证 D. 包括系统设计(第一次设计)、参数设计(第二次设计)和容差设计(第三次设计)。它是一种优化设计,主要用于质量管理前期的技术开发、产品开发、工艺开发,从而可提高产品设计质量,降低成本,缩短设计开发周期 答案D解析 7单选题(3.0分) 合格产品和服务的基础是() A. 管理 B. 人和组织 C. 严格的规章制度 D. 高素质的员工 答案B解析 8单选题(3.0分) 首标委的设立,是北京市落实()和首都标准化战略的重要举措,也是北京市在标准化工作机制上的一项重大改革创新。 A. 《质量发展纲要》 B. 《标准化纲要》 C. 《城市发展纲要》 D. 《科技发展纲要》

规划设计方案-参考模板

xx项目 规划设计方案规划设计/投资分析/实施方案

承诺书 申请人郑重承诺如下: 该项目已按国家法律和政策的要求办理相关手续,报告内容及附件资料准确、真实、有效,不存在虚假申请、分拆、重复申请获得其他财政资金支持的情况。如有弄虚作假、隐瞒真实情况的行为,将愿意承担相关法律法规的处罚以及由此导致的所有后果。 公司法人代表签字: xxx集团(盖章) xxx年xx月xx日

项目概要 该xx项目计划总投资13670.73万元,其中:固定资产投资11415.47万元,占项目总投资的83.50%;流动资金2255.26万元,占 项目总投资的16.50%。 达产年营业收入17156.00万元,总成本费用12988.75万元,税 金及附加239.51万元,利润总额4167.25万元,利税总额4981.55万元,税后净利润3125.44万元,达产年纳税总额1856.11万元;达产 年投资利润率30.48%,投资利税率36.44%,投资回报率22.86%,全部投资回收期5.87年,提供就业职位300个。 报告目的是对项目进行技术可靠性、经济合理性及实施可能性的 方案分析和论证,在此基础上选用科学合理、技术先进、投资费用省、运行成本低的建设方案,最终使得项目承办单位建设项目所产生的经 济效益和社会效益达到协调、和谐统一。 木质纤维(xylemfiber)是天然可再生木材经过化学处理、机械法加 工得到的有机絮状纤维物质,广泛用于混凝土砂浆、石膏制品、木浆海棉、沥青道路等领域。可用于制造中纤板,用于家居建材行业。 报告主要内容:项目承担单位基本情况、项目技术工艺特点及优势、项目建设主要内容和规模、项目建设地点、工程方案、产品工艺

2017年河北省《标准化的理论、方法与实践》试题与答案

2017年河北省专业技术人员《标准化的理论、方法与实践》 1、标准化是人类社会发展的必然产物。共同的语言、文字、历法、生产工具是人类社会发展和进步最基本和初级的需求,这些都是最早出现的具有()特征的事物,而且多是以实物的形态呈现的。 A:标准化 答案:A 2、惠特尼是实行()生产的创始者。 B:标准化 3、1906年英国颁布了()BS27。此后,螺纹、各种零件和材料等也先后实现了标准化,成百倍地提高了劳动生产率。 D:国家公差标准 4、()管理体系建立是以“泰罗制”和“福特制”为标志的。 C:现代标准化 5、由于工业化和交通运输业的进一步发展,迫切需要解决同样的零部件在更大的范围内实现统一和互换问题,要解决这些问题,需要建立一个协调性组织来统一这些零部件的标准,从而推动世界上第一个()——英国工程标准委员会于1901年诞生,它标志着标准化从此步入了一个新的发展阶段。此后不久,约有25个国家相继成立了国家标准化组织。 A:国家标准化组织 6、1928年又创立了国际标准协会国际联合会(ISA),1946年10月14日在ISA 的基础上成立(),代表联合国负责国际间标准化工作的协调统一工作。 A:国际标准化组织(ISO) 7、标准是()。 D:为了在一定的范围之内获得最佳秩序,经过协商一致制定且由公认机构批准,共同使用和重复使用的一种规范性文件 8、标准化是()。 B:为了在一定范围内获得最佳秩序,对潜在问题或现实问题制定重复使用和共同使用的条款的活动 9、简化原理是()。 A:在一定范围内缩减标准化对象的类型和数目 10、统一化原理是()。 D:把同类事物两种或两种以上的表现形态归并为一种或限定在一个范围的标准化形式 11、通用化原理是()。

基础工程施工顺序

1、基础工程施工顺序: 桩基础→土方开挖、钎探验槽→垫层→地下卷材防水施工→地下室底板→地下室墙、柱→地下室顶板→墙体防水卷材、保护墙→回填土 2、屋面工程施工顺序: 基层清理→干铺加气砼砌块→加气砼碎渣找破→水泥砂浆找平层→刷基层处理剂→铺贴SBS高聚物改性沥青防水卷材→蓄水试验→做保护层 3、采用热熔法铺贴卷材时,作业面施工应具备哪些基本条件: 1)防水层的基层表面应将尘土、杂物等清理干净;表层必须平整、坚实、干燥。 2)找平层与突出屋面的物体(如女儿墙、烟囱等)相连的阴角,应抹成光滑的小圆角;找平层与檐口、排水沟等相连的转角,应抹成光滑一致的圆弧形。 3)遇雨天、雪天和五级风及其以上必须停止施工 4、框架柱和顶板梁在施工中各分项工程的施工顺序: 框架柱的施工顺序:柱子钢筋绑扎→柱子模板安装(包括模板支护)→柱子砼浇筑→砼养护梁板的施工顺序:满堂脚手架的搭设→铺设梁底模板→梁钢筋绑扎→合梁侧模板→铺设顶板模板→铺设并绑扎顶板钢筋→浇筑梁板砼→砼养护 5、同一楼层内的施工顺序一般有:地面→顶棚→墙面;顶棚→墙面→地面。简述这两种施 工的优缺点: 前种便于清理地面,地面质量易于保证,且便于收集墙面和顶棚的落地灰。节省材料,但由于地面需要养护时间及采取保护措施,使墙面和顶棚抹灰时间推迟,影响工期。后种在做地面前必须将顶棚和墙面上的落地灰和渣子扫清洗干净后再做面层;否侧,会影响地面面层同砼楼板的粘结,引起地面起鼓。 6、确定分项工程施工顺序时要注意的几项原则: 施工工艺的要求、施工方法和施工机械的要求、施工组织的要求、施工质量的要求、当地的气候条件、安全技术的要求 7、简述装饰装修施工平面图设计原则: 1)在满足施工需要的前提下,尽可能减少施工占用场地;2)在保证施工顺利进行的情况下,尽可能减少临时设施费用;3)最大限度的减少场内运输,特别是减少场内的二次搬运,各种材料尽可能按计划分期分批进场,材料堆放位置尽量靠近使用地点;4)临时设施的布置应便于施工管理,适应于生产生活的需要;5)要符合劳动保护、安全、防火等要求 8、简述装饰装修施工平面图布置有哪些内容: 易燃材料存放区;易爆材料存放区;施工区及半成品区;各类消防器材存放区;安全走廊并设置明显标志;总配电箱放置区、二级配电箱放置区、开关箱放置区;现场办公室、材料室、现场安全保卫室;施工机具放置区;建筑垃圾存放点 9、全面质量管理的概念及其基本观点: 全面质量管理,就是全企业各个职能部门的全体人员同心协力,综合应用管理技术、专业技术和科学方法,经济合理的开发、研制、生产和销售用户满意的产品的管理活动。基本观点:1)全面管理的观点;2)为用户服务的观点;3)预防为主的观点;4)一切用数据说话的观点;5)文明施工的观点 10、质量控制的主要对策: 1)以人的工作质量确保工程质量;2)严格控制投入品的质量;3)全面控制施工过程,重点控制工序质量;4)严把分项工程质量验收关;5)贯彻“预防为主”的方针;6)严防系统性因素的变异 11、静力压桩(预应力钢筋砼管桩)基础工程施工质量控制要点是什么?

专业技术人员标准化的理论 方法与实践试题及答案

专业技术人员标准化的理论、方法与实践试题及答案(97分) 1:[3分]要建立全社会的标准体系,单靠哪一方面都不行,必须把政府引导与市场机制结合起来。比如美国是以自愿性标准为主的国家,但其国内原来有600多个民间标准化机构,在参与国际标准竞争时,难以形成共同声音,于是由政府出面整合了这些机构,组成了美国标准化协会,形成了美国国内标准化的合力。正确? 我的答案: 2:[3分]国家职业资格标准是一种对从业人员职业素养、职业行为的规范化,它反应的是具体工作事项的工作标准。 错误 我的答案: 3:[3分]社会责任标准的适用对象为“企业”。 正确? 我的答案: 4:[3分]标准系统的管理主要应用以下几个原理:系统效用、结构优化、有序原理、反馈控制、PDCA循环、持续改进等。 正确?

我的答案: 5:[3分]参数的选择与分级要依据标准化对象自身的特性、技术继承性、使用方便性、综合经济性等确定。正确? 我的答案: 6:[3分]我国标准化活动的资助模式主要依赖于政府经费,未来的标准资助模式可借鉴美国模式,即强调标准资助模式的多元化,促进标准资助的市场化。 正确? 我的答案: 7:[3分]标准化方法与标准化对象的性质关系不大,某种意义上无论有多少种不同类型的标准化对象,标准化的方法是基本不变的。 错误 我的答案: 8:[3分]世界各国越来越意识到,标准对于提升本国竞争力的重大意义,“规则的制定权和话语权”往往决定着市场的走向。这是一个进步。但,“标准的双刃剑”性质往往会使得一些“具有竞争优势”的国家和地区,以“标准”为手段,谋取“超额利润”,加大对发展中国家和不发达国家的盘剥。从大的方面说,这个世界的政治、经济秩序和规则的制定(也是一种标准)更

(参考)概念性方案设计招标文件

项目概念性方案设计招 标

书 招标人:(盖章) 二 0一年月日 概念性方案设计招标书 : 我司拟在重庆xx街道城新村2#地块规划建设住宅小区、商业、商务楼,拟邀请有一定实力和业绩的甲级设计院参与投标,经过考察邀请贵单位参加本次概念性规划设计方案投标,现将方案设计任务书等内容介绍如下: 一、项目名称: 二、项目区位: 本项目地块位于重庆市城南暨阳街道城新村、诸安快速路东侧,

东临开化江,南至规划路。总用地面积103.5亩。 三、规划设计依据 1、国家及重庆市现行有关规划设计的法律、法规和规定; 2、重庆市规划管理部门划定的用地规定红线图及控制指标; 用地性质:住宅(A地块);商业、商务(B地块); 容积率:住宅用地:2.5-3.4;商业、商务用地:2.0-2.8; 建筑密度:住宅用地:15%-25%;商业、商务用地:≤50%; 绿地率:住宅用地:≥25%;商业、商务用地:≥10%; 机动车位:按浙江省城市建筑工程停车场(库)设置规则和配建标准配置。 主出入口方位:详规划图; 建筑间距:按重庆市相关规定执行; 退离红线:按重庆市相关规定执行; 项目用地范围示意图 四、道路交通 本项目西临交通干道,未来交通通达性较好。

1、规划中的杭金衢高速——诸永高速连接线与商贸城路网相沟通,诸安快速路从商贸城中部贯穿; 2、即将建设的三环线南段和南环线绕商贸城南、北两侧而过,杭诸城际铁路也规划通过商贸城并设站点,交通网络四通八达。 3、在地理位置上,商贸城南接义乌国际小商品城,东连绍兴柯桥中国轻纺城,北靠杭州四季青等成熟大市场,处于整个“浙江市场带”的中心,区位优势凸现。 五、周边区域环境及设施 本项目位于城南商贸城片区的东侧位置,整个城南商贸城板块欲建成以商贸功能为主的,兼集居住生活、酒店、餐饮、会展、娱乐休闲等于一体的多功能新城区。 六、项目定位 1、定位总策略 畅想智慧生活(联想科技,联想生活)形象标杆——树立新导向,聚焦全城影响产品标杆——引领地产升级,建立市场标准价值标杆——聚合城市功能,实现智慧生活 2、分物业发展策略 ◆商业(体验、互动、主题商业) ⊿引入体验、主题商业,形成商业核心价值;

专业技术人员标准化的理论

专业技术人员标准化的理论、方法与实践 标准化是人类社会发展的必然产物。共同的语言、文字、历法、生产工具是人类社会发展和进步最基本和初级的需求,这些都是最早出现的具有( 标准化)特征的事物,而且多是以实物的形态呈现的。 惠特尼是实行(标准化)生产的创始者 1906年英国颁布了(国家公差标准)BS27 。此后,螺纹、各种零件和材料等也先后实现了标准化,成百倍地提高了劳动生产率。(现代标准化)管理体系建立是以“泰罗制”和“福特制”为标志的。 由于工业化和交通运输业的进一步发展,迫切需要解决同样的零部件在更 大的范围内实现统一和互换问题,要解决这些问题,需要建立一个协调性组织来统一这些零部件的标准,从而推动世界上第一个(国家标准化组织 )——英国工程标准委员会于1901年诞生, 它标志着标准化从此步入了一个新的发展阶段。此后不久,约有25个国家相继成立了国家标准化组织。 1928年又创立了国际标准协会国际联合会(ISA),1946年10月14日在 ISA的基础上成立(国际标准化组织(ISO) ),代表联合国负责国际间标准化 工作的协调统一工作。 标准是( 为了在一定的范围之内获得最佳秩序,经过协商一致制定且由公认机构批准,共同使用和重复使用的一种规范性文件)。 标准化是( 为了在一定范围内获得最佳秩序,对潜在问题或现实问题制定重复使用和共同使用的条款的活动)。 简化原理是(在一定范围内缩减标准化对象的类型和数目 )。统一化原理是(把同类事物两种或两种以上的表现形态归并为一种或限定 在一个范围的标准化形式)。 通用化原理是(在互相独立的系统中,最大限度地扩大具有功能互换和尺寸互换的功能单元使用范围的一种标准化形式 )。 系列化原理是(根据同一类产品的发展规律和使用要求,将其性能参数按一定数列作合理安排和规划,并对其形式和结构进行规划或统一,从而有 目的地指导同类产品发展的一种标准化形式)。 组合化原理是( 按照标准化原则,设计并制造出一系列通用性很强且能多 次重复应用的单元,根据需要拼合成不同用途的产品的一种标准化形式)。 模块化原理是( 在对一定范围内的不同产品进行功能分析和分解的基础上,划分并设计、生产出一系列通用模块或标准模块,然后,从这些模块中选 取相应的模块并补充新设计的专用模块和零部件一起进行相应的组合,以构成满足各种不同需要的产品的一种标准化形式 )。采标是( 将国际标准或国际先进标准的内容,经过分析研究,不同程度地转化为我国标准并贯彻实施

规划设计方案范例参考

xx项目 规划设计方案规划设计/投资方案/产业运营

承诺书 申请人郑重承诺如下: “xx项目”已按国家法律和政策的要求办理相关手续,报 告内容及附件资料准确、真实、有效,不存在虚假申请、分拆、重复申请获得其他财政资金支持的情况。如有弄虚作假、隐瞒 真实情况的行为,将愿意承担相关法律法规的处罚以及由此导 致的所有后果。 公司法人代表签字: xxx投资公司(盖章) xxx年xx月xx日

项目概要 化肥在对农作物增产的总份额中约占40%~60%,因此推升的粮食需求也直接提升了对化肥的需求。我国化肥从单质肥起家,到目前形成氮肥、钾肥、磷肥、微量元素肥、复合肥等品种丰富、用途多样的产业格局。 近年来国家对农业的扶植和重视,使得农业的发展非常迅速,也带动了肥料产业的发展。为适应时代的需要,有机肥料应运而生,并且得到了国家政策的大力支持。 该生物质肥料项目计划总投资18768.33万元,其中:固定资产投资13899.47万元,占项目总投资的74.06%;流动资金4868.86万元,占项目总投资的25.94%。 达产年营业收入34278.00万元,总成本费用26511.47万元,税金及附加327.32万元,利润总额7766.53万元,利税总额9165.10万元,税后净利润5824.90万元,达产年纳税总额3340.20万元;达产年投资利润率41.38%,投资利税率48.83%,投资回报率31.04%,全部投资回收期4.72年,提供就业职位510个。 依据国家产业发展政策、相关行业“十三五”发展规划、地方经济发展状况和产业发展趋势,同时,根据项目承办单位已经具体的资源条件、建设条件并结合企业发展战略,阐述投资项目建设的背景及必要性。

完整高层建筑全流程施工过程,看完一

完整高层建筑全流程施工过程,看完一目了然 建筑工程项目案例为一栋高层住宅楼,总高30层,地下1层,高强预应力管桩-筏板基础,框剪结构。 一、前期施工准备阶段 1、地质勘察 地质单位受建设单位的委托,据设计提供的相关资料,对拟建场地通过各种勘察手段和方法对地质结构或地质构造:地貌、水文地质条件、土和岩石的物理力学性质等,做出分析评价出具详细的“岩土工程勘察报告”,为设计和施工提供所需的工程地质资料。 2、文物勘察 根据国家文物保护法相关规定:进行基本建设工程,建设单位应当事先报请政府文物行政部门组织从事考古发掘的单位在工程范围内有可能埋藏文物的地方进行考古调查、勘探。考古调查、勘探中发现文物的,由省、自治区、直辖市人民政府文物行政部门根据文物保护的要求会同建设单位共同商定保护措施;遇有重要发现的,由省、自治区、直辖市人民政府文物行政部门及时报国务院文物行政部门处理。 3、建筑边坡与xx工程的设计方案评审 设计方案评审是指县级以上住房城乡建设主管部门或其委托机构依据国家、地方有关技术规范和相关的强制性条文,对建筑边坡与深基坑工程设计方案进行的安全、经济、合理等方面的技术性论证。其目的是:为加强对建筑边坡与深基工程的管理,确保建设工程及其相邻建(构)筑物和地下管线、道路的安全,土方开挖图确定后,依据国家相关规定:建设单位应委托评审组织机构对建筑边坡与深基坑工程的设计方案进行评审。 4、工程测量定位 是指建筑工程开工后的第一次放线,建筑物定位参加的人员是:城市规划部门(下属的测量队)及施工单位的测量人员(专业的),根据建筑规划定位

图进行定位,最后在施工现场形成(至少)4个定位桩。放线工具为“全站仪”或“比较高级的经纬仪。 5、施工现场市政xx临电报批 建筑单位在取得建设行政主管部门批准的建筑工程许可证之后,持证明分别到电力公司、自来水公司办理临水临电审批手续。 6、三通一平 三通一平是指基本建设项目开工的前提条件,具体指:水通、电通、路通和场地平整。随着现场办公信息化,增加通讯、通网(五通)或通讯、通网、通邮、通气(七通)) 7、工地围栏及大门建设 1)施工现场实行封闭式施工。主要路段围墙不低于2.5米,一般路段的围墙不低于1.8米(用于企业宣传的围挡钢架及基础应进行专项设计)。2)主入口处应设置大门,高度与围墙相适应,宽度不宜小于己于5米。大门内侧应设置门卫室,其内张贴门卫制度。大门外侧应当在围墙醒目处悬挂五牌一图,包括工程概况牌、组织网络牌、消防保卫牌、安全生产牌、文明施工管理牌和施工总平面布置图。 办公区、生活区搭建 8、组织员工培训及图纸会审为提高项目部参建员工的综合业务素质与管理水平,有必要在项目正式开工前对员工进行培训; 图纸会审是指工程各参建单位(建设单位、监理单位、施工单位)在收到设计院施工图设计文件后,对图纸进行全面细致的熟悉,审查出施工图中存在的问题及不合理情况并提交设计院进行处理的一项重要活动。图纸会审由建设单位负责组织并记录(也可请监理单位代为组织)。通过图纸会审可以使各参建单位特别是施工单位熟悉设计图纸、领会设计意图、掌握工程特点及难点,找出需要解决的技术难题并拟定解决方案,从而将因设计缺陷而存在的问题消灭在施工之前。

相关文档
最新文档